Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1217 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Quelques questions php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Quelques questions php

n°1289555
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 22-01-2006 à 17:48:45  profilanswer
 

Je suis en train de m'entrainer à faire du php sur un site web de commerce en ligne (enfin il sera jamais en ligne le site  :p ). Mon site présente plusieurs articles marins, dont les données correspondantes sont conservé dans une base msql. Vous pouvez voir ici à peu près c'que ça peut donner : http://membres.lycos.fr/lpce04/ (pour l'instant y'a que le site en exemple. La base est en local).
 
En gros la page est basée sur des pseudos frames (include). Quand on clique sur le menu à gauche (menu.php), ça dois afficher les articles correspondant dans la page centrale. Par exemple, ce que je souhaite, c'est que quand on clique sur "homme" dans "penduick", ça m'affiche dans le cadre central tous les produits homme de la marque penduick (logique  :D ).
Si j'ai bien compris, le lien correspondant doit être comme ça :  

Code :
  1. <a href="index.php?marque=penduick&gamme=homme">Homme</a>


Ce qui va permette de recharger la page index avec toutes les includes, et de mettre dans la page centrale la page correspondant à penduick/homme. Mais c'est là que j'ai une question, j'ai lu quelquepart qu'il fallait créer cette page centrale (dans mon cas "penduick_homme.php" ) qui récupérerait les valeurs dans l'url (avec get...). Il y aurais donc autant de pages que de rubriques dans le menu. Est-ce que c'est exact ?
 
Moi j'aurais pensé qu'il fallait créer une page "article.php" et dans cette page, commune à toutes les rubriques en fait, on fesait appel aux variables qu'on souhaite.
 
Est-ce que quelqu'un peut m'éclairer ? (si j'ai été à peu près compréhensible dans c'que j'voulais demander  :pt1cable: ).
 
 
 
 
 
Sinon tant qu'à faire je continue ici au lieu de créer un autre topic :
 
Je me connecte donc à ma base de données dans l'include central. Et à l'aide des "variables" (suis pas sûr que ça soit le mot exact) je peux sélectionner ce que je veux dans ma base avec le "query".
 
Exemple :
 

Code :
  1. <?php
  2. mysql_connect("localhost", "login", "mot_de_passe" );
  3. mysql_select_db("semaphore" );
  4. $reponse = mysql_query("SELECT * FROM article WHERE marque='penduick' and gamme='homme'" );
  5. while ($donnees = mysql_fetch_array($reponse) )
  6. {
  7. ?>
  8. <div>Ici il y a une div pour chaque article en gros, avec les photos, description, etc. correspondantes</div>
  9. <?php
  10. }
  11. mysql_close();
  12. ?>


 
Est-ce que c'est la bonne méthode pour afficher les articles correspondant à ce sur quoi on a cliqué dans le menu de gauche ?
Dans le query, si je veux récupérer la condition j'imagine qu'il ne faut pas utiliser directement marque='penduick' mais marque=$get['marque'] ?
 
Voilà, d'avance je remercie ceux qui pourront m'éclairer  :jap:


Message édité par WhiskyWalker le 22-01-2006 à 17:50:26
mood
Publicité
Posté le 22-01-2006 à 17:48:45  profilanswer
 

n°1289650
Mara's dad
Yes I can !
Posté le 22-01-2006 à 20:13:03  profilanswer
 

Pour "marque=penduick&gamme=homme", dans index.php :
 
$_GET['marque'] contient 'penduick'
idem pour 'gamme'.
 
Quand tu fais tes include, $_GET leur est accessible. Donc dans article.php, tu as les infos dont tu as besoin.
 
Pour le reste, c'est bon :
mysql_query("SELECT * FROM article WHERE marque='".$_GET['marque']."' and gamme='".$_GET['homme']."'" );
 
Mais c'est juste un exemple. Avant de faire ça, il faut s'assurer que $_GET['marque'] existe et qu'il contienne bien une marque et pas un bout de SQL maliceux. (Voir SQL injection) http://www.linux-pour-lesnuls.com/injection.php
 


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°1289690
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 22-01-2006 à 20:56:19  profilanswer
 

Merci bien pour tes remarques et ton lien. J'vais regarder ça  :jap:

n°1290639
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 24-01-2006 à 02:18:24  profilanswer
 

Bon j'ai essayé de programmer ça mais il apparement il y a des erreurs  :pt1cable: :
 

Code :
  1. <link href="style_form.css" rel="stylesheet" type="text/css">
  2. <?php
  3. // une valeur par défaut pour la requête
  4. //$marque = (!isset($_GET['marque']))?('penduick'):($_GET['marque']);
  5. //$gamme = (!isset($_GET['gamme']))?('homme'):($_GET['gamme']);
  6. // connexion (avec gestion des erreurs )
  7. mysql_connect("localhost", "root", "" ) or die ("Impossible de se connecter à MySQL" ); //Connexion à MySQL
  8. mysql_select_db("semaphore" ) or die ("Impossible de sélectionner la base de données" ); //Sélection de la base semaphore
  9. // On crée la requête SQL
  10. $sql = 'SELECT * FROM produit WHERE marque='".$GET['marque']."'';
  11. //On envoie la requête
  12. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  13. while ($data = mysql_fetch_array($req))
  14. {
  15. // On affiche les informations de l'enregistrement en cours
  16. ?>
  17. <table><tr><td><b>ID :</b> <?php echo $data['id']; ?>, <b>Marque :</b> <?php echo $data['marque']; ?><td><tr></table>
  18. <?php
  19. }
  20. mysql_close(); //On se déconnecte de MySQL
  21. ?>


 
Ca me met "Parse error" à la ligne 14. J'imagine que dans le Where du Select, ça doit pas être comme ça qu'on récupère la variable de l'url...  :heink:
 
Sinon par rapport à la requête SQL, j'ai vu pleins d'exemple mais des fois c'est mis

Code :
  1. $sql = 'SELECT

, des fois

Code :
  1. $sql = "SELECT

. C'est quoi la différence ?


Message édité par WhiskyWalker le 24-01-2006 à 02:19:36
n°1290640
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 24-01-2006 à 02:23:55  profilanswer
 

Edit : autant pour moi, j'avais une ch'tit erreur en créant ma base [:aiua]


Message édité par WhiskyWalker le 24-01-2006 à 02:26:28
n°1290677
Mara's dad
Yes I can !
Posté le 24-01-2006 à 09:44:07  profilanswer
 

$_GET['marque'] et non $GET['marque'] !

n°1290678
Mara's dad
Yes I can !
Posté le 24-01-2006 à 09:47:06  profilanswer
 

$sql = "SELECT * FROM produit WHERE marque='".$GET['marque']."'";
 
ou
 
$sql = 'SELECT * FROM produit WHERE marque=\''.$GET['marque'].'\'';
 
ou encore
 
$sql = "SELECT * FROM produit WHERE marque='{$GET['marque']}'";
 


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°1291188
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 24-01-2006 à 17:16:31  profilanswer
 

Ben dans ton 2è message, tu met jamais le "_"  :??:

n°1291458
Mara's dad
Yes I can !
Posté le 24-01-2006 à 21:57:04  profilanswer
 

Parce qu'il m'arrive d'être un peu con, et de faire du bête copier/coller comme tout le monde !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°1291588
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 25-01-2006 à 01:31:31  profilanswer
 

Une autre question dans ce bout de code :
 

Code :
  1. while ($donnees = mysql_fetch_array($res)) {
  2.   // ma div
  3. }


 
Je voudrais avoir 2 articles sur chaque ligne, or là pour l'instant ça me met à la ligne à chaque fois. En gros, je voudrais le 1er et 2è article de la base sur la 1ère "ligne", le 3è et 4è sur la 2ème, etc...
 
C'est possible ?

mood
Publicité
Posté le 25-01-2006 à 01:31:31  profilanswer
 

n°1292055
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 25-01-2006 à 16:32:37  profilanswer
 

up :(

n°1292407
Mara's dad
Yes I can !
Posté le 26-01-2006 à 09:20:55  profilanswer
 

Oui, c'est possible.
 
Le mot de passe est ... MODULO ...
 
Edit : Merde, je me suis trompé de cas...
Dans le tiens, il suffit de lire un autre enregistrement dans ta boucle.


Message édité par Mara's dad le 26-01-2006 à 09:22:58

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°1292498
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 26-01-2006 à 11:19:47  profilanswer
 

Oui mais comment on fais concrètement ?

n°1292524
ritzle
Posté le 26-01-2006 à 11:55:37  profilanswer
 


Code :
  1. while ($donnees = mysql_fetch_array($res)) {
  2.     // truc
  3.    if( $donnees = mysql_fetch_array($res) )
  4.    {
  5.       //truc2
  6.    }
  7. }


n°1294700
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 30-01-2006 à 13:52:12  profilanswer
 

Ca marche pas  :(  Ca me les met quand même l'un en dessous de l'autre

n°1294706
anapajari
s/travail/glanding on hfr/gs;
Posté le 30-01-2006 à 13:57:14  profilanswer
 

a mon avis ça vient plus du HTML que tu génères que de ton php...
Si le résultat ressemble à ça:

Code :
  1. <div>Ligne 1</div>
  2. <div>Ligne 2</div>
  3. <div>Ligne 3</div>


C'est normal le retour à la ligne...  

n°1294801
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 30-01-2006 à 14:48:33  profilanswer
 

Et comment éviter ce retour à la ligne justement  :??:

n°1294809
anapajari
s/travail/glanding on hfr/gs;
Posté le 30-01-2006 à 14:51:13  profilanswer
 

Apprendre l'HTML et les CSS avant de se prendre pour une 3l33t en php...

n°1295135
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 30-01-2006 à 20:32:43  profilanswer
 

Excusez-moi ô grand anapajari de ne pas avoir toutes votre immense connaissance  :jap:

n°1295139
Mara's dad
Yes I can !
Posté le 30-01-2006 à 20:42:41  profilanswer
 

Désolé, mais Anapajari a raison sur le fond, même si la forme est discutable !
 
Avant de se lancer dans un dev en php, il est bon d'avoir une maquette HTML de ce qu'on veux faire.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°1295248
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 30-01-2006 à 23:58:40  profilanswer
 

La maquette est faite. C'est juste un problème de synthaxe j'imagine et comme je débute en php ben j'ai pas forcément toutes mes réponses. Vous quand vous avez commencé, vous avez pas tous imprimer dans votre cerveau directement j'imagine, comme tout autre chose y'a eu une période d'apprentissage. C'est facile quand on connait un truc de dénigrer les "newbies" comme certains savent si bien le dire  :o , mais n'oubliez pas que vous êtes passé par ce stade là un jour vous aussi

n°1295253
Mara's dad
Yes I can !
Posté le 31-01-2006 à 00:07:34  profilanswer
 

Fais voir la partie de ta maquette qui pose problème.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°1295294
anapajari
s/travail/glanding on hfr/gs;
Posté le 31-01-2006 à 09:10:43  profilanswer
 

WhiskyWalker a écrit :

C'est juste un problème de synthaxe j'imagine et comme je débute en php ben j'ai pas forcément toutes mes réponses.


Non pas de problème de syntaxe, ton problème n'a vraiment rien a voir avec le php. C'est un problème de choix de balise html
 

Citation :

Vous quand vous avez commencé, vous avez pas tous imprimer dans votre cerveau directement j'imagine, comme tout autre chose y'a eu une période d'apprentissage.


C'est vrai mais dans l'ordre j'ai appris l'html, le js, les css et enfin les languages cotés serveur.
 

Citation :

C'est facile quand on connait un truc de dénigrer les "newbies" comme certains savent si bien le dire  :o , mais n'oubliez pas que vous êtes passé par ce stade là un jour vous aussi


C'est aussi facile de prendre tout mal dès qu'on dit qu'un truc est mal fait ou que c'est pas comme ça qu'il faut faire.
 
Et la je suis désolé mais pas savoir qu'un DIV(non stylé) entraine un retour à la ligne ...


Message édité par anapajari le 31-01-2006 à 09:12:51
n°1295416
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 31-01-2006 à 12:00:24  profilanswer
 

Bon autant pour moi alors, me suis un ch'tit peu emporté, sorry  :jap:  
 
Pour en revenir au sujet, j'ai essayé également avec des table mais ça revient aussi à la ligne (là je sais pourquoi). J'vous met le code en début d'aprem, ça sera plus simple.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Quelques questions php

 

Sujets relatifs
HTML - Newbie - 2 questions techniques[PHP] Quelques questions !
Cast dans un #define : questions2 questions sur les CSS
[Caml] Quelques questionsdeux questions... chargement XML et faire apparaitre les elements
[VBS] Questions à 2 balles (0.30€) pour ultra-débutants[SQL] Questions basiques sur SQL
Questions : Classpath et Jar executable2 questions sur frontpage d'un ultra débutant
Plus de sujets relatifs à : Quelques questions php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR