[RESOLU] Exemple d'utilisation de quote, pour une REQUETE

JVL
Eléphant du PHP | 76 Messages

03 oct. 2013, 09:37

Bonjour à tous (encore moi :P),

Ma requète est bonne, dans phpmyadmin elle fonctionne à merveille. Mon soucis c'est dans le php, voila j'ai cherché mais je ne trouve pas d'exemple d'utilisation simple de "quote" avec une requète. Est-ce que quelqu'un aurait un lien, ou un exemple simple de l'utilisation de quote en php pour une requète ? Je précise bien avec une REQUETE merci. :) (même un bout code fait à la vas-vite !)


Merci d'avance.

Cordialement JVL.

edit:
$selectionPrepa = $pdo->prepare('SELECT * FROM glpi_suivi_travail WHERE Name_suivi= :name AND Date_suivi = str_to_date(:date, %d/%m/%Y)');

$selectionPrepa->execute(array('name'=>'$_SESSION["glpiname"]', 'date'=>'01/10/2013')); 

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

03 oct. 2013, 10:48

salut,

à la base tu ne semble savoir utiliser la concaténation et mal les chaines de caractères (différence " et ').

sinon le principe de base dans ce cas la c'est d'échapper le caractère "indésirable" (ici le délimiteur de chaîne de caractères) afin qu'il ne soit pas pris en compte.

donc
$chaine = 'une chaîne avec une \', l\'apostrophe est utilisable ;) ';
le principe est le même avec des "

pour ce qui est la doc php.net est la bible. si tu ne sais pas exactement ce que tu cherche tu met php.net/truc et le moteur de recherche de php.net fera le boulot.
dans ton cas http://www.php.net/manual/fr/language.types.string.php ;)


@+
Il en faut peu pour être heureux ......

JVL
Eléphant du PHP | 76 Messages

03 oct. 2013, 11:08

OMG

Je ne sais pas lire ou quoi ? j'ai déjà visité ces 2 liens ce matin ...

Cette requète est actuellement entrain de me faire du mal.

Je comprend les exemples avec les échos, mais j'ai aucune idée de comment faire avec une requète
	<?php 
		$format = "\'%d/%m/%Y\'";				
		$string="\'01/10/2013\'";
		$name="\'c-a.gourdon\'";
	$selection = $pdo->query('SELECT * FROM glpi_suivi_travail WHERE Name_suivi= $name AND Date_suivi = str_to_date($string, $format)');

if ($selection != 0){
					while( $enregistrement = $selection->fetch(PDO::FETCH_OBJ)){	
						echo'requete bouclé<br>';
																				 echo '<TR> <input type=hidden value="',$enregistrement->ID_suivi,'">' ;
																				 echo '<TD><center>',$enregistrement->Projet_suivi,'</center></TD>';
																				 echo '<TD>',$enregistrement->Duree_suivi,'</TD>';
																				 echo '<TD>',$enregistrement->Categorie_suivi,'</TD> ';
																				 echo '<TD>',$enregistrement->Commentaire,'</TD>';
																				 echo '<TD>';
																				 echo '<a href="#" onclick="">Modifier </a> |';
																				 echo '<a href="#" onclick=""> Supprimer</a>' ;
																				 echo '</TD>';
																						 echo '</TR>';
																			}
			
  } else{echo"fuckkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk";}
				
	
	?>

Mammouth du PHP | 2278 Messages

03 oct. 2013, 12:33

Pour avoir la paix avec ça je fais comme ça:
$table = "mes_livres";
$auteur = "Dac";
$requete = "SELECT * from $table where `auteur` = '$auteur' " ;
$res = mysqli ($requete);
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

JVL
Eléphant du PHP | 76 Messages

03 oct. 2013, 14:39

Rohlalala je me perd dans toute ces extensions: je doit utiliser quoi au final, PDO ? Mysqli ?

Concaténation je t'aurai un jour ! je t'aurai !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

03 oct. 2013, 14:43

mwé c'est pas complexe quand même.
sans parler du fait que ne pas utiliser la concaténation est source d'emmerde (ça va finir en $_POST['truc']['machin'] dans une chaine ... ou alors (echo "$truc"; ;) ).

donc
<?php
// sans variables
        $selection = $pdo->query('SELECT * FROM glpi_suivi_travail WHERE Name_suivi= \'c-a.gourdon\' AND Date_suivi = str_to_date(\'01/10/2013\', \'%d/%m/%Y\')');
// avec les variables
$selection = $pdo->query('SELECT * FROM glpi_suivi_travail WHERE Name_suivi= \''.$name.'\' AND Date_suivi = str_to_date(\''.$string.'\', \''.$format.'\')');
?>
c'est pas plus compliqué :mrgreen:

quand au choix de l'extension c'est comme tu le sens le mieux.
PDO est plus orienté POO, si tu ne connais pas trop l'objet et si tu préfère utiliser un code entièrement procédurale tu peux très bien utiliser l'extension mysqli (prévu pour remplacer l'extension mysql).

les deux font la même chose à ceci pret que PDO permet l'abstraction du SGBD et donc si tu change de sgbd (et que tu n'utilise pas de sql propriétaire) sur le principe tu change juste la chaine de connexion (dns) dans le constructeur tu ne touche pas au reste du code.
avec l'extension mysqli tu est obligé de tous recoder si tu changer ;)

coté perf, a priori c'et similaire.

l'avantage de pdo réside dans le coté objet (en dehors de l'argument ci dessus) qui n'est utile que si tu connais et utilise ce principe ;)

