Probleme avec un script php pdo
Résolu
Physiol
Messages postés
89
Statut
Membre
-
Physiol Messages postés 89 Statut Membre -
Physiol Messages postés 89 Statut Membre -
Bonjour,
Voilà c'est mon script et je rencontre des difficultés je n'ai aucun resultat
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
Voilà c'est mon script et je rencontre des difficultés je n'ai aucun resultat
<html>
<body>
<?php
if (isset($_POST['Numolice'])){
$Numolice = $_POST['Numolice'];
try
{
$bdd = new PDO('mysql:host=localhost;dbname=x2012;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$reponse = $bdd-> prepare('SELECT Numpolice,Commentaire FROM ezod Like :Numolice ORDER BY id DESC ');
$donnees = $reponse->fetch();
echo $donnees['Numpolice'];
echo $donnees['Commentaire'];
$reponse->closeCursor(); // Termine le traitement de la requête
}
?>
</body>
</html>
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
3 réponses
-
Bonjour,
Entre le prepare... et le fetch ... il te manque le EXECUTE... et l'array de parametres....
$sql = "SELECT Numpolice,Commentaire FROM ezod Like :Numolice ORDER BY id DESC "; $params = array(":Numolice"=> $Numolice ); $reponse = $bdd-> prepare($sql); $reponse->execute($params); $donnees = $reponse->fetch();
... au passage ... n'écrit pas le code de connexion directement dans ton script ... mais place le dans un fichier à part que tu n'auras qu'à inclure dans tes pages....//Fichier cnxBDD.php <?php try{ $bdd = new PDO('mysql:host=localhost;dbname=x2012;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); }catch(Exception $e){ die('Erreur : '.$e->getMessage()); } ?>
et dans ton code.. pour l'inclure ..<?php require_once('cnxBDD.php'); ?> <html> <body> <?php if (isset($_POST['Numolice'])){ $Numolice = $_POST['Numolice']; // le reste de ton code ...
-
Merci beaucoup. Je vais largement transformer le code. Mais je voulais resoudre ce probleme avec php.
j'ai toutefois ce message d'erreur je ne vois pas à quelle erreur mysql il peut correspondre
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Like '0001'' at line 2' in C:\wamp\www\search\zebra.php on line 23
-
-
Vu que c'est une recherche exacte que tu veux faire .. n'utilises pas LIKE .. mais (=) EGALE
De plus... il manque un WHERE dans ta requête....$sql = "SELECT Numpolice,Commentaire FROM ezod WHERE Numpolice=:Numolice ORDER BY id DESC ";
-
A la place d'un fetch .. tu peux utiliser un fecthall ...
ce qui stockera le résultat dans un ARRAY....
Ensuite.. tu n'auras plus qu'à boucler dessus à l'aide d'un foreach par exemple.
$sql = "SELECT Numpolice,Commentaire FROM ezod WHERE Numpolice=:Numolice ORDER BY id DESC "; $params = array(":Numolice"=> $Numolice ); $reponse = $bdd-> prepare($sql); $reponse->execute($params); $donnees = $reponse->fetchall(); // Affichage des resultats dans un tableau echo "<table>"; echo "<thead><tr><th> Num. </th><th>Commentaire</th></tr></thead>"; echo "<tbody>"; foreach($donnees as $R){ echo "<tr>"; echo "<td>".$R['Numpolice']."</td>"; echo "<td>".$R['Commentaire']."</td>"; echo "</tr>"; } echo "</tbody></table>";
EDIT : Correction requete
EDIT2 : Correction ; manquant ligne 12