PHP MySql PDO requête tout simple qui ne marche pas!
Résolu/Ferméjh_kd Messages postés 41 Date d'inscription lundi 11 janvier 2021 Statut Membre Dernière intervention 2 mars 2024 - 7 mars 2023 à 19:55
- PHP MySql PDO requête tout simple qui ne marche pas!
- Iphone 14 simple - Guide
- Simple ocr - Télécharger - Bureautique
- Easy php - Télécharger - Divers Web & Internet
- Simple file locker - Télécharger - Sécurité
- Mysql community server - Télécharger - Bases de données
5 réponses
6 mars 2023 à 15:35
Bonjour,
Déjà, pour poster du code sur le forum, il ne faut plus utiliser les balises de code <code php> ... </code> .. mais l'icone prévue à cet effet lors de la rédaction de ton message
Ensuite :
Avant de dire que le souci vient de PDO ... as tu testé ta requête DIRECTEMENT dans ta BDD ( via phpmyadmin par exemple ) ? Le résultat obtenu est-il conforme à tes attentes ?? (je ne suis pas sûr !!! )
Je pense que tu as légèrement oublié de :
Soit mettre un WHERE à ta requête
Soit .. de boucler sur le résultat de celle-ci ..
Et au passage, pour ce qui concerne les erreurs PDO .. (et éviter d'en avoir... ) je t'invite à appliquer le contenu de ce lien : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
6 mars 2023 à 16:26
Bonjour Jordane,
Désolé pour la non-actualisation de votre système de code... je suis âgé et je pose des questions très rarement sur le forum.
Il y a mis-compréhension, sauf erreur.
C'est un problème php comme indiqué dans l'erreur ligne 131.
J'ai bien testé sur wampserver. Je ne crois pas qu'il y ait un souci de requête.
Quand j'utilise fetchcolumn, comme vous l'aviez suggéré sur un message précédent et différent j'ai un résultat constant '4'
Avec fetchall, j'ai une erreur alors que la requête qui suit avec fetchall fonctionne bien (depuis toujours).
Merci
Cdlt, JH
6 mars 2023 à 17:21
Tu retournes le premier résultat de ta requête.
Il n'y a pas de raison que ça te retourne une valeur différente d'une fois sur l'autre....
C'est bien pour ça que je t'ai indiqué que tu avais certainement oublié un where...
Fais-nous une capture du résultat dans PHP myamine et indique nous dans cette image quelle valeur tu souhaites récupérer
6 mars 2023 à 17:55
Bonjour Jordane,
Dans phpmyadmin, je fais la requête:
SELECT Rk_Table FROM taxabase1
Cà marche.
Ci-dessous la jpg capture d'écran.
Est-ce que cela t'aide?
Dans localhost j'obtiens toujours '4', par exemple si je clique sur le lien correspondant à la ligne 44 le premier nombre sur le tableau en jpg le résultat me retourne encore '4', et pareil si je clique sur le lien correspondant à la ligne 800 le deuxième dans le même tableau (et bien sûr comme c'est des lignes différentes, je dois avoir des nombres tous différents).
J'espère que j'ai bien répondu à ta demande!
Cdlt, JH
6 mars 2023 à 21:23
Tu vois bien que ta requête retourne TOUT le contenu de ta table ... et pas UNE ligne dépendant de son ID ...
Comme je te le dit .. il manque, à minima, une clause WHERE dans ta requête ...
Maintenant, pourquoi le "4"
Donc, actuellement, ta requête retourne TOUTES les lignes de ta table.
Ton code PHP, utilisant le FETCHCOLUMN , tu récupères TOUTES les valeurs retournées par ta requête sous forme d'array.
Idem avec le FETCHALL ...
Suffit de faire un var_dump de ta variable $result pour voir ce qu'elle contient :
$requete = $connexion->prepare("SELECT Rk_Table FROM taxabase1"); $requete->execute(); $result = $requete->fetchColumn(); var_dump($result );
Maintenant, corrigeons ton code pour ne récupérer qu'une seule ligne dans ta requête en fonction du lien cliqué :
//On récupère PROPREMENT les variables AVANT de les utiliser : $id = !empty($_GET["Rk_Hist"]) ? $_GET["Rk_Hist"] : null; $sql = "SELECT Rk_Table FROM taxabase1 WHERE id =:id "; try{ $requete = $connexion->prepare($sql); $requete->bindParam(':id', $id, PDO::PARAM_INT); $requete->execute(); $result = $requete->fetchColumn(); var_dump($result ); echo '<p>Rank number : <b>!!' . $result . '!!!</b></p>'; }catch(Exception $e){ echo "Erreur SQL : " . $e->getMessage(); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question7 mars 2023 à 19:55
Ah, merci Jordane, clair et pédagogique.
J'ai adapté et cela a marché!
Je ne sais pas pourquoi je faisais une fixette sur le fetchColumn de ma question précédente
Je marque résolu!
Bonne continuation
Cdlt, JH