Requete php

Requete php - PHP - Programmation

Marsh Posté le 28-12-2006 à 15:55:09    

Bonjour
 
Je suis en train de passer ma boutique en ligne sous php  
 
 
$sql = 'SELECT nom_pdt, prix, description FROM produits WHERE categ = "La Cuisine"';
 
Voilà la requete que j'utilise pour afficher les produits, cependant dans ma base de donnée j'ai un champ stock et je souhaiterai que le site n'affiche que les pdts dont le stock est > 0 je pense qu il faut utiliser une requete if mais je ne sais pas commment ni ou la placer
 
merci d'avance à ceux qui pourront m'aider

Reply

Marsh Posté le 28-12-2006 à 15:55:09   

Reply

Marsh Posté le 28-12-2006 à 16:00:38    

Indice : ta requête actuelle n'affiche que les produits de catégorie "La Cuisine". :spamafote:

Reply

Marsh Posté le 28-12-2006 à 16:05:49    

une requête if, ça ne veut pas dire grand chose. Pour qu'on puisse t'aider, il faudrait que tu nous montre une partie du modèle de données de ta base, genre, comment est géré le stock :
- c'est un simple champ numérique (un entier de 0 à n) dans la table contenant tes produits
- ou c'est dans une autre table qui gère le nombre d'items qu'il y a en stock pour chaque produit?
 
Si c'est le premier cas de figure, c'est simple :
$sql = 'SELECT nom_pdt, prix, description FROM produits WHERE categ = "La Cuisine" AND Stock > 0';
 
Dans le 2ième cas, une jointure interne suffit :  
$sql = 'SELECT p.nom_pdt, p.prix, p.description FROM produits p, stock s WHERE p.categ = "La Cuisine" AND p.ProduitID = s.ProduitID';
 
edit : j'avais pas vu que tu disais avoir un champ stock : c'est donc le 1er cas de figure que tu dois appliquer...


Message édité par rufo le 28-12-2006 à 16:07:12
Reply

Marsh Posté le 28-12-2006 à 16:06:16    

lol merci pour l'indice
je suppose que ca doit donner qqchose de ce genre alors:
$sql = 'SELECT nom_pdt, prix, description FROM produits WHERE categ = "La Cuisine" WHERE stock > 0';
 
???

Reply

Marsh Posté le 28-12-2006 à 16:07:27    

milie000 a écrit :

lol merci pour l'indice
je suppose que ca doit donner qqchose de ce genre alors:
$sql = 'SELECT nom_pdt, prix, description FROM produits WHERE categ = "La Cuisine" WHERE stock > 0';
 
???


 
non : $sql = 'SELECT nom_pdt, prix, description FROM produits WHERE categ = "La Cuisine" AND Stock > 0';

Reply

Marsh Posté le 28-12-2006 à 16:08:10    

okc'est un simple champ numérique (un entier de 0 à n) dans la table contenant les produits  
super merci ca marche avec AND !!!
 

Reply

Marsh Posté le 28-12-2006 à 16:09:57    

Si je puis me permettre, aller jeter un coup d'oeil sur un cours de SQL ne te ferait pas de mal...


Message édité par rufo le 28-12-2006 à 16:10:10
Reply

Marsh Posté le 28-12-2006 à 16:11:07    

lol oui merci j'en ai fait plusieurs mais j'ai du mal à trouver les réponses à mes nombreuses questions!

Reply

Marsh Posté le 28-12-2006 à 16:15:46    

Reply

Marsh Posté le 28-12-2006 à 16:21:00    

merci je v etudier ca !
par hasard t'en aurai pas un qui explique comment mettre en page le résultat d'une requete sql notmamment en lui appliquant un css??

Reply

Marsh Posté le 28-12-2006 à 16:21:00   

Reply

Marsh Posté le 28-12-2006 à 16:28:24    

ben tuto php+mysql, c'est pas ça qui manque.

Reply

Marsh Posté le 29-12-2006 à 14:18:36    

milie000 a écrit :

merci je v etudier ca !
par hasard t'en aurai pas un qui explique comment mettre en page le résultat d'une requete sql notmamment en lui appliquant un css??


 
En fait une fois que tu auras extrait les données (dans un tableau en général) tu peux en faire ce que tu en veux, il n'y a pas de distinction quant à l'origine de tes données (variable simple ou valeur d'un tableau issu d'une requete SQL) quand tu vas les nettre en page. Si tu veux les afficher dans un tableau tout bête, par exemple, çà va donner :  
 
 
  $sql = "TA REQUETE";
   
  $result = mysql_query($sql);
     
  echo "<table border='2' cellpadding='2' cellspacing='2'>";  //envoi du code HTML pour commencer ton tableau
   
  while ($row = mysql_fetch_array($result, MYSQL_NUM))  //Tant qu'il arrive à extraire une nouvelle ligne de résultats...
  {
        echo "<tr>"; //envoi du code HTML du code html pour debuter une ligne du tableau
         
        echo "<td width='100'>".$row[0]."</td>";   // Affichage des données dans la "case" du dableau
        // en fait tu peux afficher ou alors tes colonnes une par une ([0],[1], etc..)ou toutes avec un for(){} par exemple.
         
        echo "</tr>";  //envoi du code HTML du code html pour finir une ligne du tableau
  }
  echo "</table>";   //envoi du code HTML pour finir ton tableau
 
 
