[PHP] Problème avec ce code :

Résolu/Fermé
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 - 9 juin 2005 à 16:37
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 - 17 juin 2005 à 18:23
Bonjour....
J'ai un problème dans ce code PHP, on me renvoie une erreur à la ligne de dessin du tableau, si quelqu'un pouvait m'aider ça serait super !!!
<html>
<head>
<title>Liste des produits</title>
</head>
<body>
<?
$bd="LaFleur_version2";
$user="root";
$password="";  
$cnx = odbc_connect( $bd , $user, $password );
if( ! $cnx ) echo "Impossible de se connecter";
else
{
$requete= "SELECT pdt_image, pdt_ref, pdt_designation, pdt_prix 
FROM produit, categorie
WHERE categorie.cat_libelle='$categorie'
AND produit.pdt_categorie = categorie.cat_code;";

$result=odbc_exec( $cnx , $requete );

while (odbc_fetch_into( $result , $ligne ) ){
echo"<TR><TD>"<img src="../images/'.$ligne[0].'".jpg">"</TD><TD>".$ligne[1]."</TD><TD>".$ligne[2]."</TD><TD>".$ligne[3]."</TD></TR>"};
}
?>
</body>
</html>
A voir également:

11 réponses

Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
9 juin 2005 à 16:47
Salut,

Remplace ton tableau par celui-ci :
while (odbc_fetch_into( $result , $ligne ) ){
echo '<TR><TD><img src="../images/'.$ligne[0].'.jpg"></TD><TD>'.$ligne[1].'</TD><TD>'.$ligne[2].'</TD><TD>'.$ligne[3].'</TD></TR>'};
}

@+
0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4
9 juin 2005 à 16:52
Pour commencer merci quand même pour ton aide...
Mais ça ne marche pas non plus il me dit :
Parse error: parse error, expecting `','' or `';'' in c:\program files\easyphp1-8\www\version2\produits.php on line 22
La ligne 22 est celle dessinant le tableau et produits.php le nom du fichier contenant tout ce code..
Merci
0
Salut,

Dans ta ligne :
echo"<TR><TD>"<img src="../images/'.$ligne[0].'".jpg">"</TD><TD>".$ligne[1]."</TD><TD>".$ligne[2]."</TD><TD>".$ligne[3]."</TD></TR>"};


on dirait bien que tu t'emmêles les pinceaux avec les " et les '... De plus, y a un } qui ne sort de nulle part.
Essaie de mettre ça plutôt :
echo '<TR><TD><img src="../images/'.$ligne[0].'.jpg"></TD><TD>'.$ligne[1].'</TD><TD>'.$ligne[2].'</TD><TD>'.$ligne[3].'</TD></TR>';


Ca devrait marcher mieux.
Sinon, donne-nous au moins l'erreur qu'il te renvoie ;)

Au passage, tu n'as pas ouvert de balises <table>, donc je ne garantis pas l'affichage correct sur le navigateur ;)

Bonne chance,

Xavier
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
9 juin 2005 à 16:56
Et après relecture il me semble que la variable $ligne n'est pas définie
0
Xavier > Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007
9 juin 2005 à 16:59
odbc_fetch_into( $result , $ligne )

Je ne connais pas l'interfaçage php/odbc, mais j'ai pensé que cette ligne définissait $ligne comme le tuple suivant de $result, non ?
0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4
9 juin 2005 à 16:59
Maintenant il me dit que j'ai un problème a la ligne 26, c'est celle avec </body>, l'erreur qu'il me renvoie est :
Parse error: parse error in c:\program files\easyphp1-8\www\version2\produits.php on line 26
Merci
0
Xavier > NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008
9 juin 2005 à 17:01
Rajoute un } juste avant ?>
C'est celui du else qui n'est pas fermé.
0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4 > Xavier
9 juin 2005 à 17:06
Ok merci j'ai fait l'abruti j'avais pas vu merci beaucoup et maintenant il me renvoie : Notice: Undefined variable: categorie in c:\program files\easyphp1-8\www\version2\produits.php on line 17
La ligne 17 correspond a la ligne :
AND produit.pdt_categorie = categorie.cat_code;";

Merci beaucoup les gras vous êtes géniaux...
0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4
9 juin 2005 à 17:18
Mais j'ai quand même l'impression que mon problème vient de la ligne du dessus a savoir :
WHERE categorie.cat_libelle='$categorie'

Si un de vous deux pouvait m'aider ça serait formidable...
Merci
0
Effectivement, ta variable $categorie n'a pas l'air d'être définie...
Elle vient d'où ? D'un formulaire ?

Essaie de faire
echo $categorie;

en haut de ta page, voir ce que ça affiche...

