affichage des données de ma base

Eléphanteau du PHP | 32 Messages

03 août 2005, 10:07

bonjour à tous,

je rencontre un petit probleme pour afficher les données de ma base en fait j'ai une table produit contenant tous les produits de la societe
je cherche tout simplement à les afficher mais il ya un merssage d'erreur
je vous remercie d'avance de l'aide apporté

Code : Tout sélectionner

$requete='select * from produit where nomproduit="'.$_POST['nompr'].'"'; $jeuResultat=mysql_query($requete,$connexion); $ligne=mysql_fetch_array($jeuResultat); while($ligne) { echo '<tr>'; echo '<td align="center"><img src="../images/'.$ligne["pdt_image"].'.jpg" /></td>'; echo '<td>'.$ligne["nomproduit"].'</td>'; // echo '<td>'.$ligne["pdt_designation"].'</td>'; // echo '<td align="right">'.$ligne["pdt_prix"].' €</td>'; // echo '</tr>'; $ligne=mysql_fetch_assoc($jeuResultat); } mysql_close();
et voici le message d'erreur


Notice: Undefined index: nompr in c:\program files\easyphp1-7\www\site\essai.php on line 14


voici un bout de code de ma table produit

Code : Tout sélectionner

CREATE TABLE `produit` ( `idproduit` int(11) NOT NULL auto_increment, `nomproduit` varchar(40) default NULL,

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

03 août 2005, 10:16

rien à voir avec la base de données

il te dit que "nom_pr" dans les variables POST n'existe pas
à cette ligne
$requete='select * from produit where nomproduit="'.$_POST['nompr'].'"'; 
(
 c'est mieux que [code] pour afficher du code ;))

donc il faut que tu testes si c'est bien cette variable que tu récupères, et si elle existe bien

Eléphanteau du PHP | 32 Messages

03 août 2005, 10:21

merci de m'avoir répondu
je débute mais je pense que puisque c'est une variable et comme tu me l'as ça n'a rien à voir avec la base ,il devait quand meme l'accepter donc je pux lui donner le nom que je veux ou pas ?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

03 août 2005, 10:23

tu peux lui donner le nom que tu veux oui ça aucun soucis

mais là tu récupères une variable d'un formulaire, envoyée en POST
donc tu utilises le tableau $_POST

donc si ce formulaire n'a pas été envoyé, la variable $_POST['nompr'] n'existe pas ;)

donc si ce code est susceptible d'être appelé même si le formulaire n'a pas été soumis (si code et formulaire sont sur la même page par exemple)
il faut que tu ne l'exécutes que si le formulaire a été envoyé

Eléphanteau du PHP | 32 Messages

03 août 2005, 10:31

je pense avce tes explications ça devient plus clair, sauf que je ne recupére pas les valeurs d'un formulaire, il nya pas de formulaire
je viens de créer ma table "produit" et je cherche à afficher les données que j'ai saisies

peut etre que alors c'est le code qui est tout faux ?
en tout cas merci

Mammouth du PHP | 19672 Messages

03 août 2005, 10:32

Et quand ça sera réglé, il faudra compléter ceci aussi :
while($ligne)
Il en manque un bout...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 32 Messages

03 août 2005, 10:37

j'ai changé la structure d ela boucle while et voici le nouveau code
 $requete='select * from produit where nomp="'.$_POST['nomproduit'].'"';
        $jeuResultat=mysql_query($requete,$connexion);
       
        while($ligne = mysql_fetch_array($jeuResultat) )
        {
            echo '<tr>';
            echo '<td align="center"><img src="../images/'.$ligne["nomimage"].'.jpg" /></td>';
            echo '<td>'.$ligne["nomproduit"].'</td>';
           
            
        }
    
   
mysql_close();
peut etre que c'est mieux comme ça

Mammouth du PHP | 19672 Messages

03 août 2005, 10:44

Syntaxiquement oui : est-ce que ça fonctionne ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 août 2005, 10:48

je ne recupére pas les valeurs d'un formulaire, il nya pas de formulaire
Si tu n'utilise pas de formulaire, pourquoi est-ce que tu utilise une variable $_POST ? Selon toi, qu'est censée faire cette variable ?
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éphanteau du PHP | 32 Messages

03 août 2005, 11:03

c'est vrai je n'avais pas suffisamment réfléchi
j'ai vu mon erreur et je vous remercie tous

Eléphanteau du PHP | 32 Messages

04 août 2005, 09:41

bonjour,
je rencontre un nouveau probleme:je m'explique
dans la table produit pour certains produits le champ description est vide et pour d'autre nom

je voudrais alors que quand le champ description est vide qu'il ne l'affiche pas pour ne rien mettre derriere

j'ai modifié mon code mais il m'affiche le message Parse error: parse error, unexpected '.' in c:\program files\easyphp1-7\www\sitef\essaia.php on line 23


et voici le bout de code
<table >
  		<td>
    		<tr>Image</tr>	
    		<td>Nom Produit <? echo '<tr><td>'.$ligne["nomproduit"].'</td></tr>';?></td>
		
    
			<? if (.$ligne["description"!=""].)?>
				{
					<td>Description <? echo '<tr><td>'.$ligne["description"].'</td></tr>';?></td>
			<? 	}?>
		</td>
	</table>
	<?
}
mysql_close();

?>
merci d'avance

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 août 2005, 09:49

quand tu un message "Erreur ligne 23", si tu postes le bout de code qui correspond, ce serait sympa de marquer la ligne 23, nous on ne sait pas laquelle c'est :roll:

mais bon à première vue cette ling epose problème :
<? if (.$ligne["description"!=""].)?> 
les points sont en trop et le test est mal fait
de plus, utilise plutôt la balise <?php que <?
et tu fermes la balise PHP avant l'accolade ouvrante de ta condition
<?php if ($ligne["description"] != "")

Mammouth du PHP | 19672 Messages

04 août 2005, 09:54

Déjà ton code html serait sérieusement à revoir, on ne met pas un <tr><td> directement dans un <td>.

Ensuite tu as un point juste avant ta variable dans le if() et dans ce if, le crochet de fermeture de l'index n'est pas à sa place :
proposition de corrigé:
<table >
  <tr>
    <td>Image</td> 
    <td>Nom Produit <? echo($ligne["nomproduit"]);?></td>
    <?
    if ($ligne["description"]! = "")
    {
?>
    <td>Description <? echo($ligne["description"]);?></td>
<?
    }
    else

    {
?>
    <td>&nbsp;</td>
<?
    }
?>
  </tr>
</table>
<?
}
mysql_close();
?>
Un minimum d'attention est requis pour programmer, les langages informatiques tolèrent mal la fantaisie...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 32 Messages

04 août 2005, 10:26

merci
j'ai pris compte de vos remarques sans rancune ni rien du tout et ça m'a beaucoup servi, j'ai fini par reussir ce que je voulais faire
merci encore

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 août 2005, 10:28

j'ai pris compte de vos remarques sans rancune ni rien du tout
ben ouais heureusement encore :lol:

ce sont des remarques pour s'améliorer, pas une engueulade ;)