Problème de requète SQL

Résolu/Fermé
-Xenon- Messages postés 144 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 10 avril 2009 - 8 juin 2008 à 12:59
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 - 8 juin 2008 à 14:30
Bonjour,

Alors voila mon problème :

Je fais une recherche par critère de selection dans une base de donnée SQL :

$req = mysql_query('SELECT * FROM commerce ORDER BY prix DESC LIMIT ' . $page_afficher . ',' . $nombre_vente_par_page);

while($rep = mysql_fetch_array($req))

Jusque la pas de problème ! Et lorsque je veux ajouter un critère de selection :

$req = mysql_query('SELECT * FROM commerce WHERE matiere = ' . $matiere . ' ORDER BY prix DESC LIMIT ' . $page_afficher . ',' . $nombre_vente_par_page . '');

j'obtient cette erreur :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Evoluptia\commerce.php on line 226

pourquoi cette erreur alors que toutes mes variables fonctionne ?

Merci d'avance pour votre aide !

3 réponses

lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
8 juin 2008 à 13:02
bonjour je suppose que la ligne 226 correspond a ta requete ??
$page_afficher est bien definie ?
1
-Xenon- Messages postés 144 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 10 avril 2009 17
8 juin 2008 à 13:04
oui oui tout est bien défini :

if(isset($_GET['id']) && isset($_GET['matiere']))
{
include("connect.php");
$matiere = $_GET['matiere'];
$id = $_GET['id'];
$nombre_vente_par_page = 6;
$retour = mysql_query("SELECT COUNT(*) AS nb_entree FROM commerce WHERE matiere = '$matiere'");
$don = mysql_fetch_array($retour);$total_entree = $don['nb_entree'];
$nb_page = ceil($total_entree/$nombre_vente_par_page);

if(isset($_GET['page']))
{
$page = ($_GET['page']);
}
else
{
$page = 1;
}
$page_afficher = (($page-1)*$nombre_vente_par_page);
?>
<table>
<tr>
<th>Pseudo</th>
<th>Matière</th>
<th>Quantité</th>
<th>Prix</th>
<th></th>
</tr>
<?php
$req = mysql_query('SELECT * FROM commerce WHERE matiere = ' . $matiere . ' ORDER BY prix DESC LIMIT ' . $page_afficher . ',' . $nombre_vente_par_page . '');

while($rep = mysql_fetch_array($req))
{
// resultat du array
}
}// fermeture du isset
0
-Xenon- Messages postés 144 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 10 avril 2009 17
8 juin 2008 à 13:17
C'est bon j'ai trouvé :D ! il suffisait juste de faire une condition en dessous de la requête SQL :

<?php
$req = mysql_query('SELECT * FROM commerce ORDER BY prix DESC LIMIT ' . $page_afficher . ',' . $nombre_vente_par_page);
while($rep = mysql_fetch_array($req))
{
if($rep['matiere'] == $matiere)
{
//boucle while + condition
}
}
?>

Merci quand même ^^
1
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
8 juin 2008 à 14:30
de rien et bon dev

@+
1