Si elle vient d'un formulaire passé en POST, alors il faut l'initialiser de la façon suivante :
$categorie = $_POST['categorie'']
(ou $_GET['categorie] si c'est une variable passée en GET )
0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4
9 juin 2005 à 17:39
Il me marque qu'elle n'est pas définie...
J'ai deux fichier php..
Le premier qui s'exécute d'abord :
<html>
<head>
<title>menu</title>
<script>
function afficherProduits(categ)
	{
	document.choixCateg.categorie.value = categ;
	document.choixCateg.submit();
	}
</script>
</head>
<body>
<h2>Sté Lafleur</h2>
<p><a href="logo.htm" target="page">Accueil</a>
<hr>
<u><b>Nos produits</b></u>
<?
	$bd="LaFleur_version2";
	$user="root";
	$password="";  
	$cnx = odbc_connect( $bd , $user, $password );
	if( ! $cnx ) echo "Impossible de se connecter";
		else
		{
		$requete='select * from categorie;';
		$result=odbc_do( $cnx , $requete );
		while (odbc_fetch_into($result, $ligne))
			{
			echo '<p><a href="javascript:afficherProduits(\''.$ligne[0].'\')">'.$ligne[1].'</a>';
			}
		}
?>
<form name="choixCateg" action="produits.php" target="page" method="post">
<input type="hidden" name="categorie">
</form>
</body>
</html>


et le second fichier php est plus haut dans le post..
C'est en fait un site internet utilisant du php qui récupère des données dans une base de donnée Access, la connexion est faite avec un driver ODBC..
Mon site internet est composé de 2frames (a gauche: menu et a a droite: logo) dans la frame de gauche il me récupère les différentes catégories de fleurs que j'ai dans la base de données et quand je clique dessus (c'est la que mon erreur arrive) il devrait apparaitre un tableau récuperant diverses informations sur les différents produits de cette catégorie..
Comment je peux déclarer $categorie ??
Merci

--
Plus tu pedales moins vite...
...Moins t'avance plus vite !!
0
OK je vois.
Dans ton deuxième fichier, celui qui exécute la requête.
Juste avant ta ligne
$requete="blabla";

Rajoute la ligne :
$categorie = $_POST['categorie'];


Allez, cette fois-ci c'est la bonne :)

Xavier
0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4 > Xavier
9 juin 2005 à 18:01
Il ne me sors aucune erreur mais rien ne s'affiche, c'est peut-être due au fait que je n'ai pas mis les balises <Table> et </Table> ??
On doit pas etre loin du but....
Merci quand même...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4
9 juin 2005 à 17:52
Aider moi stp....
0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4
9 juin 2005 à 18:26
s'il vous plait aider moi on y est presque...
Merci d'avance...
0
Ben t'as essayé avec les <table> ?
J'attends ta réponse, moi...

Et si rien ne s'affiche, affiche le code source (html) de ta page et copie-le ici...
Sinon, il va falloir s'assurer que ta requête renvoie bien un résultat.
Pour ça, tente de l'afficher (echo $requete; ), puis lance-la directement dans ta base de données voir si il en sort quelque chose.
0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4 > Xavier
9 juin 2005 à 18:44
Tu as mon code source de produits.php là :
<html>
<head>
<title>Liste des produits</title>
</head>
<body>
<?
$bd="LaFleur_version2";
$user="root";
$password="";  
$cnx = odbc_connect( $bd , $user, $password );
if( ! $cnx ) echo "Impossible de se connecter";
else
{
$categorie = $_POST['categorie'];
$requete= "SELECT pdt_image, pdt_ref, pdt_designation, pdt_prix 
FROM produit, categorie
WHERE categorie.cat_libelle='".$categorie."'
AND produit.pdt_categorie = categorie.cat_code;";

$result=odbc_exec( $cnx , $requete );

while (odbc_fetch_into( $result , $ligne ) ){
echo '<TR><TD><img src="../images/'.$ligne[0].'.jpg"></TD><TD>'.$ligne[1].'</TD><TD>'.$ligne[2].'</TD><TD>'.$ligne[3].'</TD></TR>';
}
}
?>
</body>
</html>


Lorsque je saisi :
echo $requete;

il m'affiche :
SELECT pdt_image, pdt_ref, pdt_designation, pdt_prix 
FROM produit, categorie
WHERE categorie.cat_libelle='".$categorie."'
AND produit.pdt_categorie = categorie.cat_code;

Et quand j'exécute la requète sous access il me trouve aucun résultat probablement car il ne comprend pas à quoi correspond : ".$categorie."
Merci de ton aide...
0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4
9 juin 2005 à 19:34
Xaaavvvvviiieeeerrrrr...... s'il te plait......
0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4
9 juin 2005 à 21:42
up up up
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
10 juin 2005 à 08:52
Salut,

Et si tu met :

WHERE categorie.cat_libelle='.$categorie.'

Cela change quelque chose ?
0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4
10 juin 2005 à 10:16
ça ne change rien mais est-ce que la requète comprend d'où sort '$categorie' ?? dans la première page php.. ???
est-ce que ma liaison est bien faite ???
Merci
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
10 juin 2005 à 10:25
mais est-ce que la requète comprend d'où sort '$categorie' ??

Pour le savoir, écris juste en dessous de $categorie = $_POST['categorie']; :
echo $categorie;
0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4
10 juin 2005 à 10:29
ouais c bon la valeur qui s'affiche de $categorie est celle que j'attend dans la requete.. D'où vient le problème alors ??
Peut-etre du fait que je n'ai pas mit de balise <TABLE> ?? Comment et où les mettre stp... ??
Merci
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497 > NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008
10 juin 2005 à 10:34
Juste avant ton while, tu écris echo '<table>'; et à la fin de ton while (après le } ) tu écris echo '</table>';
0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4
10 juin 2005 à 10:40
ça ne marche toujours pas... :'(
Est-ce que mon tableau est rempli correctement ??
Parce que mon écran est blanc et ne me renvoie aucune erreur...
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
13 juin 2005 à 09:40
En fait, euh lol, j'ai le même problème, alors si t'as trouvé une solution, ben ce serait cool de partager... :D

Merci ;)
0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4 > Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007
17 juin 2005 à 18:23
Bein en fait le problème venait du fait que ma requète n'était pas reconnue par le code php.. en modifiant ma requete, miracle, ça marche.. Voilou A+
0