(mais si ça te va comme ça tu peux très bien garder pdo ;)).


@+
Il en faut peu pour être heureux ......

JVL
Eléphant du PHP | 76 Messages

03 oct. 2013, 15:02

Dat_moogli so op.
mwé c'est pas complexe quand même.
Et bien pour le moment si !
c'est pas plus compliqué .
j'aime bien me prendre la tête mais j'aurai jamais trouver la requete avec les variables !

J'ai commencé en cour la poo (c#, et pdo), je connait un peut les avantages. Mais je vient de réussir en mysqli (enfin réussir c'est un bien grand mot) .

Du coup pour me faciliter la vie, je vais rester en sqli(pas de changement de sgbd en vue).

Alors vous en pensez quoi ? j'ai pas trop fail la concaténation ?
	<?php	$format = '%d/%m/%Y';				
		$string = "01/10/2013";
		$name = "c-a.gourdon";
		$requete = "SELECT * FROM `glpi_suivi_travail` WHERE `Name_suivi`= '$name' AND `Date_suivi` = str_to_date('$string', '$format') ";
		$resultat = mysqli_query($bdd, $requete);
		
		while($donnees = mysqli_fetch_assoc($resultat))
														{

							 echo '<TR> <input type=hidden value="'.$donnees['ID_suivi'].'">' ;
							 echo '<TD><center>'.$donnees['Projet_suivi'].'</center></TD>';
							 echo '<TD>'.$donnees['Duree_suivi'].'</TD>';
							 echo '<TD>'.$donnees['Categorie_suivi'].'</TD> ';
							 echo '<TD>'.$donnees['Commentaire'].'</TD>';
							 echo '<TD>';
							 echo '<a href="#" onclick="">Modifier </a> |';
							 echo '<a href="#" onclick=""> Supprimer</a>' ;
							 echo '</TD>';
							 echo '</TR>';
														}?>
Maintenant j'ai le doute entre pdo ou sqli ...

Mammouth du PHP | 2278 Messages

03 oct. 2013, 15:33

PDO me semble intéressant si on veut que son application s'adapte au moteur de bdd disponible là où elle est installée avec un minimum de changements.
Mysqli est la nouvelle versin de mysql qui suppose mysql récent disponible sur le serveur.
Comme dit Moogli, PDO est conçu en POO et les exemples du manuel sont rédigés uniquement dans ce style.
Mysqli : les deux approches sont possibles et le manuel donne les mêmes exemples en procédural ou en objet...
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

JVL
Eléphant du PHP | 76 Messages

03 oct. 2013, 15:42

Merci à tous.