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 :

Affichage résultats requête incohérent [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 79
    Points : 62
    Points
    62
    Par défaut Affichage résultats requête incohérent
    Bonsoir,

    je fais un site pour une société de livraison. Les chauffeurs se connectent au site, saisisse le numéro de leur tournée, le nombre de colis livrés et le nombre de colis ramassés.

    Côté admin, un grand tableau affiche l'ensemble des tournées saisies par les chauffeurs avec le nombre de colis livrés et récupéré par numéro de tournée et par date. Avec en dernière ligne du tableau, le total des colis livrés et récupérés. Voici une image d'un exemple de tableau général:

    Nom : tab_tnt_ok.png
Affichages : 83
Taille : 48,4 Ko

    Donc ici vous voyez le tableau avec les numéros de tournées en haut, les dates à gauche. Les cellules sont remplies selon cet ordre: nombre de colis livrés - nombre de colis ramassés. En dernière ligne, le total. Ceci correspond au groupe TNT.

    Bref, donc voilà ce que je souhaiterais obtenir pour un autre groupe EXAPAQ mais regardez ce que j'obtiens:

    Nom : tab_exa_pas_ok.png
Affichages : 84
Taille : 26,7 Ko

    Comme vous le remarquez, le total ne s'affiche pas pour toutes les tournées, mais uniquement pour la tournée 25.5, pour une raison qui m'échappe totalement.
    Mon problème est donc ici, pourquoi le total ne s'affiche pas alors que sur le groupe TNT ça fonctionne parfaitement bien?
    Je précise que j'ai exactement le même code entre les deux groupes, seul les appels aux tables dans les requêtes sont différents évidement.

    Je vous poste quand même le code de la page affichant ce tableau:
    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
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    <?php
    session_start();  
    if (!isset($_SESSION['email'])) { 
       header ('Location: index.php'); 
       exit();  
    }
    $session_email = mysql_escape_string($_SESSION['email']);
    ?>
     
    <!DOCTYPE html> 
    <html lang="fr">
    	<head>
    		<meta charset="utf-8">
    		<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
    		<title>Gestion des feuilles de route</title>
    		<link rel="stylesheet" href="style.css" />
    		<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
    		<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    		<script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
    	</head>
    	<body>
    		<div data-role="page">
    			<div data-role="header">
    				<a href="membre.php" data-icon="home">Retour</a>
    				<h1>Gestion des feuilles de route de EXAPAQ</h1>
    				<a href="ajout_exa.php" data-icon="plus">Ajouter une tournée</a>
    			</div><!-- /Entete de la page -->
    			<div data-role="content">
    			<form action="exa_admin.php" method="post" data-ajax="false">
    				<fieldset class="ui-grid-b"> 
    					<div class="ui-block-a">
    						<label for="select-choice-1" class="select"></label>
    							<select name="mois" id="select-choice-1">
    							<?php
    							$base = mysql_connect ('sql.free.fr', '******', '******');  
    							mysql_select_db ('******', $base);
    							$reponse = mysql_query('SELECT DISTINCT MONTH(Date_liv) AS mois FROM `tournee_exa` ORDER BY mois');
    							while($donnees = mysql_fetch_array($reponse))
    							{
    							?>
    								<option VALUE="<?php echo $donnees['mois'];?>"><?php echo $donnees['mois'];?></option>
    							<?php
    							}
    							?>
    							</select>
    					</div>
    					<div class="ui-block-b">
    						<label for="select-choice-1" class="select"></label>
    							<select name="annee" id="select-choice-1">
    								<?php
    								$base = mysql_connect ('sql.free.fr', '******', '******');  
    								mysql_select_db ('******', $base);
    								$reponse = mysql_query('SELECT DISTINCT YEAR(Date_liv) AS annee FROM `tournee_exa` ORDER BY annee');
    								while($donnees = mysql_fetch_array($reponse))
    								{
    								?>
    									<option VALUE="<?php echo $donnees['annee'];?>"><?php echo $donnees['annee'];?></option>
    								<?php
    								}
    								?>
    							</select>
    					</div>
    					<div class="ui-block-c">
    						<label for="afficher"></label><input type="submit" name="afficher" id="afficher" value="Afficher" data-theme="b" />
    					</div>
    				</fieldset>
    			</form>
    			<?php
    			if (isset($_POST['afficher']) && $_POST['afficher'] == 'Afficher') { 
    				$base = mysql_connect ('sql.free.fr', '******', '******');  
    				mysql_select_db ('******', $base);
    				$result2 = mysql_query('SELECT DISTINCT Numero FROM tournee_exa ORDER BY Numero');
    				while($row= mysql_fetch_array($result2)) {
    					 $tblNumero[] = $row['Numero'];
    				}
    				/*ICI*/
    				$result = mysql_query('SELECT Numero, Nb_pt_liv, Pickup, Date_liv FROM tournee_exa WHERE MONTH(Date_liv) = "'.mysql_escape_string($_POST['mois']).'" AND YEAR(Date_liv) = "'.mysql_escape_string($_POST['annee']).'" ORDER BY Date_liv');
    				while ($row = mysql_fetch_assoc($result)) {
    					 $data[$row['Date_liv']][$row['Numero']] = array('points'=>$row['Nb_pt_liv'], 'pickup'=>$row['Pickup']);
    				}
    				echo '<table id="gradient-style" summary="Meeting Results"><tr><th scope="col">Points - Ramasses</th>';
    				foreach ($tblNumero as $numero) {
    				   echo '<th scope="col">' . $numero . '</th>';
    				   $i = $i+1;
    				}
    				echo '</tr>';
    				foreach($data as $date=>$data_numeros) {
    					echo '<tr><th scope="col">'. $date . '</th>';
    					foreach ($tblNumero as $numero) {
    						 if (isset($data_numeros[$numero])) {
    								$points = $data_numeros[$numero]['points'];
    								$pickup = $data_numeros[$numero]['pickup'];
    						  }
    						 else {
    								$points = '';
    								$pickup = '';
    						 }
    						 echo '<td>' . $points . ' - ' . $pickup . '</td>';
    					 }
    					 echo '</tr>';
    				}
    				echo '<tr><th scope="col">Total</th>';
    				$result2 = mysql_query('SELECT DISTINCT Numero FROM tournee_exa ORDER BY Numero');
    				while($row= mysql_fetch_array($result2)) {
    					$num = $row['Numero'];
    					$mois = mysql_escape_string($_POST['mois']);
    					$annee = mysql_escape_string($_POST['annee']);
    					$nb_pt="SELECT SUM(Nb_pt_liv) AS nb_pt, SUM(Pickup) AS pick FROM tournee_exa WHERE Numero ='$num' AND MONTH(Date_liv) = '$mois' AND YEAR(Date_liv) = '$annee' ORDER BY Numero";
    					$req_nb_pt=mysql_query($nb_pt);
    					$tab_nb_pt=mysql_fetch_array($req_nb_pt) ;
    					echo '<th  scope="col">'.$tab_nb_pt["nb_pt"].' - '.$tab_nb_pt["pick"].'</th>';
    				}
    				echo '</tr></table>';
    			} else { 
    				$base = mysql_connect ('sql.free.fr', '******', '******');  
    				mysql_select_db ('******', $base);;
    				$result2 = mysql_query('SELECT DISTINCT Numero FROM tournee_exa ORDER BY Numero');
    				while($row= mysql_fetch_array($result2)) {
    					 $tblNumero[] = $row['Numero'];
    				}
    				/*ICI*/
    				$result = mysql_query('SELECT Numero, Nb_pt_liv, Pickup, Date_liv FROM tournee_exa WHERE MONTH(Date_liv) = MONTH(Now()) AND YEAR(Date_liv) = YEAR(Now()) ORDER BY Date_liv');
    				while ($row = mysql_fetch_assoc($result)) {
    					 $data[$row['Date_liv']][$row['Numero']] = array('points'=>$row['Nb_pt_liv'], 'pickup'=>$row['Pickup']);
    				}
    				echo '<table id="gradient-style" summary="Meeting Results"><tr><th scope="col">Points - Ramasses</th>';
    				foreach ($tblNumero as $numero) {
    				   echo '<th scope="col">' . $numero . '</th>';
    				   $i = $i+1;
    				}
    				echo '</tr>';
    				foreach($data as $date=>$data_numeros) {
    					echo '<tr><th scope="col">'. $date . '</th>';
    					foreach ($tblNumero as $numero) {
    						 if (isset($data_numeros[$numero])) {
    								$points = $data_numeros[$numero]['points'];
    								$pickup = $data_numeros[$numero]['pickup'];
    						  }
    						 else {
    								$points = '';
    								$pickup = '';
    						 }
    						 echo '<td>' . $points . ' - ' . $pickup . '</td>';
    					 }
    					 echo '</tr>';
    				}
    				echo '<tr><th scope="col">Total</th>';
    				$result2 = mysql_query('SELECT DISTINCT Numero FROM tournee_exa ORDER BY Numero');
    				while($row= mysql_fetch_array($result2)) {
    					$num = $row['Numero'];
    					$nb_pt="SELECT SUM(Nb_pt_liv) AS nb_pt, SUM(Pickup) AS pick FROM tournee_exa WHERE Numero ='$num' AND MONTH(Date_liv) = MONTH(Now()) AND YEAR(Date_liv) = YEAR(Now()) ORDER BY Numero";
    					$req_nb_pt=mysql_query($nb_pt);
    					$tab_nb_pt=mysql_fetch_array($req_nb_pt) ;
    					echo '<th  scope="col">'.$tab_nb_pt["nb_pt"].' - '.$tab_nb_pt["pick"].'</th>';
    				}
    				echo '</tr></table>'; 
    			}
    			?>
    			</div>
    			<div data-role="footer">
    				<div class="ui-grid-b">
    					<div class="ui-block-a"></div>
    					<div class="ui-block-b"><a href="exa.php" data-role="button" data-type="horizontal">Mes tournées</a><h4 style="text-align:center">&copy; Aldana - Antony 2013</h4></div>
    					<div class="ui-block-c"></div>
    				</div><!-- /grid-b -->
    			</div><!-- /Pied de page -->
     
    		</div>
    	</body>
    </html>
    J'explique mon code, on peut afficher les tournées en choisissant quel mois et quelle année. Quand on a rien saisi, par défaut le tableau affiche les tournées du mois en cours. Sinon rien de bien particulier, j'utilise jQueryMobile.

    Si vous avez besoin du code d'autres pages ou quoi que ce soit, n'hésitez pas à me le demander.

    Merci beaucoup pour votre aide!

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 79
    Points : 62
    Points
    62
    Par défaut
    Je viens ajouter des nouvelles informations. En interrogeant la base de données directement en saisissant des requêtes SQL dans phpmyadmin, je me suis aperçu que lorsque je demande de me retourner la somme des colis livrés ou des ramasses et bien j'obtiens "NULL-NULL" sur toutes les tournées exceptée la "25.5".
    De plus, je n'obtiens aucun résultat lorsque j'interroge la BDD en me demandant de retourner les valeurs des champs nb_colis_livrés ou ramasses, toujours excepté, pour la tournée "25.5".

    Voici les requêtes:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT SUM( Nb_pt_liv ) AS nb_pt, SUM( Pickup ) AS pick
    FROM tournee_exa
    WHERE Numero =  '43.1'
    Résultat:
    nb_pt pick
    NULL NULL
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT SUM( Nb_pt_liv ) AS nb_pt, SUM( Pickup ) AS pick
    FROM tournee_exa
    WHERE Numero =  '25.5'
    Résultat:
    nb_pt pick
    4 4
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Nb_pt_liv AS nb_pt, Pickup AS pick
    FROM tournee_exa
    WHERE Numero =  '25.5'
    Résultat:
    nb_pt pick
    3 3
    1 1
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Nb_pt_liv AS nb_pt, Pickup AS pick
    FROM tournee_exa
    WHERE Numero =  '43.1'
    Résultat:
    "MySQL n'a retourné aucun enregistrement."
    (j'ai pris '43.1' à titre d'exemple, mais ça ne fonctionne avec aucune autre non plus, sauf la '25.5').

    Je précise que les structures entre les tables tnt et exapaq sont identiques.
    Je trouve ça quand même vraiment bizarre que ça ne fonctionne que pour la tournée "25.5" et aucun des autres...

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    "MySQL n'a retourné aucun enregistrement."
    Tu n'as pas l'air de réagir sur ce message pourtant assez clair.

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 79
    Points : 62
    Points
    62
    Par défaut
    J'imagine qu'il pense qu'il n'y a aucune donnée à retourner pourtant c'est pas faute d'avoir des données inscrites dans la table, comme on peut le voir dans l'image du tableau. Peux tu m'en apprendre plus?

  5. #5
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 599
    Points : 887
    Points
    887
    Par défaut
    Bonjour
    indice : dans le tableau que tu montres, la colonne '25.5' est la seule pour laquelle la ligne 'Total' contient une valeur ...bizarre. tu verifies la cohérence des données rentrées ?

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 79
    Points : 62
    Points
    62
    Par défaut
    Bonjour
    Et bien toutes les données sont saisies de la même manière. C'est à dire via un formulaire au sein du site. Donc il n'y a pas de différence propre quant aux données pour la tournée 25.5 et les autres.
    Je ne comprends absolument pas pourquoi il y a cette exception pour la tournée 25.5...

  7. #7
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 599
    Points : 887
    Points
    887
    Par défaut
    Tu ne répond pas à la question : pourquoi dans ton tableau général, la seule cellule 'Total' remplie est celle de '25.5' ?

  8. #8
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 79
    Points : 62
    Points
    62
    Par défaut
    Et bien si j'avais la réponse je serais pas sur le forum ^_^
    C'est là qu'est mon interrogation, pourquoi cela fonctionne-t-il uniquement pour la tournée 25.5 alors qu'il n'y a pas de différence avec les autres, ou du moins pas à ma connaissance...

  9. #9
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 599
    Points : 887
    Points
    887
    Par défaut
    Oups, lu trop vite ...
    En revanche il y a peut être à vérifier que 43.1 n'est pas entré 43,1

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Fournis nous un dump de ta table tournee_exa, ça ira plus vite.

  11. #11
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 79
    Points : 62
    Points
    62
    Par défaut
    Pas de problème, voici la table 'tournee_exa':

    Code sql : 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
    -- phpMyAdmin SQL Dump
    -- version 3.1.5
    -- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>
    --
    -- Serveur: a.j.*****.sql.free.fr
    -- Généré le : Ven 22 Novembre 2013 à 10:11
    -- Version du serveur: 5.0.83
    -- Version de PHP: 5.3.9
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
    --
    -- Base de données: `a_j_***** `
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `tournee_exa`
    --
     
    CREATE TABLE IF NOT EXISTS `tournee_exa` (
      `ID_EXA` int(11) NOT NULL auto_increment,
      `Numero` float NOT NULL,
      `Nb_pt_liv` int(3) NOT NULL,
      `Pickup` int(3) NOT NULL,
      `Chauffeur` varchar(255) collate latin1_general_ci NOT NULL,
      `Date_liv` date NOT NULL,
      `Email_exa` varchar(255) collate latin1_general_ci NOT NULL,
      PRIMARY KEY  (`ID_EXA`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=55 ;
     
    --
    -- Contenu de la table `tournee_exa`
    --
     
    INSERT INTO `tournee_exa` (`ID_EXA`, `Numero`, `Nb_pt_liv`, `Pickup`, `Chauffeur`, `Date_liv`, `Email_exa`) VALUES
    (45, 24.1, 1, 1, ' ***** Jimmy', '2013-11-17', '***** @orange.fr'),
    (46, 24.2, 1, 1, ' ***** Jimmy', '2013-11-17', '***** @orange.fr'),
    (43, 43.1, 685, 453, ' ***** Jimmy', '2013-10-17', '***** @orange.fr'),
    (44, 25.5, 3, 3, ' ***** Jimmy', '2013-11-17', '***** @orange.fr'),
    (38, 25.5, 1, 1, ' ***** Jimmy', '2013-10-11', '***** @orange.fr'),
    (39, 25.4, 1, 1, ' ***** Jimmy', '2013-11-11', '***** <a href="mailto:s@orange.fr">s@orange.fr</a>'),
    (40, 24.1, 40, 40, ' ***** Jimmy', '2013-11-11', '***** @orange.fr'),
    (41, 43.1, 40, 17, ' ***** virgile', '2013-11-12', '***** @gmail.com'),
    (42, 43.2, 9, 9, ' ***** Jimmy', '2013-11-17', '***** @orange.fr'),
    (37, 24.1, 1, 1, ' ***** Jimmy', '2013-11-11', '***** @orange.fr'),
    (47, 25.1, 1, 1, ' ***** Jimmy', '2013-11-17', '***** @orange.fr'),
    (48, 25.2, 1, 1, ' ***** Jimmy', '2013-11-17', '***** @orange.fr'),
    (49, 25.3, 1, 1, ' ***** Jimmy', '2013-11-17', '***** @orange.fr'),
    (50, 25.6, 1, 1, ' ***** Jimmy', '2013-11-17', '***** @orange.fr'),
    (51, 28.1, 1, 1, ' ***** Jimmy', '2013-11-17', '***** @orange.fr'),
    (52, 28.2, 1, 1, ' ***** Jimmy', '2013-11-17', '***** @orange.fr'),
    (53, 43.1, 1, 1, ' ***** Jimmy', '2013-11-17', '***** @orange.fr'),
    (54, 43.2, 1, 1, ' ***** Jimmy', '2013-11-17', '***** @orange.fr');

    Et voici à titre de comparaison la tournee_tnt:

    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
    -- phpMyAdmin SQL Dump
    -- version 3.1.5
    -- http://www.phpmyadmin.net
    --
    -- Serveur: *****.sql.free.fr
    -- Généré le : Ven 22 Novembre 2013 à 10:17
    -- Version du serveur: 5.0.83
    -- Version de PHP: 5.3.9
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
    --
    -- Base de données: `*****`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `tournee_tnt`
    --
     
    CREATE TABLE IF NOT EXISTS `tournee_tnt` (
      `ID_TNT` int(11) NOT NULL auto_increment,
      `Numero` float NOT NULL,
      `Nb_pt_liv` int(3) NOT NULL,
      `Pickup` int(3) NOT NULL,
      `Chauffeur` varchar(255) collate latin1_general_ci NOT NULL,
      `Date_liv` date NOT NULL,
      `Email_tnt` varchar(255) collate latin1_general_ci NOT NULL,
      PRIMARY KEY  (`ID_TNT`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=27 ;
     
    --
    -- Contenu de la table `tournee_tnt`
    --
     
    INSERT INTO `tournee_tnt` (`ID_TNT`, `Numero`, `Nb_pt_liv`, `Pickup`, `Chauffeur`, `Date_liv`, `Email_tnt`) VALUES
    (1, 155, 69, 3, ' ***** Antony', '2013-06-05', 'test'),
    (7, 113, 54, 42, ' ***** Antony', '2013-10-25', 'test'),
    (6, 100, 10, 50, ' ***** Antony', '2013-10-17', 'test'),
    (5, 135, 10, 5, ' ***** Jimmy', '2013-10-13', '*****@orange.fr'),
    (8, 888, 3, 8, ' ***** Antony', '2013-10-17', 'test'),
    (9, 999, 96, 63, ' ***** Antony', '2013-10-17', 'test'),
    (10, 455, 44, 30, ' ***** Jimmy', '2013-10-18', '*****@orange.fr'),
    (11, 155, 20, 20, ' ***** Jimmy', '2013-10-18', '*****@orange.fr'),
    (12, 555, 55, 50, ' ***** Antony', '2013-10-19', 'test'),
    (15, 20, 5, 5, ' ***** Antony', '2013-10-19', 'test'),
    (14, 200, 1, 1, ' ***** Antony', '2013-10-19', 'test'),
    (16, 133, 5, 5, ' ***** Antony', '2013-10-19', 'test'),
    (17, 645, 51, 21, ' ***** Jimmy', '2013-10-19', '*****@orange.fr'),
    (18, 113, 666, 666, ' ***** Jimmy', '2013-10-20', '*****@orange.fr'),
    (19, 136, 7, 7, ' ***** Jimmy', '2013-10-20', '*****@orange.fr'),
    (20, 113, 60, 10, ' ***** Jimmy', '2013-10-10', '*****@orange.fr'),
    (21, 150, 85, 96, ' ***** Jimmy', '2013-10-25', '*****@orange.fr'),
    (22, 113, 15, 12, ' ***** Antony', '2013-10-23', 'test'),
    (23, 157, 28, 7, ' ***** Jean Sébastien', '2013-11-07', '*****@sfr.fr'),
    (24, 157, 28, 7, ' ***** Jean Sébastien', '2013-11-07', '*****@sfr.fr'),
    (25, 117, 99, 99, ' ***** Jimmy', '2013-11-11', 'a*****@orange.fr'),
    (26, 152, 31, 7, ' ***** virgile', '2013-11-12', '*****@gmail.com');

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-ce que "Numero" est un vrai nombre décimal (25,5) ou un code de référence (25.5) ?

    Si c'est un décimal ta requête doit être
    Si c'est un code, ta colonne "Numero" devrait être un type VARCHAR par exemple.

  13. #13
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 79
    Points : 62
    Points
    62
    Par défaut
    Bon et bien c'est résolu! Tu as raison, il fallait utiliser le type varchar pour la colonne 'Numero'
    J'en reviens pas que le problème soit résolu... MERCI

    Juste une petite question... Tu en es venu comment à penser qu'il faudrait utiliser varchar plutôt que float?
    Ça a un rapport avec le fait que je souhaitais faire la somme de nombres à virgule, du coup ça bloquait?

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ta requête n'était pas cohérente par rapport au type de données
    Dans la table tu avais le chiffre 43.1 et dans ta requête tu testais la chaine "43.1"

    Pour le choix du type de colonne c'est question de logique : si numéro est un nombre qui va être manipulé mathématiquement, c'est bien un float ; si c'est une référence, c'est plutôt une chaine.

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

Discussions similaires

  1. [MySQL] Affichage résultat requête SQL dans page HTML comme un tableau
    Par joxbl dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/03/2011, 14h26
  2. PB Affichage résultat requêtes
    Par Sophie51 dans le forum JDBC
    Réponses: 4
    Dernier message: 20/06/2007, 11h09
  3. [SQL] Affichage résultat requête sur 5 colonnes
    Par tondeuz dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 18/06/2007, 16h14
  4. Résultat requête incohérent avec DAO
    Par ajuveneton dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/06/2007, 17h02
  5. [SQL] Affichage résultat requête dans un tableau, bouton affichage page
    Par megapacman dans le forum PHP & Base de données
    Réponses: 35
    Dernier message: 18/05/2006, 16h42

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