En fait il faut voir que tout ce que va faire PHP c'est générer du code HTML (ou autres) dans ta page.
Donc vois dans un premier temps comment tu ferais pour le faire toi meme en HTML avec des donées statiques, puis le reste viendra tout seul, après ce n'est que de la logique et quelques fonctions à connaitre....

Reply

Marsh Posté le 29-12-2006 à 14:32:22    

Perso, je pense qu'il vaut mieux utiliser MYSQL_ASSOC plutôt que MYSQL_NUM, car c'est plus lisible d'avoir $row['MonChamp'] plutôt que $row[0]. En plus, si tu change l'ordre des champs dans le SELECT, tu tapes plus dans le bon champ :/
 
et plutôt qu'un for, mieux vaut utiliser foreach()


Message édité par rufo le 29-12-2006 à 14:32:57
Reply

Marsh Posté le 29-12-2006 à 14:45:36    

En fait, j'ai crée mon tableau pas ds ma requete php et j'ai place ma requete dans une partie du tableau mais je voudrai ajouter une requete pour afficher des images dans une autre colonne du tableau est ce que je crée une deuxième requete dans la colonne ou est ce que je me suis gourée et il vaut mieux créer le tableau dans la requete pour que le simages puissent etre a cote de leur description?

Reply

Marsh Posté le 29-12-2006 à 14:45:44    

J'utilise les MYSQL_NUM pour pouvoir faire du for() avec une variable que j'incrémente, mais c'est vrai que c'est plus facile et souple à utiliser avec un nom de champ et un foreach.

Reply

Marsh Posté le 29-12-2006 à 14:48:35    

milie000 a écrit :

En fait, j'ai crée mon tableau pas ds ma requete php et j'ai place ma requete dans une partie du tableau mais je voudrai ajouter une requete pour afficher des images dans une autre colonne du tableau est ce que je crée une deuxième requete dans la colonne ou est ce que je me suis gourée et il vaut mieux créer le tableau dans la requete pour que le simages puissent etre a cote de leur description?


 
Euh j'ai pas tout compris mais il vaut mieux récupérer ton image (ou plutot son chemin d'accès) en même temps que les autre donées qui correspondent à ton produit, c'est beacoup plus simple.

Reply

Marsh Posté le 29-12-2006 à 14:50:40    

ok mais alors je fais comment pour que l'image aille ds la colonne de gauche et le reste ds celle de droite ?
En fait je cherche  à obtenir la meme mise en page que http://www.ctendance.fr/cuisine.htm

Reply

Marsh Posté le 29-12-2006 à 15:00:14    

ben tu mets le $row[x] contenant l'url de l'image dans un <td><img src="$row[x]" /></td> et le reste des autres $row dans un autre <td>..</td>.
Y'a rien de compliqué. Le PHP, c'est générer dynamiquement du html. Donc, si t'as du mal, tu fais d'abord une maquette en html statique avec qq données (images et produits) et une fois que ta maquette est ok (le code html), tu rajoutes le code php qui va bien pour avoir le même résultat et les données qui proviennent cette fois d'une BD...

Reply

Marsh Posté le 29-12-2006 à 15:04:28    

au fait, je reviens sur cette phrase anodine

Citation :

"Je suis en train de passer ma boutique en ligne sous php"

Ta boutique, elle était sous quoi avant de la faire passer sous php?
 
Parce que visiblement, tu as un bagage technique bien mince pour faire une boutique en ligne toi même. Si ta boutique est mise en production, j'ai peur que tu te fasse hacker facilement à cause de trous de sécurité classiques...:/


Message édité par rufo le 29-12-2006 à 15:04:52
Reply

Marsh Posté le 29-12-2006 à 15:04:54    

milie000 a écrit :

ok mais alors je fais comment pour que l'image aille ds la colonne de gauche et le reste ds celle de droite ?
En fait je cherche  à obtenir la meme mise en page que http://www.ctendance.fr/cuisine.htm


 
Tu fais comme tu veux : imagine que ta requete soit :  
SELECT nom, prix, image FROM article WHERE sketuveux
 
Apres ton mysql_fetch_array(* ,MYSQL_ASSOC) effectué, tu aura un tableau ($row['nomduchamp'] dans mon exemple en bas) pour chaque ligne. après c'est à toi de choisir si tu vas afficher :  
 
[...] "<td>".$row['nom']."</td><td><img src='".$row['image']."'></td>" [...]  
 
ou
 
[...] "<td><img src='".$row['image']."'></td><td>".$row['nom']."</td>" [...]


Message édité par YaHa le 29-12-2006 à 15:07:27
Reply

Marsh Posté le 29-12-2006 à 15:06:10    

c moi qui l'ai faite mais elle est uniquement en html pour le moment

Reply

Marsh Posté le 29-12-2006 à 15:17:52    

Au risque de passer pour un rabat-joie, je pense que tu devrais d'abord apprendre à maîtriser le xhtml et le css afin d'avoir un code plus "propre" (+ un peu de Javascript pour augmenter l'intéractivité).
Ensuite, tu te mets à PHP : session, récupération de données provenant de formulaires et apprendre à sécuriser ce qui a été saisi, les redirections...
Puis, tu apprends les bases de la modélisation d'un BD et le SQL.
Enfin, tu mixes PHP, Mysql, HTML, Javascript et CSS.
 
qq bons sites :  
www.commentcamarche.net
http://css.alsacreations.com/
http://fr.php.net/manual/fr/ref.array.php
http://www.fredcavazza.net/doc/tut [...] tape12.htm

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed