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 :

Récupération dans base 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é Avatar de worldhugo
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 139
    Par défaut Récupération dans base SQL
    Bonjour a tous.
    J'ai une page pour récupérer mes donné d'une base :
    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
    <div align="center">
    <?php
    require_once("headers.php");
    ?>
    </div>
     
    <div id="fact_lister">
    <?php
    require_once("menu.php");
    ?>
    <div align="center">
    <?php
    //connexion au serveur1:
     
    $cnx = mysql_connect( 'serveur', 'user', 'pass' );
    //s?ction de la base de donn?:
    $db= mysql_select_db( 'testevici' );
    //cr?ion de la requ? SQL:
    $sql = "SELECT * FROM facture";
    //ex?tion de notre requ? SQL:
    $requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL num?: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>n" );
    $resulta = mysql_fetch_array( $requete );
    $client = $resulta["client"];
    echo( "<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\">\n" );
    echo( "<tr>
    <td><div align=\"center\">NOM CLIENT</div></td>
    <td><div align=\"center\">ARTICLE</div></td>
    <td><div align=\"center\">DATE FACTURE</div></td>
    <td><div align=\"center\">PRIX HT</div></td>
    <td><div align=\"center\">TVA</div></td>
    <td><div align=\"center\">COMENT</div></td>
    <td><div align=\"center\">ACOMPTE</div></td>
    </tr>" );
     
    //2 
     
    $cnx2 = mysql_connect( 'serveur', 'user', 'pass' );
    //s?ction de la base de donn?:
    $db2= mysql_select_db( 'testevici' );
    //cr?ion de la requ? SQL:
    $sql2 = "SELECT * FROM client where num = '$client'";
    //ex?tion de notre requ? SQL:
    $requete2 = mysql_query( $sql2, $cnx2 ) or die( "ERREUR MYSQL num?: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>" );
    while( $result2 = mysql_fetch_array( $requete2 ) )
    {
    echo( "<tr>\n" );
    echo( "<td><div align=\"center\">".$result2["nom"]."</div></td>\n" );
    echo( "<td><div align=\"center\">".$resulta["article"]."</div></td>\n" );
    echo( "<td><div align=\"center\">".$resulta["date_fact"]."</div></td>\n" );
    echo( "<td><div align=\"center\">".$resulta["prix_ht"]."</div></td>\n" );
    echo( "<td><div align=\"center\">".$resulta["tva"]."</div></td>\n" );
    echo( "<td><div align=\"center\">".$resulta["coment"]."</div></td>\n" );
    echo( "<td><div align=\"center\">".$resulta["acompte"]."</div></td>\n" );
    echo( "</tr>\n" );
    }
    echo "</table><br>";
    ?> 
    </div>
    La table facture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE IF NOT EXISTS `facture` (
      `num` varchar(200) collate latin1_general_ci NOT NULL,
      `client` varchar(200) collate latin1_general_ci NOT NULL,
      `article` varchar(200) collate latin1_general_ci NOT NULL,
      `date_fact` varchar(200) collate latin1_general_ci NOT NULL,
      `prix_ht` varchar(200) collate latin1_general_ci NOT NULL,
      `tva` varchar(200) collate latin1_general_ci NOT NULL,
      `coment` varchar(200) collate latin1_general_ci NOT NULL,
      `acompte` varchar(200) collate latin1_general_ci NOT NULL,
      PRIMARY KEY  (`num`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
    Ma page ne récupère que la 1 entré(num=1) et pas les autres...
    Pourquoi ???

  2. #2
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour

    Les fonctions mysql_fetch_XXX ne récupèrent qu'une seule ligne du résultat à la fois. Donc si tu n'appelles mysql_fetch_array qu'une seule fois, tu n'obtiens que la 1ere ligne du résultat.

    IL faut donc tu boucles sur le résultat de la requête $resulta de la même façon que tu boucles sur ta seconde requête $requete2...
    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]

  3. #3
    Membre confirmé Avatar de worldhugo
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 139
    Par défaut
    Ok,
    peux tu me donner le code avec cette fonction "de boucle" stp.
    Merci

  4. #4
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Ben tu mets en place un while :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = "SELECT * FROM facture";
    //ex?tion de notre requ? SQL:
    $requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL num?: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>n" );
    while ($resulta = mysql_fetch_array( $requete ))
    {
      $client = $resulta["client"];
    //.... 
    }
    Après ce qui doit aller dans la boucle il n'y a que toi qui peut le savoir.
    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]

  5. #5
    Membre confirmé Avatar de worldhugo
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 139
    Par défaut
    Je ne comprend rien...
    Tu n'a pas essé de l'autre code pour me faire un petit exemple ????

  6. #6
    Membre confirmé Avatar de worldhugo
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 139
    Par défaut
    J'ai fait un autre code :
    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
    <?
    // information pour la connection à le DB
    $host = 'sql.olympe-network.com';
    $user = 'testevici';
    $pass = 'HG96sorento';
    $db = 'testevici';
     
    // connection à la DB
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
    // requête SQL qui compte le nombre total d'enregistrement dans la table et qui
    //récupère tous les enregistrements
    $select = 'SELECT * FROM facture';
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
    $total2 = mysql_fetch_array($result);
    $client = $total2["client"];
    //2
    $sql2 = "SELECT * FROM client where num = '$client'";
    //ex?tion de notre requ? SQL:
    $requete2 = mysql_query( $sql2, $link ) or die ('Erreur : '.mysql_error() );
    //si on a récupéré un résultat on l'affiche
    if($total) {
        // debut du tableau
        echo '<table bordercolor="#000000">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr>';
            echo '<td bgcolor="#FFFFFF"><b><u>NOM CLIENT</u></b></td>';
            echo '<td bgcolor="#FFFFFF"><b><u>ARTICLE</u></b></td>';
          echo '<td bgcolor="#FFFFFF"><b><u>DATE FACTURE</u></b></td>';
            echo '<td bgcolor="#FFFFFF"><b><u>PRIX HT</u></b></td>';
          echo '<td bgcolor="#FFFFFF"><b><u>TVA</u></b></td>' ;
    	  echo '<td bgcolor="#FFFFFF"><b><u>COMENT</u></b></td>' ;
    	  echo '<td bgcolor="#FFFFFF"><b><u>ACOMPTE</u></b></td>' ;
          echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
        while($row = mysql_fetch_array($result))
    while($row2 = mysql_fetch_array($requete2))	{
            echo '<tr>';
            echo '<td bgcolor="#CCCCCC">'.$row2["nom"].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row["article"].'</td>';
          echo '<td bgcolor="#CCCCCC">'.$row["date_fact"].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row["prix_ht"].'</td>';
          echo '<td bgcolor="#CCCCCC">'.$row["tva"].'</td>';
    	   echo '<td bgcolor="#CCCCCC">'.$row["coment"].'</td>';
    	    echo '<td bgcolor="#CCCCCC">'.$row["acompte"].'</td>';
          echo '</tr>'."\n";
        }
        echo '</table>'."\n";
        // fin du tableau.
    }
    else echo 'Pas de facture.';
     
    // on libère le résultat
    mysql_free_result($result);
     
    ?>
    Mais j'ai toujours le même problème.

Discussions similaires

  1. Récupération dans base SQL
    Par QuentLM dans le forum VB.NET
    Réponses: 14
    Dernier message: 26/02/2014, 16h20
  2. [SQL] Faire une recherche plus modification dans base sql
    Par ju3979 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 09/08/2007, 17h26
  3. [SQL] Problème insertion dans Base SQL après saisie d'un formulaire
    Par Yagami_Raito dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 15/05/2007, 13h44
  4. Builder Borland C++ 6 : Ecrire dans base SQL
    Par AngelFire dans le forum C++Builder
    Réponses: 1
    Dernier message: 08/05/2007, 22h40
  5. [MySQL] Supprimer entrée dans base sql par un simple clique
    Par mickado dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 29/03/2007, 17h15

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