Probleme avec un script php pdo

Résolu/Fermé
Physiol Messages postés 79 Date d'inscription dimanche 28 juin 2009 Statut Membre Dernière intervention 14 décembre 2015 - Modifié par jordane45 le 15/06/2015 à 00:40
Physiol Messages postés 79 Date d'inscription dimanche 28 juin 2009 Statut Membre Dernière intervention 14 décembre 2015 - 15 juin 2015 à 01:34
Bonjour,
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.
.


A voir également:

3 réponses

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
15 juin 2015 à 00:44
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 ...


0
Physiol Messages postés 79 Date d'inscription dimanche 28 juin 2009 Statut Membre Dernière intervention 14 décembre 2015 1
15 juin 2015 à 01:12
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
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
15 juin 2015 à 01:16
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 ";

0
Physiol Messages postés 79 Date d'inscription dimanche 28 juin 2009 Statut Membre Dernière intervention 14 décembre 2015 1
15 juin 2015 à 01:19
Merci jordan Maintenant j'espere juste que tu ne m'en voudras pas de poser la question à la base je souhaiterais afficher tout les resultats correspondant à une meme police.

Une police peut avoir plusieurs commentaires
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
Modifié par jordane45 le 15/06/2015 à 01:55
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
0
Physiol Messages postés 79 Date d'inscription dimanche 28 juin 2009 Statut Membre Dernière intervention 14 décembre 2015 1
Modifié par Physiol le 15/06/2015 à 01:30
Merci beaucoup j'en été sacrement loin
je vais décortiquer ça pour mieux comprendre.
merci beaucoup jordane
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
15 juin 2015 à 01:31
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane
0
Physiol Messages postés 79 Date d'inscription dimanche 28 juin 2009 Statut Membre Dernière intervention 14 décembre 2015 1
15 juin 2015 à 01:34
oui ah il manque un ; a la ligne 12 c'est pour ceux que le code interesse
0