Sign in to follow this  
Followers 0

Création d'une page "Meilleures Ventes"

51 posts in this topic

Posted · Report post

as tu des commandes sur ton site?

Share this post


: post
Share on other sites

Posted · Report post

Erreur SQL !

SELECT oi.count (*) as count , p.id , p.nom , p.prix FROM peel_commandes_articles oi, peel_produits p WHERE oi.produit_id = p.id GROUP BY oi.produit_id, p.id ORDER BY count DESC LIMIT 10

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(*) as count , p.id , p.nom

Toujours pas :P

Merci de vos réponses et de votre aide en tout cas, ça fait vraiment plaisir :)

Des commandes ? Oui jen ai passé une dizaine de fictives qui sont toujours enregistrées dans la table.

Share this post


: post
Share on other sites

Posted · Report post

je suis sur le coup

ok c'est oi.count(*) qui ne marchera pas.

Share this post


: post
Share on other sites

Posted · Report post

Exact, j'ai changé quelques lignes pour le faire marcher, ce qui a donné ceci :

$sql = "SELECT

			  oi.produit_id as count

			, p.id

			, p.nom

			, p.prix

		FROM peel_commandes_articles oi, peel_produits p

		WHERE oi.produit_id = p.id

		GROUP BY oi.produit_id

		ORDER BY count

		DESC LIMIT 10";

Mais avec cette requête il me classe les vins par ordre de grandeur de l'id et non par nombre d'occurences :/

Share this post


: post
Share on other sites

Posted · Report post

$sql = "SELECT

			  count (*) as count

			, p.id

			, p.nom

			, p.prix

		FROM peel_commandes_articles oi, peel_produits p 

		WHERE oi.produit_id = p.id

		GROUP BY oi.produit_id, p.id

		ORDER BY count

		DESC LIMIT 10";

Share this post


: post
Share on other sites

Posted · Report post

Non, on retombe sur une erreur de syntaxe avec ca...

Grouh, on en viendra jamais à bout ...

Share this post


: post
Share on other sites

Posted · Report post

ca en comptera trop ca. teste le en réél mais moi ca me comptait les choses deux fois.

Share this post


: post
Share on other sites

Posted · Report post

VOUIIIIIIIIIIIIIIIIII, ca y est ca marche !!!

Grâce à vous deux Attila et Willy, merciiiiii

Voici la requête en question pour ceux que ca interresse :

$sql = "SELECT

			  Count(*) AS count

			, p.id

			, p.nom

			, p.prix

		FROM peel_commandes_articles oi, peel_produits p

		WHERE oi.produit_id = p.id

		GROUP BY oi.produit_id, p.id

		ORDER BY count

		DESC LIMIT 10";

La seule chose qui clochait dans ton morceau de code Willy, c'était simplement la majuscule à "Count" et il ne fallait pas d'espace entre Count et (*) !

Youpiiiiiii, vous n'imaginez pas comment je suis heureux de voir tout ça marcher :)

Merciii encore !

Share this post


: post
Share on other sites

Posted · Report post

le plaisir d'aider son prochain :)

Share this post


: post
Share on other sites

Posted · Report post

C'est ca qui clochait:

oi.count (*)

J'avais pas calculé entre les 4-5 MP, mon travail et mon propre codage :)

Willy

Share this post


: post
Share on other sites

Posted · Report post

VOUIIIIIIIIIIIIIIIIII, ca y est ca marche !!!

Grâce à vous deux Attila et Willy, merciiiiii

Voici la requête en question pour ceux que ca interresse :

$sql = "SELECT

			  Count(*) AS count

			, p.id

			, p.nom

			, p.prix

		FROM peel_commandes_articles oi, peel_produits p

		WHERE oi.produit_id = p.id

		GROUP BY oi.produit_id, p.id

		ORDER BY count

		DESC LIMIT 10";

La seule chose qui clochait dans ton morceau de code Willy, c'était simplement la majuscule à "Count" et il ne fallait pas d'espace entre Count et (*) !

Youpiiiiiii, vous n'imaginez pas comment je suis heureux de voir tout ça marcher :)

Merciii encore !

En effet ce serait aussi une superbe fonction pour mon site!

Dans quel page doit-on insérer ce code? j'aimerai la mettre dans la colonne de gauche au dessus des catégorie.

Merci pour votre aide,

suspensionlab

Share this post


: post
Share on other sites

Posted · Report post

Cette requete renvois le top des ventes, apres il faut les afficher.

Soit comme noya_m l'a mis en debut de post soit comem vous voulez dans la page bah.php.

Willy

Share this post


: post
Share on other sites

Posted · Report post

Cette requete renvois le top des ventes, apres il faut les afficher.

Soit comme noya_m l'a mis en debut de post soit comem vous voulez dans la page bah.php.

Willy

Je n'y arrive pas, je me suis basé sur noya_m mais rien ne s'affiche, j'ai fais la correction en rapport avec les templates ligne 52, voici mon code: merci pour vos lumières

<?

include("configuration.inc.php");


if (!isset($_GET['catid'])) { $catid = 0;} else {$catid = intval($_GET['catid']);}


$DOC_TITLE = "Suspensionlab.be, #1 in Repair & Service in Belgium";


include("$repertoire_modele/haut.php");

echo " > Nouveautés<div class=\"petit\">".affiche_arbre_categorie($catid)." </div>";

echo "<div class=\"entete\"><img src=\"images/entete_livre.jpg\" title=\"\" alt=\"\"/ align=\"absmiddle\">meilleures ventes</div>";


$nb = 30; //nombre d'enregistrement par page 


if (!isset($_GET['start'])) {$start=0;} else {$start = intval($_REQUEST['start']);}


// Récupération et affichage des données 


$sql="SELECT count(*) as count, produit_id FROM `suspensionlab_commandes_articles` group by produit_id order by count desc";



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



if (mysql_num_rows($result) == 0) { 



echo "<div class=\"texte\">".NO_INDEX_PRODUCT."</div>";


} else {


echo "<table border=\"0\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\">";


$nb_cellules = mysql_num_rows($result);


$nb_colonnes = 2;


$j = 0;


while($prod=mysql_fetch_array($result)) 

{


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


echo "<tr>";


}


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


echo "<td class=\"normal\" width=\"33%\">"; 


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


} 


echo "</td>";


$j++; 


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


echo "</tr>";


}


} 



echo "<td align=\"center\" class=\"normal\" colspan=\"2\">";


//Boutons précédent et suivant 

if($start) 

{print("<a class=petit href=\"index.php?catid=".$catid."&start=".($start-$nb)."\">Page précédente</a>");} 


$result=mysql_query("SELECT COUNT(*) FROM suspensionlab_produits p, suspensionlab_produits_categories pc WHERE p.id = pc.produit_id AND pc.categorie_id = $catid AND p.etat = 1"); 


$row=mysql_fetch_row($result); 


if($row[0]>($start+$nb)) 

{ 

if($start) 

{print(" / ");} 

print("<a class=petit href=\"index.php?catid=".$catid."&start=".($start+$nb)."\">Page suivante</a>"); 

} 


print("<br />"); 


//Affichage des pages 

if($row[0]>$nb) {// le nombre d'enreg. est > au nb de lignes d'affichage ?

print("Page : "); 

for($index=0;($index*$nb)<$row[0];$index++) // oui alors on affiche les numéros de pages

{ 

?>

<b><a class="petit" href="<?=$_SERVER['PHP_SELF']."?catid=".$catid."&start=".$index*$nb; ?>"><? echo $index+1; ?></a></b>

<? 

}

}

echo "</td></tr></table>";

}

include("$repertoire_modele/bas.php");




?>

Suspensionlab

Share this post


: post
Share on other sites

Posted · Report post

Vous avez des commandes ?

RIEN ne s'affiche ?

A mon avis il va y avoir un soucis au niveau des pages precedente et suivante, mais ca devrait afficher des articles quand même s'il y a des commandes.

Il y a une erreur ?

Willy

Share this post


: post
Share on other sites

Posted · Report post

Vous avez des commandes ?

RIEN ne s'affiche ?

A mon avis il va y avoir un soucis au niveau des pages precedente et suivante, mais ca devrait afficher des articles quand même s'il y a des commandes.

Il y a une erreur ?

Willy

je n'ai qu'une commande, je vais en faire qq fictives, je n'ai pas d'erreur en tout cas.

Merci, je vous tiens au courant,

suspensionlab

Share this post


: post
Share on other sites

Posted · Report post

Vous avez des commandes ?

RIEN ne s'affiche ?

A mon avis il va y avoir un soucis au niveau des pages precedente et suivante, mais ca devrait afficher des articles quand même s'il y a des commandes.

Il y a une erreur ?

Willy

Après quelques essais je n'y arrives tjrs pas, j'ai copié la page index.php et renommé en top_sales.php pour éviter des erreurs, mais rien ne s'affiche... :)

Par contre j'ai: NO_INDEX_PRODUCT

Pourriez-vous me dire ce qu'il me manques? Un index mais ou?

Merci à vous,

Suspensionlab.be

Share this post


