Page 1 sur 1

affichage de requete ne fonctionne pas

Posté : 11 avr. 2016, 20:37
par BastouTatou
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

Re: affichage de requete ne fonctionne pas

Posté : 11 avr. 2016, 20:56
par or 1
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.

Re: affichage de requete ne fonctionne pas

Posté : 11 avr. 2016, 21:04
par BastouTatou
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..

Re: affichage de requete ne fonctionne pas

Posté : 11 avr. 2016, 21:08
par or 1
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.

Re: affichage de requete ne fonctionne pas

Posté : 11 avr. 2016, 21:19
par BastouTatou
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.

Re: affichage de requete ne fonctionne pas

Posté : 11 avr. 2016, 21:30
par Genova

Code : Tout sélectionner

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

Re: affichage de requete ne fonctionne pas

Posté : 11 avr. 2016, 21:39
par BastouTatou
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é.

Re: affichage de requete ne fonctionne pas

Posté : 11 avr. 2016, 21:52
par BastouTatou
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