Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/09/2011, 20h44   #1
Invité régulier
 
Homme
Inscription : septembre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations forums :
Inscription : septembre 2011
Messages : 5
Points : 7
Points : 7
Par défaut conversion php mysql

J'ai un code qui est fonctionnel sur mon serveur mysql (phpmyadmin) mais pas lorsque je le transforme en php
(je confirme que c'est le même serveur)

J'ai le code mysql suivant
SELECT annes, MIN(m5) FROM table WHERE m5 >0 GROUP BY annes

Le résultat est le suivant (résultat voulu)
1925 10
1926 60
1927 10
1928 30
1929 16


Lorsque j'intègre ceci dans le php, il me manque des chiffres
$req = 'SELECT annes, MIN(m5) FROM table WHERE m5 >0 GROUP BY annes';
1925
1926
1927
1928
1929

Si j'enlève le MIN(m5) par m5 mes chiffre revienne mais pas dans l'ordre que je voudrait
1925 10
1926 99
1927 10
1928 30
1929 16



Voici le contenu de ma BD
1925 10
1926 60
1926 99
1927 10
1928 30
1929 16
1930 0

Si vous avez un autre moyen d'avoir le résultat voulu en mysql ou corriger mon erreur, je suis preneur.
Je veut le plus petit résultat de chaque année sans les 0.
sod1721 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 20h56   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 123
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 123
Points : 8 475
Points : 8 475
montre ton code
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 21h12   #3
Invité régulier
 
Homme
Inscription : septembre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations forums :
Inscription : septembre 2011
Messages : 5
Points : 7
Points : 7
Par défaut code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
echo "<table border=1><tr>";
echo $req = 'SELECT annes, MIN(m5) FROM table WHERE m5 >0 GROUP BY annes LIMIT 50,5';
$query = mysql_query($req);
while ($data2 = mysql_fetch_array($query))
			{
				$year = $data2["annes"];
				$grade = $data2[m5];
 
				echo "<td>".$grade." ".$year."</td>";
 
			}
echo "</tr></table>";
sod1721 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 21h15   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 123
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 123
Points : 8 475
Points : 8 475
fait un print_r($data2) et tu comprendras, faut toujours vérifie ses valeurs d'entrées, du plus t'as pas mis les quotes dans
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/09/2011, 21h26   #5
Invité régulier
 
Homme
Inscription : septembre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations forums :
Inscription : septembre 2011
Messages : 5
Points : 7
Points : 7
Oui j'avais remarqué mes guillemets dans le $grade = $data2["m5"];
ta réponse ultra rapide a devancer mon edit post

Les valeurs sont bonne maintenant
Code :
1
2
3
4
5
Array ( [0] => 1925 [annes] => 1925 [1] => 10 [MIN(m5)] => 10 ) 
Array ( [0] => 1926 [annes] => 1926 [1] => 60 [MIN(m5)] => 60 ) 
Array ( [0] => 1927 [annes] => 1927 [1] => 10 [MIN(m5)] => 10 ) 
Array ( [0] => 1928 [annes] => 1928 [1] => 30 [MIN(m5)] => 30 ) 
Array ( [0] => 1929 [annes] => 1929 [1] => 16 [MIN(m5)] => 16 )
mais pourquoi elle n'affiche pas dans mon tableau???
1925 1926 1927 1928 1929


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
echo "<table border=1><tr>";
$req = 'SELECT annes, MIN(m5) FROM table WHERE m5 >0 GROUP BY annes LIMIT 50,5';
$query = mysql_query($req);
while ($data2 = mysql_fetch_array($query))
 
			{
				$year = $data2["annes"];
				$grade = $data2["m5"];
print_r($data2);
echo "<br>";
				echo "<td>".$grade." ".$year."</td>";
 
			}
echo "</tr></table>";
sod1721 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 21h32   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 123
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 123
Points : 8 475
Points : 8 475
c'est $datas['MIN(m5)'] pas $datas['m5'] ...
tu peut créer un alias si tu veux 'm5'

ps :
- inutile de faire un fetch_array utilise fetch_assoc
- utilise mysqli ou PDO_Mysql
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/09/2011, 21h34   #7
Invité régulier
 
Homme
Inscription : septembre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations forums :
Inscription : septembre 2011
Messages : 5
Points : 7
Points : 7
c'est réglé

Code :
$grade = $data2["MIN(m5)"];
merci
sod1721 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h31.


 
 
 
 
Partenaires

Hébergement Web