Je débute...probleme de lien suite à un while

cs_deodato Messages postés 12 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 23 avril 2009 - 31 déc. 2004 à 19:08
cs_deodato Messages postés 12 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 23 avril 2009 - 1 janv. 2005 à 12:34
Bonsoir à tous, avant tou bonne année. :-)
Voilà mon probleme, je vais parler avec des mots simples car le monde du php est tout nouveau pour moi.

j'ai une BD dans laquelle se trouve les elements suivants :
idprod : 1201.1202.1203.1204......etc
nom_produit : cuisines.escaliers.electricité.plomberie......etc...Je souhaite faire afficher suite à une requete lles éléments dont l'Id commence par "12" , j'affiche les écritures suivantes :

<?php

// connection a la base en local
$connect = mysql_connect("localhost","root","");
// selection de la base
mysql_select_db("ma_base", $connect);
// votre requete de selection
$rest = $produit.$rub ;
$sql = mysql_query("SELECT * FROM cuisines WHERE IDprod LIKE '$rest%'");
// on compte le nombre de résultats
$result = mysql_num_rows($sql);
echo"Il y a ",$result," modèles

";
// récupération et affichage des données
// affichage avec un boucle while
while($affichage = mysql_fetch_array($sql, MYSQL_ASSOC)){
echo $affichage ['nom_produit'],"
";
// fin de boucle while
}
// fermeture de la connection
mysql_close($connect);
echo

?>

les élements s'affiche bien en colonne comme suit :
- cuisines
- escaliers
- electricité
- plomberie
Ma question est la suivante :
comment faire pour que chaque lignes soient "incrémentée" d'un lien (avec l'idprod correspondante par exemple : "cuisines " aurait ce lien : index.php?idprod=1201
j'ai essayé un echo "[index.php?idprod=$affichage ['idprod'] $affichage ['nom_produit']]

Mais rien n'y fait, merci pour votre aide

4 réponses

cs_sjon Messages postés 861 Date d'inscription mardi 26 mars 2002 Statut Membre Dernière intervention 29 novembre 2006 1
31 déc. 2004 à 22:17
Sael og blesud

<?php

// connection a la base en local
$connect = mysql_connect("localhost","root","");
// selection de la base
mysql_select_db("ma_base", $connect);
// votre requete de selection
$rest = $produit.$rub ;
$sql = mysql_query("SELECT * FROM cuisines WHERE IDprod LIKE '$rest%'");
// on compte le nombre de résultats
$result = mysql_num_rows($sql);
echo"Il y a ",$result," modèles

";
// récupération et affichage des données
// affichage avec un boucle while
while($affichage = mysql_fetch_array($sql, MYSQL_ASSOC)){
echo "".$affichage ['nom_produit']."
";
// fin de boucle while
}
// fermeture de la connection
mysql_close($connect);

?>

Sigurjon Birgir Sigurdsson aka Sjon
0
cs_deodato Messages postés 12 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 23 avril 2009
1 janv. 2005 à 00:52
Merci beaucoup tu n'as pas été bavard mais tu m'as donné la réponse, ça marche très bien.
Ma prof de math me disait : "ce n'est pas le résultat qui compte mais le résonnement".
apparemment je n'étais pas loin de la réponse, mais pourquoi faut il ajouter un ". avant la variable?
un . est un élément de concaténation mais je ne vois pas là l'utilité d'une concaténation.
Merci pour ta réponse
0
cs_sjon Messages postés 861 Date d'inscription mardi 26 mars 2002 Statut Membre Dernière intervention 29 novembre 2006 1
1 janv. 2005 à 03:29
Sael og blesud

En fait vous ouvrez la fonction echo par des guillemets mais vous faites de même pour votre href ce qui pour php veut dire que vous refermez votre fonction echo. il aurait été possible de les slasher de la manière suivante :

echo "$affichage ['nom_produit']";

Je ne vous ait présenté qu'une des multiples solutions existantes. Mais vous auriez pu l'écrire aussi comme cela

echo "$affichage [nom_produit]";

Voilà, j'espère avoir été simple.

Bon courage

Sigurjon Birgir Sigurdsson aka Sjon
0
cs_deodato Messages postés 12 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 23 avril 2009
1 janv. 2005 à 12:34
Merci pour tout

j'avais essayé les slash egalement mais rien n'y faisait, je vais retenir la 1ere solution que j'ai comprise.
Encore merci et très bonne année à vous
Deodato
0
Rejoignez-nous