Select en fonction d'un champ

Répondre
tintindelacite
le 17/02/2008 à 10:46
tintindelacite
Bonjour, j'ai une base avec 8 champs
id auto, nom_prenom varchard, statut varchard,id_journee int, homme_match varchard, note float,but int, commentaire text, dans un premier select j'affiche la id_journee, et homme_match comme ceci
<?php
$sql = "SELECT id_journee,nom_prenom FROM stats_joueurs WHERE homme_match='oui' ORDER BY 'id_journee'DESC LIMIT 1";
// on envoie la requête
$result = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

while($val = mysql_fetch_array($result)){
echo("<TR><TD COLSPAN=2 bgcolor='$coul3'>");
echo $val['id_journee'];
echo("</TD><TD COLSPAN=4 bgcolor='$coul3'>");
echo $val['nom_prenom'];
echo "</TR>";
echo "</TABLE>";
?>

ça sa fonctionne ensuite j'ai une entête de table en html et je souhaiterai afficher les champs statut,nom_prenom, note,but,commentaire, en fonction de id_journee du premier select et la il m'affiche n'importe quelle journee si je laisse les journee précédente dans la table
<?php
$sql = "SELECT id_journee,statut,nom_prenom,note,but,commentaire FROM stats_joueurs WHERE id_journee ORDER BY'id_journee'DESC LIMIT 0,16";
// on envoie la requête
$result = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

while($val = mysql_fetch_array($result)){
if($cpt % 2 == 0){ // Test si l'on se trouve sur une ligne 'paire' ou 'impaire'

// Dans le cas d'une ligne 'paire'
echo("</td><td bgcolor='$coul1'>");
echo $val["statut"];
echo("</td><td colspan=1 bgcolor='$coul1'>");
echo $val["nom_prenom"];
echo("</td><td colspan=1 bgcolor='$coul1'>");
echo $val["note"];
echo("</td><td colspan=1 bgcolor='$coul1'>");
echo $val["but"];
echo("</td><td colspan=2 bgcolor='$coul1'>");
echo $val["commentaire"];
echo("</td></tr>");
$cpt++;
}
else{
// Dans le cas d'une ligne 'impaire'
echo("</td><td colspan=1 bgcolor='$coul2'>");
echo $val["statut"];
echo("</td><td colspan=1 bgcolor='$coul2'>");
echo $val["nom_prenom"];
echo("</td><td colspan=1 bgcolor='$coul2'>");
echo $val["note"];
echo("</td><td colspan=1 bgcolor='$coul2'>");
echo $val["but"];
echo("</td><td colspan=1 bgcolor='$coul1'>");
echo $val["commentaire"];
echo("</td></tr>");
$cpt++;
}
}
?>

Voila si je pouvez avoir un idee ca serait sympa
@+
tintindelacite
le 17/02/2008 à 12:36
tintindelacite
Merci heu je crois que je me suis mal exprimé... en fait mon select c'est une requête sur une table de la bdd pour un affichage...je ne souhaite pas faire une liste déroulante mais juste afficher les données de la base sous forme de tableau et uniquement les enregistrements qui corresponde a la derniere journee champ(id_journee) .
Merci @+
Keika
le 19/02/2008 à 16:24
Keika
la:
<?php
$sql = "SELECT id_journee,statut,nom_prenom,note,but,commentaire FROM stats_joueurs WHERE id_journee ORDER BY'id_journee'DESC LIMIT 0,16";
?>


Si tu ne mets pas WHERE id_journee="quelquechose", ca ne peut donc rien selectionner...
Le PHP --> C'est dur !
tintindelacite
le 19/02/2008 à 23:00
tintindelacite
Slt, je comprends mais dans id_journee le quelque chose demarre a 01 et est actuellement à 12 et se teminera à 18.comment je peut traduire where id_journee="dernier enregistrement" .....
Je te remercis de te pencher sur mon probleme...
@+
LA GLOBULE
le 19/02/2008 à 23:45
LA GLOBULE
En faisant un ORDER BY ... LIMIT 1 : les ... identifient le champs et l'ordre (ASC / DESC) sur lequel tu veux trier.

Exemple : SELECT truc FROM table ORDER BY id DESC LIMIT 1 <= selectionne le truc correspondant à l'id le plus grand.
tintindelacite
le 20/02/2008 à 15:06
tintindelacite
Slt, ouais le truc c'est que je souhaise afficher 14 enregistrements ayant le même champ id_journée, si je mets LIMIT 1 ....j'ai un seul enregistrement qui apparait...non?
@+
Amery
le 20/02/2008 à 16:43
Amery
Si j'ai bien compris... Il faut que tu détermines ton journee_id avant de faire ta requête et ensuite tu le mets dedans comme filtre :

<?php
$sql = "SELECT id_journee,statut,nom_prenom,note,but,commentaire FROM stats_joueurs WHERE id_journee=journee_id;
?>
tintindelacite
le 20/02/2008 à 16:56
tintindelacite
Slt, id_journée c'est un champ (int) dans lequel je rentre les journées de championnat sous la forme 01,02,03,ect....et je voudrais afficher les infos de la derniére journée soit pour cette semaine id_journée =12 ...comment déterminer id_journee avant la requête...
Merci Amery d'en tout les cas..
Amery
le 20/02/2008 à 17:11
Amery
Tu fais une première requête pour récupérer la valeur max de id_journee :

<?php

$sql = "SELECT max(id_journee) as journee FROM stats_joueurs";
?>

Tu récupères ta valeur "journee".
Il y a certainement une manière de faire tout en une seule requête, mais je ne sais pas faire... smiley
Répondre
LoadingChargement en cours