: post
Share on other sites

Posted · Report post

Pardon, NO_INDEX_PRODUCT est parti car je n'avais pas le nom de la bonne BDD.

J'ai donc Meilleures ventes qui s'affiche mais pas de contenu.

Merci,

suspensionlab

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Je vais donner ma page des "meilleures ventes" étant donnée qu'elle marche et que ça pourrait donner des pistes à quelqu'uns.

Je précise que PEEL sert ici pour une boutique de vente en ligne de vins, vous pouvez voir le rendu à cette adresse (sachant que le design n'est pas encore fait) :

http://chateaupartner.com/test/boutique/ventes.php

voici le code (très simple en fait) :

<?

include("configuration.inc.php");


if (!isset($_GET['catid'])) {	$catid = 0;} else {$catid = intval($_GET['catid']);}


$qid_c = recupere_sous_categorie($catid);


$DOC_TITLE = "Chateau Partner";


include("$repertoire_modele/haut.php");

?>


<div id="content">

<div class="tetiere" align="left">Meilleures Ventes</div>


<table width="100%" cellpadding="2" cellspacing="1">

	<tr>

		<th id="breadCrumb">MILLESIME</th><th id="breadCrumb">CHATEAU</th><th id="breadCrumb">APPELLATION</th><th id="breadCrumb">COULEUR</th><th id="breadCrumb">PRIX</th>			</tr>


  <?php

//Requête SQL 

$sql = "SELECT

			  Count(*) AS count

			, p.id

			, p.nom

			, p.prix

			, p.millesime

			, p.couleur

			, p.aoc

		FROM peel_commandes_articles oi, peel_produits p

		WHERE oi.produit_id = p.id

		GROUP BY oi.produit_id, p.id

		ORDER BY count

		DESC LIMIT 10";

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


//Début de boucle

while( $sortie = mysql_fetch_array($req))


{ 

//Affichage de chaque ligne pour chaque produit

echo "<tr bgcolor='"; if($o==1) { echo "#ECECEC"; $o++; } else { echo "#FFFFFF"; $o=1; }

echo "'>


	<th class=\"catalogue\">$sortie[millesime]</th>

	<th class=\"catalogue\"><font color=#993333><b>";

	?>


<a href="<?echo $wwwroot?>/achat/produit_details.php?id=<?=$sortie['id'] ?>&catid=<?=$catid?>"><?echo stripslashes($sortie['nom']) ?>


<?

echo "</a></b></font></th>

	<th class=\"catalogue\">$sortie[aoc]</th>

	<th class=\"catalogue\"><b>$sortie[couleur]</th>

	<th class=\"catalogue\">$sortie[prix] €</th>


</tr>"; 


}


echo "</table>";


/******************************************************************************

 * FONCTIONS

 *****************************************************************************/


 function recupere_sous_categorie($catid=0) { 

/* Récupère le nom et la description de toutes les sous-catégories de celle-ci */

	$qid = mysql_query("SELECT id, nom, description, parent_id  FROM peel_categories WHERE parent_id = $catid AND id > 0 AND etat = 1") or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR()); 

	return $qid; 

}


?>


</div>

<?php include("$repertoire_modele/bas.php"); ?>

Voilà, en espérant que cela puisse t'aider suspensionlab...

Share this post


: post
Share on other sites

Posted · Report post

Execute cette requete directement dans phpmyadmin:

SELECT count(*) as count, produit_id FROM `suspensionlab_commandes_articles` group by produit_id order by count desc

Ca te retourne quoi ?

Willy

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

a quoi et servent:

if (!isset($_GET['catid'])) { $catid = 0;} else {$catid = intval($_GET['catid']);}

$qid_c = recupere_sous_categorie($catid);

/******************************************************************************

* FONCTIONS

*****************************************************************************/

function recupere_sous_categorie($catid=0) {

/* Récupère le nom et la description de toutes les sous-catégories de celle-ci */

$qid = mysql_query("SELECT id, nom, description, parent_id FROM peel_categories WHERE parent_id = $catid AND id > 0 AND etat = 1") or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());

return $qid;

}

Je pense que tu peux les virer car ca ne te sert pas dans cette page :)

Car tu appeles: "&catid=<?=$catid?>", mais dans le dateil produit seul l'id produit compte.

Ca sera encore plsu clair et léger comme ca, mais au moins ca marche là <_<

Willy

Share this post


: post
Share on other sites

Posted · Report post

Voui, c'est clair, je m'étais fait la remarque en la uploadant

Allez zou, j'allège mes pages !

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Je vais donner ma page des "meilleures ventes" étant donnée qu'elle marche et que ça pourrait donner des pistes à quelqu'uns.

Je précise que PEEL sert ici pour une boutique de vente en ligne de vins, vous pouvez voir le rendu à cette adresse (sachant que le design n'est pas encore fait) :

http://chateaupartner.com/test/boutique/ventes.php

voici le code (très simple en fait) :

<?

include("configuration.inc.php");


if (!isset($_GET['catid'])) {	$catid = 0;} else {$catid = intval($_GET['catid']);}


$qid_c = recupere_sous_categorie($catid);


$DOC_TITLE = "Chateau Partner";


include("$repertoire_modele/haut.php");

?>


<div id="content">

<div class="tetiere" align="left">Meilleures Ventes</div>


<table width="100%" cellpadding="2" cellspacing="1">

	<tr>

		<th id="breadCrumb">MILLESIME</th><th id="breadCrumb">CHATEAU</th><th id="breadCrumb">APPELLATION</th><th id="breadCrumb">COULEUR</th><th id="breadCrumb">PRIX</th>			</tr>


  <?php

//Requête SQL 

$sql = "SELECT

			  Count(*) AS count

			, p.id

			, p.nom

			, p.prix

			, p.millesime

			, p.couleur

			, p.aoc

		FROM peel_commandes_articles oi, peel_produits p

		WHERE oi.produit_id = p.id

		GROUP BY oi.produit_id, p.id

		ORDER BY count

		DESC LIMIT 10";

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


//Début de boucle

while( $sortie = mysql_fetch_array($req))


{ 

//Affichage de chaque ligne pour chaque produit

echo "<tr bgcolor='"; if($o==1) { echo "#ECECEC"; $o++; } else { echo "#FFFFFF"; $o=1; }

echo "'>


	<th class=\"catalogue\">$sortie[millesime]</th>

	<th class=\"catalogue\"><font color=#993333><b>";

	?>


<a href="<?echo $wwwroot?>/achat/produit_details.php?id=<?=$sortie['id'] ?>&catid=<?=$catid?>"><?echo stripslashes($sortie['nom']) ?>


<?

echo "</a></b></font></th>

	<th class=\"catalogue\">$sortie[aoc]</th>

	<th class=\"catalogue\"><b>$sortie[couleur]</th>

	<th class=\"catalogue\">$sortie[prix] €</th>


</tr>"; 


}


echo "</table>";


/******************************************************************************

 * FONCTIONS

 *****************************************************************************/


 function recupere_sous_categorie($catid=0) { 

/* Récupère le nom et la description de toutes les sous-catégories de celle-ci */

	$qid = mysql_query("SELECT id, nom, description, parent_id  FROM peel_categories WHERE parent_id = $catid AND id > 0 AND etat = 1") or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR()); 

	return $qid; 

}


?>


</div>

<?php include("$repertoire_modele/bas.php"); ?>

Voilà, en espérant que cela puisse t'aider suspensionlab...

Yeeeeeeeeeees! merci beaucoup, j'ai plus qu'a l'integrer dans mon design dans une colonne a gauche ou droite comme un site de pros quoi!

Humm, Le plus dur sera de rajouter une colonne à droite je crois.....

Merci à willy et riskbreaker.

Suspensionlab

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Je vais donner ma page des "meilleures ventes" étant donnée qu'elle marche et que ça pourrait donner des pistes à quelqu'uns.

