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

Langage PHP Discussion :

plusieurs requetes --> while imbriqué


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut plusieurs requetes --> while imbriqué
    bonjour,

    J’ai des deux problèmes, j'ai deux tables avec deux requêtes avec while impliqué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    while ($donnees = mysql_fetch_array($reponse) and ($donnees2 = mysql_fetch_array($requete2))) 
    {
    1/ je n'arrive pas a voir la ligne id 1 de ma table.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /* ------------------ REQUETE 1 SQL DE LA TABLE 1 ------------------ */
    $reponse = mysql_query("SELECT * FROM $nom_table1 "); // Requête SQL
    $donnees = mysql_fetch_assoc($reponse); // liste ce que contient la table
    2/ je n'arrive pas a voir la dernière ligne id de ma table.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /* ------------------ REQUETE 2 SQL DE LA TABLE 1 ------------------ */
    $requete2 = mysql_query("SELECT km FROM $nom_table1 LIMIT 1 , 9999999999999999999 "); // Requête SQL
    $donnees2 = mysql_fetch_assoc($requete2); // liste ce que contient la table
    Je n'arrive pas à trouver mon erreur dans mon code, ou bien je m'y suis mal pris, j'ai aussi vérifié dans phpadmin ma table et je ne pense pas avoir fait d'erreur en créant ma table, bref je pense plutôt avoir merdé quelque part dans le code ?

    Merci d'avance, cordialement.

    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
     
    <?php
     
    /* ------------------ VARIABLE NOM DE LA BDD ------------------ */
    $nom_bdd = "vehicule";
     
    /* ------------------ VARIABLE NOMS DES TABLES ------------------ */
    $nom_table1 ="vehicule1";
    $nom_table3 ="vehicule1_options";
     
    /* ------------------ CONNEXION A LA BDD ------------------ */
    mysql_connect("localhost", "root", ""); // Connexion à MySQL
    mysql_select_db("$nom_bdd"); // Sélection de la base de donnée
     
    /* ------------------ REQUETE 1 SQL DE LA TABLE 1 ------------------ */
    $reponse = mysql_query("SELECT * FROM $nom_table1 "); // Requête SQL
    $donnees = mysql_fetch_assoc($reponse); // liste ce que contient la table
     
    /* ------------------ REQUETE 2 SQL DE LA TABLE 1 ------------------ */
    $requete2 = mysql_query("SELECT km FROM $nom_table1 LIMIT 1 , 9999999999999999999 "); // Requête SQL
    $donnees2 = mysql_fetch_assoc($requete2); // liste ce que contient la table
     
    /* ------------------ REQUETE 3 SQL DE LA TABLE 3 - OPTIONS ------------------ */
    $reponse3 = mysql_query("SELECT * FROM $nom_table3"); // Requête SQL
    $donnees3 = mysql_fetch_assoc($reponse3); // liste ce que contient la table
     
    ?>
    </p>
    <p align="center">Vehicule <?php echo $donnees3["vehicule"]; ?> <?php echo $donnees3["marque"]; ?> <?php echo $donnees3["model"]; ?> </p>
    <table width="auto" align="center" border="0">
      <tr>
        <th width="auto" bgcolor="#999999" scope="col">Id</th>
        <th width="auto" bgcolor="#999999" scope="col"><LABEL for="checkbox_row_2">date</LABEL></th>
        <th width="auto" bgcolor="#999999" scope="col"><LABEL for="checkbox_row_3">km</LABEL></th>
        <th width="auto" bgcolor="#999999" scope="col">km2</th>
        <th width="auto" bgcolor="#999999" scope="col">Volume</th>
        <th width="auto" bgcolor="#999999" scope="col"><LABEL for="checkbox_row_5">prix litres ht carburant</LABEL></th>
        <th width="auto" bgcolor="#999999" scope="col"><LABEL for="checkbox_row_6">tva carburant</LABEL></th>
        <th width="auto" bgcolor="#999999" scope="col"><LABEL for="checkbox_row_7">montant ttc carburant</LABEL></th>
        <th width="auto" bgcolor="#999999" scope="col">Nombre kilometre &eacute;ffectuer</th>
        <th width="auto" bgcolor="#999999" scope="col"><LABEL for="checkbox_row_8">action</LABEL></th>
        <th width="auto" bgcolor="#999999" scope="col"><table cellspacing="0" cellpadding="0">
          <tr>
            <TD align="middle"></TD>
            <TH noWrap><LABEL for="checkbox_row_12">commentaire</LABEL></TH>
            </tr>
        </table></th>
      </tr>
      <tr>
        <th scope="row">&nbsp;</th>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
     
     
     
    <?php
     
    while ($donnees = mysql_fetch_array($reponse) and ($donnees2 = mysql_fetch_array($requete2))) 
    {
    ?>
      <tr>
        <th bgcolor="#CCCCCC" scope="row"><?php echo $donnees["id"]; ?></th>
    	<td bgcolor="#CCCCCC"><?php echo $donnees["date"]; ?></td>
        <td bgcolor="#CCCCCC"><?php echo $donnees["km"]; ?></td>
        <td bgcolor="#CCCCCC"><?php echo $donnees2["km"]; ?></td>
        <td bgcolor="#CCCCCC"><?php echo $donnees["volume"]; ?></td>
        <td bgcolor="#CCCCCC"><?php echo $donnees["prix_litres_ht_carburant"]; ?></td>
        <td bgcolor="#CCCCCC"><?php echo $donnees["tva_carburant"]; ?></td>
        <td bgcolor="#CCCCCC"><?php echo $donnees["montant_ttc_carburant"]; ?></td>
        <td bgcolor="#CCCCCC"><?php echo $difference_kilometre = $donnees2["km"] - $donnees["km"] ; ?></td>
        <td bgcolor="#CCCCCC"><?php echo $donnees["action"]; ?></td>
        <td bgcolor="#CCCCCC"><?php echo $donnees["motant_ttc_action"]; ?></td>
      </tr>
    <?php } //toute la ligne est comprise dans la boucle while?>
    </table>
     
    <p align="center">[<a href="/maison/N4/index.php">Accueil</a>] - [<a href="/maison/N4/index.php?page=at">Sommaire</a>] - [<a href="index.php?page=at-ins">Ajouter</a>] - [<a href="index.php?page=at-mod">Modifier</a>] - [<a href="index.php?page=at-mod">Supprimer</a>] - [<a href="index.php?page=at-rec">Rechercher</a>]</p>
       <br/>
    </body>
    </html>
     
    <?php
     
    mysql_close(); // Fermeture de la connexion Mysql
    ?>

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Pourquoi faire 2 requêtes sur la même table, dont l'une récupère tout, et l'autre uniquement 1 champ.

    Si tu récupère tout, ça veut dire que tu obtiendra forcément les données du champ "km" aussi, non ?
    Une seule requête suffirait à mon sens.

    Et puis, pourquoi mettre une limite aussi grande : LIMITE 1 , 9 999 999 999 999 999 999
    Déjà là, la 1ère ligne sera ignorée. L'indice 0 est la 1ère ligne, l'indice 1 la 2ème, etc ...
    En admettant que ça soit le cas, qui est ce qui va s'amuser à lire autant de ligne (d'informations) dans une page Web ?
    A mon avis, il faudrait que tu fasse de la pagination, soit afficher un certain nombre de résultat par page, genre 20 résultat par page.
    Enfin, s'il y a vraiment beaucoup de lignes de retournées.

    Que est la valeur de $nom_table1 ? As tu vérifier ça avec un echo ?


    Mise à part ça, si tu veux récupérer une liste de voitures (table vehicule1) avec leurs options respective (table vehicule1_options), il faut faire une seule requête et rajouter une jointure entres elles.
    Ca sert à ça une Bdd

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT v.voiture_id, opt.une_option
    FROM vehicule1 v
    JOIN vehicule1_options opt ON v.voiture_id = opt.voiture_id
    Mais il faudrait voir comment ta Bdd est structurée (vehicule1/vehicule1_options).

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut
    bonjour,

    Tout dabord merci de votre reponse,

    1/Pourquoi faire 2 requêtes sur la même table, dont l'une récupère tout, et l'autre uniquement 1 champ.
    Pour faire un calcule pour cela j'ai mi une limite 1 pour decaller le restultat de -1 ligne afin de faire le calcul du nombre de km effectuer etre chaque plein (cela permet de voir les bidons remplie au lieu du reservoir)

    Requette pour decaller le resultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete2 = mysql_query("SELECT km FROM $nom_table1 LIMIT 1 , 9999999999999999999 "); // Requête SQL
    $donnees2 = mysql_fetch_assoc($requete2); //
    Requete qui affiche le resultat de toute la table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reponse = mysql_query("SELECT * FROM $nom_table1 "); // Requête SQL
    $donnees = mysql_fetch_assoc($reponse); // liste ce que contient la table
    Formule de calcul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $difference_kilometre = $donnees2["km"] - $donnees["km"] ; ?>
    Quand a la table3 c'est pour afficher le nom du vehicule est sont numero de park en debut de page car il y a plusieurs vehicules.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p align="center">Vehicule <?php echo $donnees3["vehicule"]; ?> <?php echo $donnees3["marque"]; ?> <?php echo $donnees3["model"]; ?> </p>
    2/ Et puis, pourquoi mettre une limite aussi grande : LIMITE 1 , 9 999 999 999 999 999 999
    Pour affichier toutes les lignes, ce chiffre etant la limite maximun, que si je met 100 apres 101 plus rien s'affiche.

    3/ Déjà là, la 1ère ligne sera ignorée
    Oui je veut ignorer la premier ligne sur la requete2 pour effectuer le calcul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        <td bgcolor="#CCCCCC"><?php echo $difference_kilometre = $donnees2["km"] - $donnees["km"] ; ?></td>
    4/ A mon avis, il faudrait que tu fasse de la pagination, soit afficher un certain nombre de résultat par page, genre 20 résultat par page.
    Je n'y avai pas pensé comme ceci.

    5/ Que est la valeur de $nom_table1 ? As tu vérifier ça avec un echo ?
    vehicule1

    6/ Mise à part ça, si tu veux récupérer une liste de voitures (table vehicule1) avec leurs options respective (table vehicule1_options), il faut faire une seule requête et rajouter une jointure entres elles.
    je pensé que comme ceci avec while via ma requete1 et 2, portant ca foncontionne mais je n'ai pas la permier ligne n'y la derniere.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while ($donnees = mysql_fetch_array($reponse) and ($donnees2 = mysql_fetch_array($requete2))) 
    {
    7/ Mais il faudrait voir comment ta Bdd est structurée
    table1 (vehicule1) pour la requete 1 et 2

    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
    -- phpMyAdmin SQL Dump
    -- version 2.11.6
    -- http://www.phpmyadmin.net
    --
    -- Serveur: localhost
    -- Généré le : Jeu 30 Septembre 2010 à 08:38
    -- Version du serveur: 5.0.51
    -- Version de PHP: 5.2.6
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
    --
    -- Base de données: `vehicule`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `vehicule1`
    --
     
    CREATE TABLE `vehicule1` (
      `id` int(11) NOT NULL auto_increment,
      `date` varchar(10) NOT NULL,
      `km` varchar(6) NOT NULL,
      `volume` varchar(6) NOT NULL,
      `prix_litres_ht_carburant` varchar(6) NOT NULL,
      `tva_carburant` varchar(6) NOT NULL,
      `montant_ttc_carburant` varchar(7) NOT NULL,
      `action` varchar(50) NOT NULL,
      `commentaire` varchar(100) NOT NULL,
      PRIMARY KEY  (`id`),
      KEY `id` (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
     
    --
    -- Contenu de la table `vehicule1`
    --
     
    INSERT INTO `vehicule1` (`id`, `date`, `km`, `volume`, `prix_litres_ht_carburant`, `tva_carburant`, `montant_ttc_carburant`, `action`, `commentaire`) VALUES
    (1, '29/10/2010', '161000', '', '', '19.60', '', 'Plein carburant', ''),
    (2, '00/00/2010', '162705', '', '', '19.60', '', 'Plein de carburant', ''),
    (3, '31/05/2010', '163530', '43.45', '', '19.60', '', 'Plein de carburant', ''),
    (4, '29/09/2010', '164179', '43.22', '1.098', '19.60', '47.46', 'Plein de carburant', ''),
    (5, '00/00/0000', '165820', '', '', '', '', '', '');

    table3 (vehicule1_options) pour la requete3
    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
    -- phpMyAdmin SQL Dump
    -- version 2.11.6
    -- http://www.phpmyadmin.net
    --
    -- Serveur: localhost
    -- Généré le : Jeu 30 Septembre 2010 à 13:20
    -- Version du serveur: 5.0.51
    -- Version de PHP: 5.2.6
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
    --
    -- Base de données: `vehicule`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `vehicule1_options`
    --
     
    CREATE TABLE `vehicule1_options` (
      `id` int(1) NOT NULL,
      `vehicule` varchar(2) NOT NULL,
      `marque` varchar(10) NOT NULL,
      `model` varchar(15) NOT NULL,
      `type_carburant` varchar(12) NOT NULL,
      `volume_reserve` varchar(5) NOT NULL,
      `km_reserve` varchar(2) NOT NULL,
      `litre_au_100` varchar(2) NOT NULL,
      `km_jauge_reserve` varchar(6) NOT NULL,
      `immatriculation` varchar(15) NOT NULL,
      `aquis_le` varchar(10) NOT NULL,
      `vehicule_aquis_km_compteur` varchar(6) NOT NULL,
      `tva_carburant` varchar(6) NOT NULL,
      `tva_repartion` varchar(6) NOT NULL,
      `controle_technique_tous_les` varchar(1) NOT NULL,
      `filtre_gasoil_remplacer_tous_les` varchar(6) NOT NULL,
      `filtre_air_remplacer_tous_les` varchar(6) NOT NULL,
      `filtre_huile_remplacer_tous_les` varchar(6) NOT NULL,
      KEY `id` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    --
    -- Contenu de la table `vehicule1_options`
    --
     
    INSERT INTO `vehicule1_options` (`id`, `vehicule`, `marque`, `model`, `type_carburant`, `volume_reserve`, `km_reserve`, `litre_au_100`, `km_jauge_reserve`, `immatriculation`, `aquis_le`, `vehicule_aquis_km_compteur`, `tva_carburant`, `tva_repartion`, `controle_technique_tous_les`, `filtre_gasoil_remplacer_tous_les`, `filtre_air_remplacer_tous_les`, `filtre_huile_remplacer_tous_les`) VALUES
    (0, '1', 'Citroën ', 'C15 Diesel', 'Gazoile', '5', '50', '10', '000000', '450 AX 83', '00/00/2010', '', '5.5', '19.60', '2', '20000', '30000', '10000');
    Voila ce que c'est que d'etre un debutant.
    Merci d'avance.

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($donnees = mysql_fetch_array($reponse) and ($donnees2 = mysql_fetch_array($requete2)))
    Déjà, il faut que tu oubli ceci, ce n'est pas bon.
    On en parle plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $difference_kilometre = $donnees2["km"] - $donnees["km"];
    Il y a ensuite ce code, et là ça demande explication.
    Mais apparemment, le but serait de calculer le nombre de Km parcouru entre 2 lignes.
    Tu n'as pas dit dans quel secteur ça concerne, mais apparemment ce serait de la location de véhicule (c'est important de savoir ou les choses doivent mener).
    Faire 2 requêtes n'est pas justifié.
    Faut se dire qu'on a toujours la possibilité de récupérer une bonne fois ce qu'on a besoin, le stocker dans un tableau Php par exemple, et boucler après, comme faire le calcul du nombre de Km parcouru.


    Selon la structure de tes table, et en partant du principe que c'est correcte, c'est à dire que le champ "vehicule" (valeur 1) de la table "vehicule1_options" correspond au champ "id" (valeur 1) de la table "vehicule1".

    Une seule requête suffirait, 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
     
    $sql = 'SELECT v.id, v.date, v.km, opt.tva_carburant
    FROM vehicule1 v
    JOIN vehicule1_options opt ON v.vehicule = opt.id';
    $reponse = mysql_query($sql); // Requête SQL
     
    $km = 0;
    while ($vehicule = mysql_fetch_array($reponse)) {
        echo '<tr>';
        echo '    <td>'.$vehicule['id'].'</td>';
        echo '    <td>'.$vehicule['date'].'</td>';
        echo '    <td>'.($vehicule['km'] - $km).'</td>'; // Nombre de Km parcouru entre 2 lignes
        echo '</tr>';
        $km = $vehicule['km'];
    }
    Pour vehicule1 v, v est un alias de "vehicule1", tout comme opt est un alias de "vehicule1_options", ce qui permet de diminuer un peu le code.
    Mais ce n'est pas obligatoire.
    Je remarque que tu fais allusion à un champ "motant_ttc_action" dont je ne vois nulle part (qui en plus comporte une erreur de frappe : montant au lieu de motan).

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut
    bonsoir,

    1/ Il y a ensuite ce code, et là ça demande explication.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $difference_kilometre = $donnees2["km"] - $donnees["km"];
    Le but est de calculer le nombre de Km parcouru sur une seul lignes.
    c'est pour cela que j'avai mis le la requete 2 afin d'ignorer la premiere ligne pour faire un calcul sur une seul ligne. Mais apparemment je mis suis mal prie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /* ------------------ REQUETE 2 SQL DE LA TABLE 1 ------------------ */
    $requete2 = mysql_query("SELECT km FROM $nom_table1 LIMIT 1 , 9999999999999999999 "); // Requête SQL
    $donnees2 = mysql_fetch_assoc($requete2); // liste ce que contient la table
    2/ Tu n'as pas dit dans quel secteur ça concerne
    Non ce n'est pas de la location mais pour une entreprise a déchet industriel, qui a un park de 250 vehicules (triporteur, benne a ordure menagere, vehicule de fonction, tp, etc...
    Il faut que je puise calculer le nombre de km entre chaque plein de carburant effectuer, afin que la societe s'apercoive des vols de carburant, donc si un plein a eu lieu avec moin de km alert par mail.

    Concernant votre code que j'essai d'experimenté, j'ai un message d' erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unknown column 'v.vehicule' in 'on clause'
    j'ai essayé plusieurs test rien a faire ??

    Voila tout le 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
    <?php 
    /* ------------------ CONNEXION A LA BDD ------------------ */
    $nom_bdd = "vehicule";
    mysql_connect("localhost", "root", ""); // Connexion à MySQL
    mysql_select_db("$nom_bdd"); // Sélection de la base de donnée
     
    $sql = 'SELECT v.id, v.date, v.km, opt.tva_carburant FROM vehicule1 v JOIN vehicule1_options opt ON v.vehicule = opt.id';
    $reponse = mysql_query($sql)or die (mysql_error()); // Requête SQL
     
    $km = 0;
    while ($vehicule = mysql_fetch_array($reponse)) {
        echo '<tr>';
        echo '    <td>'.$vehicule['id'].'</td>';
        echo '    <td>'.$vehicule['date'].'</td>';
        echo '    <td>'.($vehicule['km'] - $km).'</td>'; // Nombre de Km parcouru entre 2 lignes
        echo '</tr>'; $km = $vehicule['km'];
    }
    ?>
    Merci d'avance.

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Unknown column 'v.vehicule' in 'on clause'
    Je pense que je me suis emmêlé les pinceaux entre les nom des tables.
    Faudrait les inverser, ceci : JOIN vehicule1_options opt ON v.vehicule = opt.id (incoorecte)
    par ça : JOIN vehicule1_options opt ON v.id = opt.vehicule
    Le champ "id" appartient à la table vehicule1, le champ "vehicule" à la table vehicule1_options normalement.

    Le but est de calculer le nombre de Km parcouru sur une seul lignes.
    J'aurais dû dire : ... entre 2 enregistrements au lieu de lignes (mais 1 enregistrement est 1 ligne).
    En faite, tu souhaite afficher sur 1 ligne la différence qu'il y a entre 2 enregistrements (ou trajet, parcourt, journée, tournée, réapprovisionnement de carburant, etc ...).
    Enregistrement 10 : 1000Km (ligne1), enregistrement 11 (ligne2) : 1100Km (= 100Km parcouru).
    Je sais, faut lire entre les lignes ...
    Enfin si j'ai bien compris


    Petite parenthèse au passage.
    Tu as tendance à mettre des varchar partout, et ce n'est pas forcément la meilleur chose à faire.
    Une Bdd offre plusieurs types de données, comme INT, TINYINT, DATE, DATETIME, DECIMAL, CHAR, TEXT, etc ...
    Essai au moins de respecter les types comme date, les numériques et décimaux, ça pourrait être un problème un de ces 4.

Discussions similaires

  1. [MySQL] Optimisation requete dans while imbriqué et foreach
    Par Diaboloz dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 15/07/2011, 12h50
  2. [MySQL] optimisation requete mysql - while imbriquée
    Par Sbeuh dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/08/2010, 01h43
  3. plusieurs requetes avec un seule while (requete.next)
    Par newmar dans le forum Hibernate
    Réponses: 6
    Dernier message: 18/06/2008, 11h23
  4. [Tableaux] Boucle while imbriquer
    Par Le-Cortex dans le forum Langage
    Réponses: 11
    Dernier message: 09/09/2005, 15h22
  5. Réponses: 5
    Dernier message: 23/06/2005, 11h18

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