cs_christobal
Messages postés208Date d'inscriptionjeudi 3 octobre 2002StatutMembreDernière intervention31 mars 2011
-
15 déc. 2005 à 10:25
cs_christobal
Messages postés208Date d'inscriptionjeudi 3 octobre 2002StatutMembreDernière intervention31 mars 2011
-
16 déc. 2005 à 21:04
Hello, le sujet résume ma question. J'ai la requette SQL suiavnte pour récupérer de maniere aléatoire 8 produits
SELECT * FROM produits ORDER BY RAND() LIMIT 8
J'ai la boucle suiavnte pour l'affichage des produits (1 produits par ligne )
<?php
while($row = mysql_fetch_array($result))
{
?>
----
Par contre je ne sais pas comment faire pour afficher 4 produits par ligne et que le nombre de ligne augmente ou diminu sivant le nombre de produits que je désire afficher.
tetedemul
Messages postés47Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention 4 janvier 2006 15 déc. 2005 à 18:04
tu peux faire un truc du style:
$i=0;
print("<table><tr>");
while(...)
{
if(i%4==0 && i<>0)//si i est un multiple de 4, arrive tous les 4 enregistrements...
print("</tr><tr>"); //on ferme la ligne et on commence une nouvelle (on a exclu i=0 car dans ce cas là il n'y a pas de <tr> à fermer
print ("<td>".$produit.</td>"); //arrive tout le temps
i++; //on incrémente i
}
cs_christobal
Messages postés208Date d'inscriptionjeudi 3 octobre 2002StatutMembreDernière intervention31 mars 2011 15 déc. 2005 à 20:05
Le principe est celui que je cherche mais le script ne marche pas.
Apparement il manque un double quot apres : ".$produit.
Pourquoi n'i a t'il pas de fermeture de la balise TABLE et TR ?
Je me permet ces remarques même ci je ne sais pas comment réaliser.
tetedemul
Messages postés47Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention 4 janvier 2006 15 déc. 2005 à 21:46
Simples oublis
$i=0;
print("\");
while(...)
{
if(i%4==0 && i<>0)//si i est un multiple de 4, arrive tous les 4 enregistrements...
print(\"----
\"); //on ferme la ligne et on commence une nouvelle (on a exclu i=0 car dans ce cas là il n'y a pas de ----
à fermer
print (\"".$produit.", \"); //arrive tout le temps
i++; //on incrémente i
}
print("
");
Cela marche-t-il maintenant ou pas?
Debutant informatique :-)
cs_christobal
Messages postés208Date d'inscriptionjeudi 3 octobre 2002StatutMembreDernière intervention31 mars 2011 16 déc. 2005 à 09:44
Et Flute ca ne marche pas j'ai une erreur sur la ligne 88 :
Ligne 88 : i++; //on incrémente i
Message : Parse error: parse error, unexpected T_INC in index1.php on line 88
Par contre j'ai completé la ligne : while(...) comme suite : while($row = mysql_fetch_array($result))
Comment doit je corriger cette erreur ?
Merci de ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
tetedemul
Messages postés47Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention 4 janvier 2006 16 déc. 2005 à 11:05
Désolé, tout est de ma faute, j'ai oublié les $ devant les noms de variables ! (je suis sur c++ en ce moment donc j'ai perdu l'habitude).
$i=0;
print("\");
while($row=mysql_fetch_row($result))
{
if($i%4==0 && $i<>0)//si i est un multiple de 4, arrive tous les 4 enregistrements...
print(\"----
\"); //on ferme la ligne et on commence une nouvelle (on a exclu i=0 car dans ce cas là il n'y a pas de ----
à fermer
print (\"".$row[1].", \"); //arrive tout le temps
$i++; //on incrémente i
}
print("
");
Ce code marche, je l'ai testé.
Debutant informatique :-)
cs_christobal
Messages postés208Date d'inscriptionjeudi 3 octobre 2002StatutMembreDernière intervention31 mars 2011 16 déc. 2005 à 11:51
Merci pour ce code qui fonctionne.
Par contre je viens de m'appercevoir qu'il y a que le premier champ de la table qui s'affiche alors que dans mon exemple au debut du post je shouterai avoir :
- L'image du produit (".$row[10].") en dessous
- Le nom du produit (".$row[2].") en dessou
- Le prix du produit (".$row[4].") en dessou
- Le bouton commander.
A l'heure actuelle j'affiche l'image (contenu dans la DB) comme ça :
Et le bouton commander comme ça : [magasin/cart.php?action=add_item&id=<?php echo $row[ &qty=1">]
Comment l'adapter à ton script ?
Pourquoi utilise on le numero du champ de la table plutôt que son nom ($row[10] correspondait à $row[image])
Merci de ton aide qui a fait grandemant avencer mon projet
tetedemul
Messages postés47Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention 4 janvier 2006 16 déc. 2005 à 12:59
<?php
print("<td ...>".$row['titre']."
</td>");
?>
Tu peux t'inspirer de ça pour ce dont tu as besoin (le code html peut être intégré en php avec un print ou un echo) . Si vraiment tu comprends pas, tu me dis et je le ferai à partir du fichier html que t'as posté au début (mais ça me lourde et tu dois pouvoir faire ça tout seul).
Debutant informatique :-)
cs_christobal
Messages postés208Date d'inscriptionjeudi 3 octobre 2002StatutMembreDernière intervention31 mars 2011 16 déc. 2005 à 21:04
Ca tourne trés bien merci de ton aide, mais comme je le soupsonnais, suivant la hauteur de l'image les informations qui se trouvent en dessous (nom du produit, prix, bouton commander) ne sont pas aligné sur le même niveau c'est pour ca que j'aimerai avoir un tableau comme dans mon premier post.
Donc sachant que ca ne t'arrange pas peut tu essayer de faire un tableau pour avoir une mise en page parfaite.