[RESOLU] affichage de requete ne fonctionne pas

Eléphanteau du PHP | 12 Messages

11 avr. 2016, 20:37

Bonjour ou bonsoir,

Je suis débutant en php (depuis à peine plus d'une semaine avec mes cours) et je me heurte à un problème d'affichage de requête mysql. J'ai chercher dans mes cours et un peu partout ou je pouvais pourquoi mon code ne fonctionne pas, le voici

Code : Tout sélectionner

<?php $choix=$_GET["choix"]; $link = mysqli_connect("127.0.0.1","root","","h15478"); if ($link != FALSE) { echo "Connexion r&eacute;ussie"; } else { die("Impossible de se connecter : ".mysqli_error()); } $requete = "SELECT annonces.titre AS Titre, annonces.texte AS Objet, annonces.date AS Date FROM annonces INNER JOIN categories ON annonces.IDcategorie=categories.IDcategorie WHERE categories.categorie=".$choix." AND annonces.visible"; $result = mysqli_query($link,$requete); if ( mysqli_num_rows($result) != 0) { while ($row = mysqli_fetch_assoc($requete)) { echo "<tr>"; echo "<td>" . $row["Titre"] . "</td>" ; echo "<td>" . $row["Objet"] . "</td>" ; echo "<td>" . $row["Date"] . "</td>" ; echo "</tr>"; } } else { echo "La requête ne renvoie pas de résultat !" ; } echo "<p>Voici les annonces correspondantes &agrave; la s&eacute;l&eacute;ction <b>".$choix;"</b></p>"; echo "<br>"; ?>
La variable $choix récupérant l'information d'un bouton radio sur une autre page.
J'ai déjà testé la requête seule sur phpmyadmin et elle fonctionne comme je le souhaite.

Le problème est le suivant
"Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given"

Je ne comprend pas car pour les requetes SELECT il est dit que mysqli_query renvoit un résultat de type mysqli_result et non un booléen.


Merci par avance à tous ceux qui prendront le temps de me répondre.

Cordialement

Mammouth du PHP | 2703 Messages

11 avr. 2016, 20:56

http://php.net/manual/fr/mysqli.query.php
cela retourne false en cas d'échec.
si la connexion a réussi alors il faut afficher la requête et comprendre pourquoi elle est incorrecte.

Eléphanteau du PHP | 12 Messages

11 avr. 2016, 21:04

Merci,

Oui, je m'aide beaucoup de ce site depuis quelques jours pour essayer de comprendre, mais oui, la connexion à la base de donnée est réussie (si j'en crois le fait que ma page affiche bien la partie de la première boucle si qui correspond à une connexion réussie) et ma requete fonctionne sur phpmyadmin, elle est juste copiée/collée, avec l'ajout de la variable $choix.

Peut-être que l'erreur vient de la dans ce cas, mais je ne vois pas comment corriger..

Mammouth du PHP | 2703 Messages

11 avr. 2016, 21:08

si la requête affichée copier/coller dans phpmyadmin fonctionne, alors il reste la possibilité que la base de donnée h15478 ne contienne pas les tables annonces et categories, qui existent bien, mais dans une autre base de donnée.

Eléphanteau du PHP | 12 Messages

11 avr. 2016, 21:19

Ce n'est pas non plus le problème, je viens de vérifier et les tables sont bien dans la base h15478

Je vous avoue que cela fait mtn depuis deux jours que je bloque sur l'affichage de cette requête et je ne comprends pas.

La base de donnée est correcte, la connexion semble l'être aussi, les tables aussi.

ViPHP
ViPHP | 928 Messages

11 avr. 2016, 21:30

Code : Tout sélectionner

$result = mysqli_query($link,$requete) or die(mysqli_error());

Eléphanteau du PHP | 12 Messages

11 avr. 2016, 21:39

Merci Genova, l'erreur vient à priori de mon copié/collé de la requête, plus précisement de l'insertion de $choix le code n'arrive pas a trouver lier à la table j'ai l'impression et il n'y a pas de problème d'ortographe dedans

Je vais essayer de travailler la dessus ce soir pour corriger ce problème.

Merci aussi Or 1 de m'avoir aidé.

Eléphanteau du PHP | 12 Messages

11 avr. 2016, 21:52

C'est bon, problème résolu, tout venait bien de a façon d'appeler ma variable $choix dans ma requête ( oubli de mettre entre guillemets).

Merci encore à vous deux