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 :

Projet fin d'année


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 33
    Points : 22
    Points
    22
    Par défaut Projet fin d'année
    Bonjour,

    Je suis en bts informatique et en plein projet de fin d'année.
    Il me reste peu de temps et je n'ai pas du tout fini.

    Pour faire simple, mon projet est de faire une sorte de site de e-commerce.
    Je dois donc faire un panier afin que des clients puissent passer une commande.
    Les commandes doivent ensuite être envoyé sur ma base de donnée.

    La partie payement n'est pas abordé ici.

    Pour le moment seul le système de connexion utilisateur est faite.

    J'essaye de lister correctement mes produit provenant de ma base sur une page "produit.php" mais je ne parvient pas à le faire correctement.
    Je récupère sans problème mes produit avec le nom, la quantité et le prix mais je n'arrive pas à mettre en forme.
    Faut il que je fasse un tableau ? Ou comment faire pour faire des colonnes "nom" "prix" "quantite" ?



    Merci

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?php session_start(); ?>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
    		<link rel="stylesheet" href="style.css" />
            <title>Grossiste</title>
        </head>
        <body>
            <header>
                <h1>Grossiste</h1>
    			<h2>En pharmacie</h2>
            </header>
            <nav>
                <ul>
                    <li><a href="index.php">Accueil</a></li>
                    <li><a href="#">Mon compte</a></li>
    		<li><a href="deconnexion.php">Se deconnecter</a></li>
                </ul>
            </nav>
            <div class="bordure">
    </div>
            <section>
                <article>   
    			</article>
            <div>
            </div>
    		<?php
    			try {
                    $bdd = new PDO('mysql:host=localhost;dbname=base;charset=utf8', 'root', '',  array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                }
                catch (Exception $e)
                {       
                    die('erreur :'.$e->getMessage());
                }
    			$reponse = $bdd->query('SELECT * FROM produit');			
    {
    	 while ($donnees = $reponse->fetch()){
    	 echo $donnees['nom']; 
         echo $donnees['quantite']; 
    	 echo $donnees['prix'];  
    	 }
    }          
    ?>		
        </body>
    </html>

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Si c'est une présentation simple alors oui fait un tableau.
    Mais tu aurais pu tester avant d'envoyer la question, cela te permettais de vérifier toi même si c'est ce que tu voulais, a moins que tu espérais autre chose ?

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bon, c'est un projet scolaire. Donc deux possibilités :
    - soit tu as un énoncé précis (l'équivalent d'un cahier des charges, ce qu'un client est censé te fournir dans la vraie vie), qui comporte des maquettes ou au moins des descriptions précises des écrans.
    - soit tu as un énoncé flou (l'équivalent de ce qu'un client risque de te fournir dans la vraie vie si il ne sait pas trop ce qu'il veut ) qui comporte des choses vagues du genre "afficher les données"

    Si tu es dans le 2e cas, je te conseille de faire simple : un gros tableau avec une colonne par donnée et une ligne par produit. A noter que si tu as beaucoup de produits à afficher, il faudra envisager de faire une pagination
    A lire : Affichage de données dans un tableau HTML et Créer un système de pagination automatique.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    J'ai effectivement un cahier des charges clair et précis, mais en deux semaine je n'aurai pas le temps de le respecter à la lettre.
    Donc pour le moment j'essaye de faire fonctionner mon projet et ensuite s'il me reste du temps, je l'améliorerais.

    Pour l'instant j'ai très peu de produit, mais ma base devra en contenir pas mal quand même.

    Autre précision. Pendant 2 ans en BTS j'ai étudié le C et le C++ mais jamais le PHP et très peu d'SQL. Déjà que mon niveau est faible en C et C++, c'est pire en PHP et SQL...

    Je vais essayé avec ce que vous m'avez passé.
    Merci

    EDIT : J'ai essayé comme sur le lien de faire un tableau, mais ne n'arrive pas à afficher mes valeurs...

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    <?php session_start(); ?>
    <!DOCTYPE html>
     
    <html>
     
        <head>
     
            <meta charset="utf-8" />
    		<link rel="stylesheet" href="style.css" />
     
            <title>Grossiste</title>
     
        </head>
     
        <body>
     
            <header>
     
                <h1>Grossiste</h1>
    			<h2>En pharmacie</h2>
     
     
     
            </header>
     
     
     
            <nav>
     
                <ul>
     
                    <li><a href="index.php">Accueil</a></li>
     
                    <li><a href="#">Mon compte</a></li>
     
    				<li><a href="deconnexion.php">Se deconnecter</a></li>
     
                </ul>
     
            </nav>
     
            <div class="bordure">
     
     
    </div>
     
            <section>
     
                <article>   
    			</article>
     
            <div>
            </div>
     
    		<?php
    // $NbrCol : le nombre de colonnes
    // $NbrLigne : calcul automatique a la FIN
    // --------------------------------
    // (exemple)
    $NbrCol = 4;
    // La requete (exemple) : toutes les "CHOSE" du champs produit
    $query = "SELECT * FROM produit;";
    $result = mysql_query($query);
    // --------------------------------
    // nombre de cellules a remplir
    $NbreData = mysql_num_rows($result);
    // --------------------------------
    // affichage
    $NbrLigne = 0;
    if ($NbreData != 0) {
    	$j = 1;
    ?>
    	<table border="1">
    	<tbody>
    <?php
    	while ($val = mysql_fetch_array($result)) 
    	{
    		if ($j%$NbrCol == 1) {
    			$NbrLigne++;
    			$fintr = 0;
    ?>		<tr>
    <?php		}
    ?>
    			<td>
    <?php			// -------------------------
    			// DONNEES A AFFICHER dans la cellule
    			echo $val['nom'];
     
    			echo $val['prix'];
     
    			// -------------------------
    ?>			</td>
    <?php		if ($j%$NbrCol == 0) {
    			$fintr = 1;
    ?>		</tr>
    <?php		}
    		$j++;
    	} // fin while
    	// fermeture derniere balise /tr
    	if ($fintr!=1) {
    ?>		</tr>
    <?php	} ?>
    	</tbody>
    	</table>
    <?php
    } else { ?>
    	pas de données à afficher
     
     
    <?php
    }
    ?>
     
     
     
        </body>
    </html>
    Je ne trouve pas mon erreur ?

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu t'es pas mal compliqué la vie là... Fais simple : une ligne de base = une ligne de tableau, une colonne = une cellule. Bon par contre, ton code d'origine utilisait PDO, c'était mieux que les fonctions mysql du tuto.
    Donc en reprenant ton code du 1er post, ça donne quelque chose comme ça :
    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
    try {
        $bdd = new PDO('mysql:host=localhost;dbname=base;charset=utf8', 'root', '',  array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    }
    catch (Exception $e)
    {       
        die('erreur :'.$e->getMessage());
    }
    $reponse = $bdd->query('SELECT * FROM produit');            
    ?>
    <table>
    <tbody>
    <?php
    while ($donnees = $reponse->fetch()){
    ?>
      <tr>
        <td><?php echo $donnees['nom']; ?></td>
        <td><?php echo $donnees['prix']; ?></td>
      </tr>
    <?php
    }
    ?>  
    </tbody>
    </table>
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    manifestement, tu as aussi des lacunes en HTML !

    La syntaxe HTML des <table>, entre autres...


  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    Je dirais plutôt que j'ai des lacunes dans tous les langages Mais sa tombe bien, si je réussi mon projet, je n'aurai plus jamais de ma vie à programmer

    Revenu à ce projet.

    Merci ca marche nickel. J'étais pas loin mais j'avais des petites erreurs dans mon code.
    Et oui j'ai pas fait attention, j'aurai du reprendre PDO.
    Merci.

    Maintenant je continu et j'essaye maintenant d'ajouter le bouton "ajouter au panier".
    Je vous posterais la suite.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Donc j'ai un peu continué à bosser sur mon projet.
    Je réussi à ajouter mon boutons d'ajouter au panier pour mes produits depuis la page "produit.php"
    Je suis ensuite redirigé vers la page "panier.php" et je récupère la valeur de ma variable POST ['id_produit']
    Jusque la c'est ok.

    Seul petit problème, dès que je clique sur "ajouter" je suis envoyé sur la page "panier.php".
    Donc ça ne fonctionne pas comme il faut.
    Je suppose que je devrai faire le traitement dans une page "traitement.php" non ?

    Quelqu'un pourrait il m'expliquer le principe ?

    Merci d'avance

    Produit.php
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <?php session_start(); ?>
    <!DOCTYPE html>
    <html>
    <head>
            <meta charset="utf-8" />
    	<link rel="stylesheet" href="style.css" />
            <title>Grossiste</title>
    </head>
    <body>
            <header>
                <h1>Grossiste</h1>
    		<h2>En pharmacie</h2>
    	</header>
            <nav>
                <ul>
                    <li><a href="index.php">Accueil</a></li>
                    <li><a href="membres.php">Mon compte</a></li>
    		<li><a href="produit.php">Produits</a></li>
    		<li> <?php echo $_SESSION['pseudo']; ?> </li>
    		<li><a href="deconnexion.php">Se deconnecter</a></li>
                </ul>
            </nav>
            <div class="bordure">
    </div>
            <section>
                <article></article>
            <div></div>
    <?php
    try {
        $bdd = new PDO('mysql:host=localhost;dbname=base;charset=utf8', 'root', '',  array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    }
    catch (Exception $e){       
        die('erreur :'.$e->getMessage());
    }
    $reponse = $bdd->query('SELECT * FROM produit');            
    ?>
    <table>
    <tbody>
    <?php
    include "traitement.php";
    while ($donnees = $reponse->fetch()){
    ?>
      <tr>
        <td><?php echo $donnees['nom']; ?></td>
        <td><?php echo $donnees['prix']; ?></td>
    	<td><?php echo $donnees['quantite']; ?></td>
    	<td></td>
    	<td></td>
    	<td></td>
    	<td></td>
    	<td><form action="panier.php" method = "POST"><input type="hidden" name="id_produit" value="<?php echo $donnees['id'];?>"/> <INPUT TYPE="submit"	NAME="panier" VALUE=" Ajouter "> </form></td>
    	<td><form action="traitement.php" method = "POST"><input type="hidden" name="qtt" value="<?php echo $donnees['id'];?>"/> <INPUT TYPE="submit"	NAME="quantite" VALUE=" +1 "> </form></td>
      </tr>
    <?php
    }
    ?>  
    <a href="panier.php">Panier</a>
    </tbody>
    </table>
        </body>
    </html>

    panier.php
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?php session_start(); ?>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
    	<link rel="stylesheet" href="style.css" />
            <title>Grossiste</title>
        </head>
        <body>
            <header>
                <h1>Grossiste</h1>
    			<h2>En pharmacie</h2>
            </header>
            <nav>
                <ul>
                    <li><a href="index.php">Accueil</a></li>
                    <li><a href="membres.php">Mon compte</a></li>
    		<li><a href="produit.php">Produits</a></li>
    		<li> <?php echo $_SESSION['pseudo']; ?> </li>
    		<li><a href="deconnexion.php">Se deconnecter</a></li>
                </ul>
            </nav>
            <div class="bordure">
    </div>
            <section>
                <article></article>
            <div></div>
    <?php
    try {
        $bdd = new PDO('mysql:host=localhost;dbname=base;charset=utf8', 'root', '',  array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    }
    catch (Exception $e){       
        die('erreur :'.$e->getMessage());
    }
    ?>
    <?php
    if(isset ($_POST['id_produit'])){
    	echo $_POST['id_produit'];
    }
    else{
    	echo "pas de produit commandé";
    }
    ?>  
    </tbody>
    </table>
        </body>
    </html>

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

Discussions similaires

  1. [Drupal] Projet fin d'année
    Par prims dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 23/10/2012, 11h42
  2. Projet Fin D'année
    Par ahmedpa dans le forum Stages
    Réponses: 0
    Dernier message: 07/10/2012, 18h41

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