[PHP/MySQL] probleme requete between
Résolu
Matii_75
Messages postés
22
Statut
Membre
-
Matii_75 Messages postés 22 Statut Membre -
Matii_75 Messages postés 22 Statut Membre -
Bonjour,
Encore et toujours un petit soucis en Php ... cette fois ci je souhaite afficher les champs pour les identifiants n°xxx à yyy ...
J'ai donc un formulaire :
Et mon code PHP :
Erreur : Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/stage/recherche_id_bis.php on line 53
Encore et toujours un petit soucis en Php ... cette fois ci je souhaite afficher les champs pour les identifiants n°xxx à yyy ...
J'ai donc un formulaire :
<form method="POST" action="recherche_id_bis.php">
<p>Identifiant : </p>
<input type="text" name="id1" size="20">
<input type="text" name="id2" size="20">
<input type="submit" value="rechercher">
Et mon code PHP :
$id=mysql_real_escape_string($_POST['id1']['id2']);
// Requete
$query = "SELECT id, source, date, mac, ip, epoch, texte FROM enregistrement WHERE id BETWEEN $id1 AND $id2;";
$result = mysql_query($query);
// Resultats
while($row = mysql_fetch_row($result))
{
$id = $row[0];
$source = $row[1];
Erreur : Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/stage/recherche_id_bis.php on line 53
Configuration: Linux Konqueror 3.5
4 réponses
-
Bonjour.
Erreur : Warning: mysql_fetch_row()
A priori, ta requête est incorrecte...
Affiche les valeurs de $id1, $id2 et $query, histoire de voir ce qu'il y a dedans.
Avec le BETWEEN, je suppose que ton champ id est une valeur numérique ? Essaye en mettantBETWEEN intval($id1) AND intval($id2)
-
-
Salut,
Dans ton script $id1 et $id2 n'existent pas, et tu définies $id d'une manière incorrecte.
Essai de remplacer$id=mysql_real_escape_string($_POST['id1']['id2']);
par$id1=mysql_real_escape_string($_POST['id1']); $id2=mysql_real_escape_string($_POST['id2']);
De manière générale, quelques conseils :
- En phase de développement, placer au début du script php error_reporting(E_ALL) afin de voir toutes les erreurs même les moins critiques (variables non définies par exemple).
- quand un requête ne marche pas mettre un echo $requete quelque part pour voir la requête réellement envoyée au serveur de BD.
- Tester le retour de mysql_query,
Par exemple dans ton cas pour les 2 derniers points:$result = mysql_query($query); if(!$result){ echo "Impossible d'exécuter la requête $query"; die(mysql_error()); } while ... -
Merci la solution est donc :
$idun=mysql_real_escape_string($_POST['idun']); $iddeux=mysql_real_escape_string($_POST['iddeux']); // Requete $query = "SELECT id, source, date, mac, ip, epoch, texte FROM enregistrement WHERE id BETWEEN $idun AND $iddeux;"; $result = mysql_query($query); // Resultats while($row = mysql_fetch_row($result))