produits aléatoire

7 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour,

Avez-vous une idée sur la manière de mettre les produits en page d'accueil de façon aléatoire et automatique ?

Cordialement,

Balam

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Oui c'est possible.

Il faut remplacer le ORDER BY ... et mettre ORDER BY RAND()

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Oui c'est possible.

Il faut remplacer le ORDER BY ... et mettre ORDER BY RAND()

Willy

Bonjour Wily,

Comme vous le disiez si justement, je souhaite comprendre cette fonction ORDER BY RAND.

Sur quelle page dois-je faire la modification ?

Merci

Balam

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Expliquez ce que vous voulez et je vous dirais :)

Vous voulez que des produits soient choisis aléatoirement et affichés sur la page d'accueil de la même manière les produits spéciaux (case doit apparaitre en page d'accueil cochées dans le back office) par exemple ?

Si oui ajoute cette fonction dans modeles/default/template.php

function print_aleatoire() {


	/* Affiche la liste des catégories qui sont spéciales */

	global $wwwroot, $repertoire_modele,  $repertoire_images, $repertoire_upload;



	$sql = "SELECT p.id	FROM peel_produits p WHERE p.etat = '1' ORDER BY RAND() LIMIT 30";


	$qid = mysql_query($sql) or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	if (mysql_num_rows($qid) > 0) { 


	$nb_cellules = mysql_num_rows($qid);


	$nb_colonnes = 1;


	echo "<p><table align=\"center\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\" width=\"100%\">";


	echo "<tr><td colspan=".$nb_colonnes." class=\"entete\"><img src=\"images/fleche.gif\" />&nbsp;".SELECTION."</td></tr>";


			$j = 0;


			while ($prod = mysql_fetch_array($qid)) 

			{


			if ( $j % $nb_colonnes == 0 ) {	echo "<tr valign=top>";	}


			if($j % $nb_colonnes !=0 OR $j % $nb_colonnes == 0 ) {


			// on affiche une cellule

			if ( $j % $nb_colonnes == 0 OR $j == $nb_cellules ) { echo "<td class=\"newsCelluleOne\" width=\"50%\">"; } else { echo "<td class=\"newsCelluleTwo\" width=\"50%\">"; }


			template_index_produit($prod['id'],$where = " ", $form = "special");


			} 

			echo "</td>";


			$j++;	


			if ( $j % $nb_colonnes == 0 OR $j == $nb_cellules ) {

			echo "</tr>";

			}


			} 


	echo "</table></p>";


	}


}

Tu peux modifier le "LIMIT 30" et mettre le nombre de produits que tu veux en résultat.

Ensuite dans ton index.php, apres "print_categorie();", ajoute "print_aleatoire(); "

Dis nous si c'est OK ?

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

oui ça fonctionne nikel

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Expliquez ce que vous voulez et je vous dirais :)

Vous voulez que des produits soient choisis aléatoirement et affichés sur la page d'accueil de la même manière les produits spéciaux (case doit apparaitre en page d'accueil cochées dans le back office) par exemple ?

Si oui ajoute cette fonction dans modeles/default/template.php

function print_aleatoire() {


	/* Affiche la liste des cat&eacute;gories qui sont sp&eacute;ciales */

	global $wwwroot, $repertoire_modele,  $repertoire_images, $repertoire_upload;



	$sql = "SELECT p.id	FROM peel_produits p WHERE p.etat = '1' ORDER BY RAND() LIMIT 30";


	$qid = mysql_query($sql) or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


	if (mysql_num_rows($qid) > 0) { 


	$nb_cellules = mysql_num_rows($qid);


	$nb_colonnes = 1;


	echo "<p><table align=\"center\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\" width=\"100%\">";


	echo "<tr><td colspan=".$nb_colonnes." class=\"entete\"><img src=\"images/fleche.gif\" />&nbsp;".SELECTION."</td></tr>";


			$j = 0;


			while ($prod = mysql_fetch_array($qid)) 

			{


			if ( $j % $nb_colonnes == 0 ) {	echo "<tr valign=top>";	}


			if($j % $nb_colonnes !=0 OR $j % $nb_colonnes == 0 ) {


			// on affiche une cellule

			if ( $j % $nb_colonnes == 0 OR $j == $nb_cellules ) { echo "<td class=\"newsCelluleOne\" width=\"50%\">"; } else { echo "<td class=\"newsCelluleTwo\" width=\"50%\">"; }


			template_index_produit($prod['id'],$where = " ", $form = "special");


			} 

			echo "</td>";


			$j++;	


			if ( $j % $nb_colonnes == 0 OR $j == $nb_cellules ) {

			echo "</tr>";

			}


			} 


	echo "</table></p>";


	}


}

Tu peux modifier le "LIMIT 30" et mettre le nombre de produits que tu veux en résultat.

Ensuite dans ton index.php, apres "print_categorie();", ajoute "print_aleatoire(); "

Dis nous si c'est OK ?

Willy

Bonjour Willy,

Merci pour ce bout de code cela fonctionne à merveille.

Merci

Balam

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Pas de soucis.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping