IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de donn�es Discussion :

Questions include + sql


Sujet :

PHP & Base de donn�es

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    101
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 101
    Par d�faut Questions include + sql
    Bonsoir, 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 ).
    Si j'ai bien compris, le lien correspondant doit �tre comme �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <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).

    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 : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    mysql_connect("localhost", "login", "mot_de_passe");
    mysql_select_db("semaphore");
     
    $reponse = mysql_query("SELECT * FROM article WHERE marque='penduick' and gamme='homme'");
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>
    <div>Ici il y a une div pour chaque article en gros, avec les photos, description, etc. correspondantes</div>
    <?php
    }
    mysql_close();
    ?>
    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

  2. #2
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2005
    Messages
    1 203
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 1 203
    Par d�faut
    tu as raison !!! il faut cr�er une page article dans laquelle tu r�cup�res les superglobales afin d'en construire le contenu. Dans le cas contraire (une page pour chaque rubrique/sous-rubrique tu seras vitre confront� � la probl�matique "millier de page"

    donc tu fais une page article, dans laquelle tu construit une requ�te dynamiquement, donc tu as tout bon dans ta reflexion...

    un exemple :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php
     
    // une valeur par défaut pour la requete
    $marque = (!isset($_GET['marque']))?('penduick'):($_GET['marque']);
    $gamme = (!isset($_GET['gamme']))?('homme'):($_GET['gamme']);
     
    // connexion (avec gestion des erreurs :) )
    $link = @mysql_connect("localhost", "login", "mot_de_passe") or die ("impossible de se connecter à la base de données");
    @mysql_select_db("semaphore") or die ("Impossible de sélectionner la base de données"); 
     
    // pour proteger 
    $marque = mysql_real_escape_string($marque, $link);
    $gamme = mysql_real_escape_string($gamme, $link);
     
    // requete dynamique
    $sql = "SELECT * FROM `article` WHERE `marque` LIKE '$marque' and `gamme` LIKE '$gamme'";
    $res = mysql_query($sql, $link) or die (mysql_error());
     
    while ($donnees = mysql_fetch_array($res)) {
      // ta div
    }
    ?>
    j'esp�re que cela r�pond � ta question...

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    101
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 101
    Par d�faut
    Citation Envoy� par ska_root
    il faut cr�er une page article dans laquelle tu r�cup�res les superglobales
    Une autres question au passage, c'est quoi une variable "superglobale" ? C'est en rapport avec les sessions ?

  4. #4
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par d�faut
    Salut, tu peux faire un tour ici : http://fr.php.net/manual/fr/language...bles.scope.php

    Bon d�veloppement

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    101
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 101
    Par d�faut
    Autre question sur ce bout de code :

    Citation Envoy� par ska_root
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    // une valeur par défaut pour la requete
    $marque = (!isset($_GET['marque']))?('penduick'):($_GET['marque']);
    $gamme = (!isset($_GET['gamme']))?('homme'):($_GET['gamme']);
    Ca correspond � quoi exactement "par d�faut" ?
    C'est pas valeur r�cup�r�e suivant le lien sur lequel on a cliqu� ?

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    101
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 101
    Par d�faut
    Encore une question l� dessus :

    Citation Envoy� par ska_root
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    while ($donnees = mysql_fetch_array($res)) {
      // ta div
    }
    Je voudrais pouvoir mettre 2 articles sur chaque "lignes". En fait l� �a me met bien ce que je veux dans la div mais quand �a passe � un autre article dans la base, �a met remet une div en dessous, alors que je la voudrais � c�t� de la pr�c�dente.
    En gros, 1er et 2� article de la base sur la m�me "ligne", 3� et 4� sur une ligne suivante, etc...

  7. #7
    Membre exp�riment�
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    // une valeur par défaut pour la requete
    $marque = (!isset($_GET['marque']))?('penduick'):($_GET['marque']);
    $gamme = (!isset($_GET['gamme']))?('homme'):($_GET['gamme']);
    Il s'agit de la forme condens�e d'un if else.

    Seulement j'ai un doute sur la signification parce que je ne m'en sers jamais.

    **Edit**

    d'ailleurs je ne trouve pas sur le site PHP - oo� puis je trouver cette information ?

  8. #8
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    101
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 101
    Par d�faut
    Citation Envoy� par IgotaBreizh
    Encore une question l� dessus :

    Citation Envoy� par ska_root
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    while ($donnees = mysql_fetch_array($res)) {
      // ta div
    }
    Je voudrais pouvoir mettre 2 articles sur chaque "lignes". En fait l� �a me met bien ce que je veux dans la div mais quand �a passe � un autre article dans la base, �a met remet une div en dessous, alors que je la voudrais � c�t� de la pr�c�dente.
    En gros, 1er et 2� article de la base sur la m�me "ligne", 3� et 4� sur une ligne suivante, etc...
    Et pour mon probl�me ?

  9. #9
    Membre �m�rite Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Par d�faut
    je sais pas trop comment ca se goup avec tes balises div... je ne suis pas encore expert en la matiere ... mais avec un tableau, tu peux faire ainsi :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    echo "<table>";
    $nvelle_ligne=true;
    while ($donnees = mysql_fetch_array($res)) {
      if ($nvelle_ligne){echo "<tr>";}
      echo "<td>";
      //affichage de ton article
      echo "</td>";
      $nvelle_ligne=!$nvelle_ligne;
      if ($nvelle_ligne){echo "</tr>";}
    }
    echo "</table>";
    Voila, c'est un simple probleme d'algorithmique pour afficher deux enregistrement sur une m�me ligne. Si pour les div, il s'agit d'indiquer des position ... ca doit etre faisable dans une m�me optique en jouant sur les valeurs des coordonn�es de x et y.

  10. #10
    R�dacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    F�vrier 2004
    Messages
    13 721
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activit� : Directeur technique

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 13 721
    Par d�faut
    Salut

    L'histoire du "par d�faut" est de r�cup�rer la variable de l'URL si elle existe. Si elle n'existe pas, tu lui donnes une valeur pr�d�finie (= par d�faut), histoire de toujours avoir quelque chose. Perso, je l'aurais fait avec empty() plut�t que !isset().
    Les variables de l'URL sont visibles (donc modifiables) par l'utilisateur : il ne faut jamais faire confiance aux variables de l'utilisateur, donc il faut toujours les v�rifier.

    Je l'aurais �crit ainsi (en supposant que tu passes des identifiants num�riques, sinon il faut utiliser addslashes() � la place de intval()) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    // une valeur par défaut pour la requete
    $marque = empty($_GET['marque']) ? 'id_de_penduick' : intval($_GET['marque']);
    $gamme = empty($_GET['gamme']) ? 'id_de_homme' : intval($_GET['gamme']);
    Concernant ton autre probl�me, tu peux faire ainsi (� �toffer) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    $i = 0;
    while ($donnees = mysql_fetch_array($res)) {
      if($i%2 == 0){
        echo '</div><div>'; // change de div
      }
      // le contenu de ton div
      ++$i;
    }

  11. #11
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    101
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 101
    Par d�faut
    Avec le </div>, �a va automatiquement me le mettre � la ligne nan ?

    Moi je voudrais que �a me mette le 2� article � c�t� du 1er, le 3� en dessous du 1er, le 4� en dessous du 2�, etc....

  12. #12
    R�dacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    F�vrier 2004
    Messages
    13 721
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activit� : Directeur technique

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 13 721
    Par d�faut
    Salut

    Je suis parti de ton code du d�part, qui dit en commentaire que tu as un div par lign/article. Puisque tu veux deux articles par ligne, je t'ai propos� une m�thode qui met deux articles dans le m�me div.
    � toi d'affiner.

Discussions similaires

  1. [SQL] 2 questions PHP/SQL
    Par Misoss dans le forum PHP & Base de donn�es
    R�ponses: 18
    Dernier message: 22/06/2006, 16h29
  2. question su sql server 2005 express edition
    Par nass06 dans le forum MS SQL Server
    R�ponses: 3
    Dernier message: 25/04/2006, 20h15
  3. Question sur sql et ASP
    Par claralavraie dans le forum ASP
    R�ponses: 5
    Dernier message: 23/12/2005, 11h41
  4. Quelques questions sur SQL Server 2000
    Par yinyang dans le forum MS SQL Server
    R�ponses: 4
    Dernier message: 07/12/2005, 19h39
  5. BTS Info de Gestion pass� aujourd'hui question pour SQL
    Par red210 dans le forum D�cisions SGBD
    R�ponses: 11
    Dernier message: 29/05/2005, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo