Page 1 sur 1

Récupérer et exploiter les données de ma table

Posté : 17 sept. 2008, 09:55
par Domi_d
Bonjour,

J'ai un souci concernant l'exploitation des données récupérer dans la requête suivante :

Code : Tout sélectionner

$result = mysql_query("SELECT * from equipes where division_equipe='$division_equipe' and groupe_equipe='$groupe_equipe' order by id asc") or die(mysql_error()); while ($ligne = mysql_fetch_array($result)) { echo $ligne["nom_equipe"]; }
A l'aide de ceci, je récupère et affiche bien les 10 équipes concernées dans ma table (ici division 2, groupe A) ce qui affiche :
Enregistrement 1
Enregistrement 2
Enregistrement 3
Enregistrement 4
Enregistrement 5
Enregistrement 6
Enregistrement 7
Enregistrement 8
Enregistrement 9
Enregistrement 10
Jusque là pas de souci.

Maintenant, et c'est bien là mon problème, je voudrais parmi c'est 10 enregistrements, piocher et extraire l'enregistrement de mon choix, de façon à reproduire un table de ce genre :

Code : Tout sélectionner

<table cellspacing="0" cellpadding="1" bgcolor="#ffffff"> <tr> <th colspan="3" bgcolor="#ff9933">&raquo; 1ère journée / 11-10-2009</th> </tr> <tr align="center"> <td width="170">Enregistrement 1</td><td>-</td><td width="170">Enregistrement 3</td> </tr> <tr align="center" bgcolor="#dfdfdf"> <td>Enregistrement 7</td><td>-</td><td>Enregistrement 9</td> </tr> <tr align="center"> <td>Enregistrement 5</td><td>-</td><td>Enregistrement 8</td> </tr> <tr align="center" bgcolor="#dfdfdf"> <td>Enregistrement 10</td><td>-</td><td>Enregistrement 2</td> </tr> <tr align="center"> <td>Enregistrement 4</td><td>-</td><td>Enregistrement 6</td> </tr> </table>
En gros, je souhaite récupérer l'enregistrement de mon choix en fonction de sa 'place' dans le résultat de ma requête, pour les disposer de la façon qui m'importe

Comment faire svp ?
Faut-il utiliser un array (); ?

----------------------------
Merci d'avance pour votre aide

Posté : 17 sept. 2008, 10:13
par guilt92
Bonjour,

Tu peux effectivement utiliser par exemple array_push() à chaque itération du while pour mettre les résultats dans un tableau, et ainsi afficher ce que tu veux par la suite.

Ce que je ne comprend pas c'est comment tu détermines l'ordre d'affichage ? Que se passe t il si tu récupères plus de 10 enregistrements, ou moins ?
Il faudrait établir une règle d'affichage qui permette de le faire directement dans le while si c'est possible dans ton cas...

Posté : 17 sept. 2008, 10:29
par Domi_d
Avec cette requête :

Code : Tout sélectionner

$result = mysql_query("SELECT * from equipes where division_equipe='$division_equipe' and groupe_equipe='$groupe_equipe' order by id asc") or die(mysql_error());
j'obtiendrais soit 10 résultats, soit 16 résultats en fonction de division_equipe.

En fait, j'enregistre mes équipes dans un ordre bien précis, puis les classes comme j'ai besoin à l'aide de ma reqûete : 'order by id asc'
De ce fait, l'enregistrement 1 correspond à l'id le plus bas, l'enregistrement 2 correspond à l'id le plus bas+1...

J'ordonne donc mes données lors de l'enregistrement.

Maintenant je voudrais pouvoir récupérer tel ou tel enregistrement en fonction de sa place dans le résultat de ma requête.

Comment faire svp ?

Posté : 17 sept. 2008, 10:42
par guilt92
Comme je te l'ai dit, tu peux stocker tes résultats dans un tableau :
$result = mysql_query("SELECT * from equipes where division_equipe='$division_equipe' and groupe_equipe='$groupe_equipe' order by id asc") or die(mysql_error()); 

$equipes = array();

while ($ligne = mysql_fetch_array($result)) 
{ 
array_push($equipe, $ligne["nom_equipe"]); 
}

//ainsi le tableau $equipe contient les enregistrement de 0 à 9

echo $equipe[5]; //affiche l'équipe 6
echo $equipe[0]; //affiche l'équipe 1
//etc


Posté : 17 sept. 2008, 10:49
par Domi_d
Génial !!

Merci beaucoup guilt92 :wink: !

--------------------
A bientôt

Posté : 17 sept. 2008, 10:53
par guilt92
De rien :).

Petite précision : je te déconseille le SELECT * pour des raisons de performance.
Selon ce que tu utilises préfère plutot par exemple :

SELECT nom_equipe FROM ...
ou
SELECT nom_equipe, division_equipe FROM ...

Posté : 17 sept. 2008, 10:56
par Domi_d
Ok, je modifie, merci pour tout !