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 :

Catalogue dynamique php/mysql [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 45
    Par défaut Catalogue dynamique php/mysql
    Bonjour,

    je suis de nouveau devant une impasse..

    Je cherche à faire un catalogue dynamique en liaison avec ma table produit, de manière à ce que si j'ajoute un produit le tableau se mette à jour.

    Je pensais que ca allait être assez simple mais je sèche.

    A la base le catalogue était en html très basique avec <table> etc, on le regardait et basta.

    Ma table produit est comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    +----------------+
    | produit        |
    +----------------+
    | nump        PK |
    | nomp           |
    | pvp            |
    | pap            |
    | qtestockp      |
    | qteminp        |
    | qtemaxp        |
    | image          |
    | id_catcdep  FK |
    +----------------+
    Voici un enregistrement type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    nump=ch01
    nomp=Chaussures noires
    pvp=80.00
    pap=50.00
    qtestockp=50
    qteminp=5
    qtemaxp=100
    image=<img src="images/homme/chaussure.jpg">
    id_catcde=1
    Sans l'image ca marche nickel, enfin ca me fait mon tableau quoi.
    J'ai pensé qu'en mettant l'url ca serait bon mais non apparemment puisque j'ai un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in /mnt/104/sda/5/a/fringuescorot/homme.php on line 81
     
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/104/sda/5/a/fringuescorot/homme.php on line 87

    Je suis un gros débutant comme vous devez vous en douter.

    J'ai fait mon script comme ceci:

    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   // la requête
            $requete="SELECT image AS 'Image',nump AS 'Référence',nomp AS 'Libellé',qtestockp AS 'Quantité en stock',pvp AS 'Prix en euros' FROM produit WHERE produit.id_catcdep=1;";
            $resultat= mysql_query($requete);
     
       // l'en tête des colonnes du tableau
           echo "<center>";
            echo '<p /><table id="table" border="1">';
            echo "<tr>";
            for( $i=0; $i < mysql_num_fields($resultat); $i++)
                  echo "<th>".mysql_field_name($resultat, $i)."</th>";
            echo "</tr>";
    	echo "</center>";
     
       //  le parcours des lignes et des champs
            while($ligne=mysql_fetch_array($resultat))
            {    echo "<tr>";
                 for($i=0;$i< mysql_num_fields($resultat); $i++)
                     echo "<td>$ligne[$i]</td>";
                 echo "</tr>";
            }
       // fin du tableau
            echo "</table><p />";
    ?>
    Voilà.. je dois faire ca pour le bac et les oraux approchent donc je sollicite votre aide en espérant la trouver!

    Cdlt

  2. #2
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    Je vais te suggérer une petite optimisation qui vaut ce qu'elle vaut et qui à mon avis devrait résoudre ton problème au passage.

    T'as une seule image par produit et chaque produit à une clé unique. Pourquoi se fatiguer à stocker l'url du produit?

    Je te propose de virer tout simplement le champ url de ta base et dans ton tableau de faire tout simplement:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="images/homme/<?php echo $nump; ?>.jpg">

    N'oublie juste pas de renommer les fichiers image avec l'id des produits correspondant.

    Un champ de moins dans la base, une chaine de caractères en moins à transmettre à chaque échange avec la base de données et une uniformisation des noms de fichiers. Je pense que ça sera bien vu par un jury si suggéré ainsi

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 45
    Par défaut
    Oui, et j'ai juste à renomer les images en fonction des nom de produit?

    Je vais essayer ca tout de suite.

    Merci

  4. #4
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 45
    Par défaut
    Hum..
    Ta logique me paraissait évidente en la lisant même si je n'étais pas capable de la trouver moi même mais je ne parvient pas à l'utiliser..

    le code actuel est:
    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
    24
    <?php   // la requête
            $requete="SELECT nump AS 'Référence',nomp AS 'Libellé',qtestockp AS 'Quantité en stock',pvp AS 'Prix en euros' FROM produit WHERE produit.id_catcdep=1;";
            $resultat= mysql_query($requete);
     
    		// l'en tête des colonnes du tableau
           echo "<center>";
            echo '<p /><table id="table" border="1">';
            echo "<tr><td>Image</td>";
            for( $i=0; $i < mysql_num_fields($resultat); $i++)
                  echo "<th>".mysql_field_name($resultat, $i)."</th>";
            echo "</tr>";
    	echo "</center>";
     
       //  le parcours des lignes et des champs
            while($ligne=mysql_fetch_array($resultat))
            {    echo "<tr>";
    			echo '<td><img src="images/homme/<?php echo $nump; ?>.jpg"></td>';
                 for($i=0;$i< mysql_num_fields($resultat); $i++)
                     echo "<td>$ligne[$i]</td>";
                 echo "</tr>";
            }
       // fin du tableau
            echo "</table><p />";
    ?>
    J'ai bien sur renommé mes images..

    J'ai la nouvelle colonne avec l'en-tête mais les cases sont vides et après les données du tableaux sont bien remplies.

    Je continue à chercher..

    Je rappelle que je suis un gros débutant, c'est ma 1année que je touche à ca, j'aime bien me creuser la tête mais j'aime surtout que ca fonctionne donc patapay svp

    Merci en tout cas

    J'y retourne en attendant la réponse qui va m'ouvrir les yeux devant un bug basique sans doute..

    Merci

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 45
    Par défaut
    Bon bin je crois que mon problème c'est la définition de la variable $nump

    Comment faire pour quelle corresponde au numero produit de la ligne?

    Faut il utiliser une boucle?

  6. #6
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Code php : 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
    24
    25
     
    <?php   // la requête
            $requete="SELECT nump AS 'Référence',nomp AS 'Libellé',qtestockp AS 'Quantité en stock',pvp AS 'Prix en euros' FROM produit WHERE produit.id_catcdep=1;";
            $resultat= mysql_query($requete);
     
    		// l'en tête des colonnes du tableau
           echo "<center>";
            echo '<p /><table id="table" border="1">';
            echo "<tr><td>Image</td>";
            for( $i=0; $i < mysql_num_fields($resultat); $i++)
                  echo "<th>".mysql_field_name($resultat, $i)."</th>";
            echo "</tr>";
    	echo "</center>";
     
       //  le parcours des lignes et des champs
            while($ligne=mysql_fetch_array($resultat))
            {    echo "<tr>";
    			echo '<td><img src="images/homme/<?php echo $ligne["image"]; ?>.jpg"></td>';
                 for($i=0;$i< mysql_num_fields($resultat); $i++)
                     echo "<td>$ligne[$i]</td>";
                 echo "</tr>";
            }
       // fin du tableau
            echo "</table><p />";
    ?>

    Explications :

    Tu utilise un mysql_fetch_array(), il faut donc utiliser les noms des champs ! (c'est plus simple )

    vu que $ligne = mysql_fetch_array(), pour récupérer le nom de ton image il faut écrire :

    $ligne["image"] (vu que ton champ s'appelle "image")

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] problème remplissage liste dynamique php mysql
    Par jeinny dans le forum PHP & Base de données
    Réponses: 28
    Dernier message: 25/05/2009, 17h32
  2. [DOM] menu dynamique php mysql javascript
    Par maxland dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/03/2009, 14h02
  3. Menu dynamique PHP/MySQL
    Par okoweb dans le forum Langage
    Réponses: 12
    Dernier message: 07/03/2009, 08h46
  4. [MySQL] Menu dynamique PHP / MySQL CSS
    Par mouchagheb dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/06/2008, 11h33
  5. Réponses: 10
    Dernier message: 22/03/2007, 08h36

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