Variable non-définie.

Eléphant du PHP | 89 Messages

01 mai 2006, 21:58

Bonsoir,

j'utilise xlagenda pour gérer des évnements sur mon site et souhaite récupérer en 1ère page des évènements insérés dans la base.
<?

$db = mysql_connect ('mysql4','nomdelabase','password');
mysql_select_db('nomdelabase',$db);
$sql = 'SELECT nom FROM xlagenda WHERE date_fin >= '$year-$month-$day' AND actif = '1' ORDER BY date_debut ASC, nom ASC';
$req = mysql_query($sql) or die ('erreur sql <br>'.$sql.'<br>.mysql_error());
while($data = mysql_fetch_array($req))
{
echo '.$data['nom'].';
}
mysql_close();
?> 
où le nom correspond à un évènement dans ma table xlagenda.

La requête SELECT nom FROM xlagenda WHERE date_fin >= '$year-$month-$day' AND actif = '1' ORDER BY date_debut ASC, nom ASC fonctionne dans phpmyadmin.

J'ai une erreur variable indéfinie ligne 12 ...

Quelqu'un peut m'aider ? Merci

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

01 mai 2006, 22:03

Salut,
Commence par faire des concaténation propres puis reviens avec un message d'erreur au complet et la ligne 12 c'est la quelle ? :shock:
$var = "Ceci est une ".$concatenation." propre, avec des points ";

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 19672 Messages

01 mai 2006, 22:05

Tu as de toutes façons probablement une erreur avec ceci :
$sql = 'SELECT nom FROM xlagenda WHERE  date_fin >= '$year-$month-$day' AND actif = '1' ORDER BY date_debut ASC, nom ASC';
prenons la date du jour, ça donne : 2006-05-01 = 2000 ... avec une concaténation propre, il faudrait écrire:
$sql = "SELECT nom FROM xlagenda WHERE date_fin >= '". $year ."-". $month ."-". $day ."' AND actif = 1 ORDER BY date_debut ASC, nom ASC";
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 89 Messages

07 mai 2006, 16:48

Dsl pour ma réponse tardive.

Ai fait les modif's indiquées et autre erreur sur la ligne $req ....

<?

$db = mysql_connect ('mysql4','rcsttvis','EyDLfpAQ');
mysql_select_db('rcsttvis',$db);
$sql = "SELECT nom FROM xlagenda WHERE date_fin >= '". $year ."-". $month ."-". $day ."' AND actif = 1 ORDER BY date_debut ASC, nom ASC"
$req = mysql_query($sql) or die ('erreur sql <br>'.$sql.'<br>.mysql_error());
while($data = mysql_fetch_array($req))
{
echo '.$data.';
}
mysql_close();
?> 
Sinon, les concaténations sont ok maintenant ?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

07 mai 2006, 17:18

$sql = "SELECT nom FROM xlagenda WHERE date_fin >= '". $year ."-". $month ."-". $day ."' AND actif = 1 ORDER BY date_debut ASC, nom ASC";
Tu as oublié de ";" après ta requête.

Eléphant du PHP | 89 Messages

17 mai 2006, 22:24

Bonsoir,

ça marche en effet bcp mieux avec le ; en fin de requête

J'ai maintenant une parse error en ligne 22, soit après la dernière ligne de mon code (après le </html>)
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?

$db = mysql_connect ('mysql4','nomdelabase','password');
mysql_select_db('nomdelabase',$db);
$sql = "SELECT nom FROM xlagenda WHERE date_fin >= '". $year ."-". $month ."-". $day ."' AND actif = 1 ORDER BY date_debut ASC, nom ASC";
$req = mysql_query($sql) or die ('erreur sql <br>'.$sql.'<br>.mysql_error());
while($data = mysql_fetch_array($req))
{
echo '.$data.';
}
mysql_close();
?> 
</body>
</html>
Merci pour votre aide.
Modifié en dernier par vins1892 le 15 août 2006, 14:28, modifié 2 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

17 mai 2006, 22:31

édite ton post et utilise les balises
 tu trouveras ton erreur par coloration syntaxique  :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 89 Messages

10 août 2006, 13:01

Salut,

je profite de mes vacances et reviens sur ce vieux sujet.

J'ai édité les balises, ms ne vois tjrs pas où est le soucis.

Help.

Eléphant du PHP | 184 Messages

10 août 2006, 13:51

Pourtant ca saute aux yeux, regarde du côté de ton echo. :wink:
Image

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 août 2006, 14:18

c'est plutot au niveau du die() ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 184 Messages

10 août 2006, 14:30

oops en effet juste après le <br> :roll:
il est vrai que l'echo n'est pas un probleme syntaxique à proprement dit :wink:
Image

Avatar du membre
ViPHP
ViPHP | 3008 Messages

10 août 2006, 19:04

N'oublies pas le résolu pour clore le problème ;)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

10 août 2006, 19:09

N'oublies pas le résolu pour clore le problème ;)
C'est pas encore le cas :)

Il va revenir en décembre les prochaines vacances :lol:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 89 Messages

15 août 2006, 14:48

Bjr et dsl pour ma réponse tardive :oops:

Merci pour votre aide, il manquait un ' dans le die.

Maintenant, ma requête donne ArrayArrayArrayArrayArrayArray ...

On peut continuer sur le même topic ou j'ouvre un nouveau ?

Merci.

Eléphant du PHP | 184 Messages

15 août 2006, 14:57

Normal, tu affiches un tableau sans en indiquer la colonne.
Image