Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/08/2011, 12h54   #1
Futur Membre du Club
 
Inscription : août 2011
Messages : 73
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 73
Points : 15
Points : 15
Par défaut mysql_fetch_array génère une erreur

voici mon script :
Code :
1
2
3
4
5
6
7
8
9
 
$select = "SELECT * FROM browse WHERE nom_wo = '$var' " ; 
 
$result = mysql_query($select) or die ('Erreur 2: '.mysql_error() );
 
$row = mysql_fetch_array($result) or die ('Erreur 3 : '.mysql_error() );
 
$dn=$row['date'];
echo $dn;
ça m'affiche Erreur 3

Merci de bien vouloir m'aider!
sirina88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 12h58   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Bonjour (oui sur ce forum on dit bonjour.)

Ne mets pas de "or die" après mysql_fetch_assoc.

Tu devrais plutôt procéder comme suit:
Code :
1
2
3
4
5
6
7
8
$query = "SELECT * FROM browse WHERE nom_wo = '$var' " ; 
if ($result = mysql_query($query)) {
  $row = mysql_fetch_array($result);
  $dn=$row['date'];
}
else {
  die('ERROR');
}
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/08/2011, 13h23   #3
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Ou la requête ne renvoie aucune ligne (FALSE renvoyé par mysql_fetch_[array|assoc|row]). Ce qui n'est pas une erreur en soi (or die n'a pas lieu d'être). Dès lors $row['date'] n'aurait pas réellement à être utilisé sans avoir vérifié ce point non plus.

Code :
1
2
3
4
5
6
7
8
9
10
ini_set('mysql.trace_mode', TRUE);
 
// $var = mysql_real_escape_string(...);
$result = mysql_query("SELECT * FROM browse WHERE nom_wo = '$var'");
if (FALSE === ($row = mysql_fetch_array($result))) {
    echo 'Pas de résultat';
} else {
    $dn=$row['date'];
    // ...
}
julp est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/08/2011, 14h04   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 104
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 104
Points : 8 458
Points : 8 458
active le mysql.trace_mode
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/08/2011, 19h35   #5
Futur Membre du Club
 
Inscription : août 2011
Messages : 73
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 73
Points : 15
Points : 15
Citation:
Envoyé par stealth35 Voir le message
active le mysql.trace_mode
comment je fais pour activer ceci ??
sirina88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 10h26   #6
Futur Membre du Club
 
Inscription : août 2011
Messages : 73
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 73
Points : 15
Points : 15
Citation:
Envoyé par Benjamin Delespierre Voir le message
Bonjour (oui sur ce forum on dit bonjour.)

Ne mets pas de "or die" après mysql_fetch_assoc.

Tu devrais plutôt procéder comme suit:
Code :
1
2
3
4
5
6
7
8
$query = "SELECT * FROM browse WHERE nom_wo = '$var' " ; 
if ($result = mysql_query($query)) {
  $row = mysql_fetch_array($result);
  $dn=$row['date'];
}
else {
  die('ERROR');
}
Bonjour!
j'ai essayé ce code et j'ai rajouté echo $dn pour voir le résultat , mais ça n'affiche rien (
sirina88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 10h36   #7
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Et :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$query = "SELECT * FROM browse WHERE nom_wo = '$var' " ; 
if ($result = mysql_query($query)) {
  if (mysql_num_rows() == 0) {
    echo 'Aucun résultat';
  }
  else {
    $row = mysql_fetch_array($result);
    $dn=$row['date'];
  }
}
else {
  die('ERROR');
}
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 10h42   #8
Futur Membre du Club
 
Inscription : août 2011
Messages : 73
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 73
Points : 15
Points : 15
Citation:
Envoyé par Bisûnûrs Voir le message
Et :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$query = "SELECT * FROM browse WHERE nom_wo = '$var' " ; 
if ($result = mysql_query($query)) {
  if (mysql_num_rows() == 0) {
    echo 'Aucun résultat';
  }
  else {
    $row = mysql_fetch_array($result);
    $dn=$row['date'];
  }
}
else {
  die('ERROR');
}
ça m'affiche ceci :
Warning: mysql_num_rows() expects exactly 1 parameter, 0 given in C:\wamp\www\2\fermeture.php on line 21
:'(
sirina88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 10h56   #9
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Oups, pardon ..

Code :
mysql_num_rows($result)
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/08/2011, 11h13   #10
Futur Membre du Club
 
Inscription : août 2011
Messages : 73
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 73
Points : 15
Points : 15
Citation:
Envoyé par Bisûnûrs Voir le message
Oups, pardon ..

Code :
mysql_num_rows($result)
Bon voilà, ça m'affiche "aucun résultat " , pourtant ma variable $var est bien définie (récupérée à partir de GET) , j'ai bien vérifié le nom de mes colonnes et de mes tables.
sirina88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 11h18   #11
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Et si tu fais un echo de $query ça te donne quoi ?

Au passage, si $var provient effectivement de $_GET, il ne faut pas oublier de se protéger contre les injections SQL.
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 11h28   #12
Futur Membre du Club
 
Inscription : août 2011
Messages : 73
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 73
Points : 15
Points : 15
Citation:
Envoyé par Bisûnûrs Voir le message
Et si tu fais un echo de $query ça te donne quoi ?

Au passage, si $var provient effectivement de $_GET, il ne faut pas oublier de se protéger contre les injections SQL.
ça me donne ceci :
SELECT * FROM browse WHERE nom_wo = ' listeapresothers.txt'

où $var=listeapresothers.txt
sirina88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 11h31   #13
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Et pourtant, tu as l'air d'avoir un espace au début de ta variable.
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/08/2011, 11h34   #14
Futur Membre du Club
 
Inscription : août 2011
Messages : 73
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 73
Points : 15
Points : 15
Citation:
Envoyé par Bisûnûrs Voir le message
Et pourtant, tu as l'air d'avoir un espace au début de ta variable.
c vrai! je sais pas d'où ça vient. le nom de la variable à l'origine n'inclut pas d'epace au début! comment je peux le supprimer??
sirina88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 11h48   #15
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Regarde trim().
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 11h59   #16
Futur Membre du Club
 
Inscription : août 2011
Messages : 73
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 73
Points : 15
Points : 15
Citation:
Envoyé par Bisûnûrs Voir le message
Regarde trim().
ouaiis!! ça a marché !! merciiiiiii bcp !
sirina88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h34.


 
 
 
 
Partenaires

Hébergement Web