Je précise que PEEL sert ici pour une boutique de vente en ligne de vins, vous pouvez voir le rendu à cette adresse (sachant que le design n'est pas encore fait) :

http://chateaupartner.com/test/boutique/ventes.php

voici le code (très simple en fait) :

<?

include("configuration.inc.php");


if (!isset($_GET['catid'])) {	$catid = 0;} else {$catid = intval($_GET['catid']);}


$qid_c = recupere_sous_categorie($catid);


$DOC_TITLE = "Chateau Partner";


include("$repertoire_modele/haut.php");

?>


<div id="content">

<div class="tetiere" align="left">Meilleures Ventes</div>


<table width="100%" cellpadding="2" cellspacing="1">

	<tr>

		<th id="breadCrumb">MILLESIME</th><th id="breadCrumb">CHATEAU</th><th id="breadCrumb">APPELLATION</th><th id="breadCrumb">COULEUR</th><th id="breadCrumb">PRIX</th>			</tr>


  <?php

//Requête SQL 

$sql = "SELECT

			  Count(*) AS count

			, p.id

			, p.nom

			, p.prix

			, p.millesime

			, p.couleur

			, p.aoc

		FROM peel_commandes_articles oi, peel_produits p

		WHERE oi.produit_id = p.id

		GROUP BY oi.produit_id, p.id

		ORDER BY count

		DESC LIMIT 10";

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


//Début de boucle

while( $sortie = mysql_fetch_array($req))


{ 

//Affichage de chaque ligne pour chaque produit

echo "<tr bgcolor='"; if($o==1) { echo "#ECECEC"; $o++; } else { echo "#FFFFFF"; $o=1; }

echo "'>


	<th class=\"catalogue\">$sortie[millesime]</th>

	<th class=\"catalogue\"><font color=#993333><b>";

	?>


<a href="<?echo $wwwroot?>/achat/produit_details.php?id=<?=$sortie['id'] ?>&catid=<?=$catid?>"><?echo stripslashes($sortie['nom']) ?>


<?

echo "</a></b></font></th>

	<th class=\"catalogue\">$sortie[aoc]</th>

	<th class=\"catalogue\"><b>$sortie[couleur]</th>

	<th class=\"catalogue\">$sortie[prix] €</th>


</tr>"; 


}


echo "</table>";


/******************************************************************************

 * FONCTIONS

 *****************************************************************************/


 function recupere_sous_categorie($catid=0) { 

/* Récupère le nom et la description de toutes les sous-catégories de celle-ci */

	$qid = mysql_query("SELECT id, nom, description, parent_id  FROM peel_categories WHERE parent_id = $catid AND id > 0 AND etat = 1") or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR()); 

	return $qid; 

}


?>


</div>

<?php include("$repertoire_modele/bas.php"); ?>
Voilà, en espérant que cela puisse t'aider suspensionlab...
Bonjour, J'aimerais maintenant afficher l'image du produit qui va avec la description, j'ai essayé mais la page index.php est alors vierge et j'ai une erreur SQL. J'ai essayé comme ceci:
<?php

//Requête SQL 

$sql = "SELECT

			  Count(*) AS count

			, p.id

			, p.nom

			, p.image1

			, p.prix

					FROM suspensionlab_commandes_articles oi, suspensionlab_produits p

		WHERE oi.produit_id = p.id

		GROUP BY oi.produit_id, p.id

		ORDER BY count

		DESC LIMIT 10";

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


//Début de boucle

while( $sortie = mysql_fetch_array($req))


{ 

//Affichage de chaque ligne pour chaque produit

echo "<tr bgcolor='"; if($o==1) { echo "#ECECEC"; $o++; } else { echo "#FFFFFF"; $o=1; }

echo "'>



	<td class=\"petit\"><font color=#993333><b>";

	?>


<a href="<?echo $wwwroot?>/achat/produit_details.php?id=<?=$sortie['id'] ?>&catid=<?=$catid?>"><?echo stripslashes($sortie['nom']) ?><?echo stripslashes($sortie['image1']) ?>


<?

echo "</a></b></font>

	 $sortie[prix] €</th>


</tr>"; 


}


echo "";


/******************************************************************************

* FONCTIONS

*****************************************************************************/


function recupere_sous_categorie($catid=0) { 

/* Récupère le nom et la description de toutes les sous-catégories de celle-ci */

	$qid = mysql_query("SELECT id, nom, description, parent_id  FROM suspensionlab_categories WHERE parent_id = $catid AND id > 0 AND etat = 1") or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR()); 

	return $qid; 

}


?>

et ceci s'affiche sur le navigateur:

CAP LOGO BLACK221106_194443_suspensionlab_gmVpeM.jpg 20.95 €

SHIRT LS BLACK X-Large090507_125407_suspensionlab_Fgqfw4.jpg 62.50 €

CAP BLACK TRUVATIV090507_124323_suspensionlab_6pDUz5.jpg 20.95 €

SUSPENSIONLAB SHIRT Medium060507_162604_suspensionlab_FuwGwf.jpg 19.95 €

ç-a-d le nom de la photo et pas l'image?!

Pouvez-vous m'aider?

Merci,

Suspensionlab

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Dans ton code, remplace cette ligne :

<?echo stripslashes($sortie['image1']) ?>

par celle-ci :

<img src="<?php echo $repertoire_images?>/<?php echo stripslashes($sortie['image1']) ?>" />

En effet, dans la variable image1, c'est le nom de l'image qui est stocké :) .

Cordialement

Jcdhl

Share this post


: post
Share on other sites

Posted · Report post

Je voudrais installer cette page mais meme en lisant tous les post, je ne trouve pas ca assez clair.

Est ce qu'il faut créer une nouvelle table?

Et quel fichier il faut modifier

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

Twitter Advisto ecommerce

Facebook PEEL Shopping