utilisations consecutives d'une requete !?

Eléphant du PHP | 231 Messages

16 juin 2005, 23:20

pour affficher un petit tableau recapitulatif des possession d'un joueur sur mon jeu puis ces possessions par planete je suis obliger de faire ça pour que ça fonctionne

on peut pas utiliser la meme requete deux fois de suite ??
$sql = "SELECT * FROM planetes WHERE players=".$_SESSION['id_user']."";
$req = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($req)==0) echo("Vous ne possédez pas de planètes !");
else
{
echo("<table width=400 align=center cellpadding=0 class=txt-biens cellspacing=1 bgcolor=#51260B><tr align=center style=\"padding-left: 25px; padding-top: 5px; padding-bottom: 5px;\" class=txt-tab-recap><td width=100 height=15>Plan&egrave;tes</td><td width=100>Salaire</td><td width=100>Unit&eacute;s</td><td width=100>Infrastructures</td></tr>");
while (list($id, $nom, $zone, $players, ...) = mysql_fetch_row($req))
{
...
}
echo("</table><br>");
}

$sql = "SELECT * FROM planetes WHERE players=".$_SESSION['id_user']."";
$req = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($req)==0) echo("Vous ne possédez pas de planètes !");
else
{

while (list($id, $nom, $zone, $players, ...) = mysql_fetch_row($req))
{
...
}
}
ça donne ça :

Image

Mammouth du PHP | 19672 Messages

16 juin 2005, 23:43

SI, il y a moyen d'utiliser la même :
<?php
$sql = "SELECT * FROM planetes WHERE players=".$_SESSION['id_user']."";
$req = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($req)==0)
{
    echo("Vous ne possédez pas de planètes !");
}
else
{
    // Création de tableaux pour les valeurs récupérées, exemple
    $id = array();
    $nom = array();
    $zone = array();
    $players = array();
    // Plus un compteur
    $nb_pl = 0;
    while ($liste = mysql_fetch_row($req))
    {
        // mise dans des tableaux des valeurs récupéréres
        array_push($id, $liste['id']);
        // etc...
        $nb_pl++;
    }
    ?>
<table width=400 align=center cellpadding=0 class=txt-biens cellspacing=1 bgcolor=#51260B>
  <tr align=center style=\"padding-left: 25px; padding-top: 5px; padding-bottom: 5px;\" class=txt-tab-recap>
    <td width=100 height=15>Plan&egrave;tes</td>
    <td width=100>Salaire</td>
    <td width=100>Unit&eacute;s</td>
    <td width=100>Infrastructures</td>
  </tr>
    <?php
    for($i = 0; $i < $nb_pl; $i++)
    {
        // ivi création d'une nouvelle ligne en récupérant les éléments dans les tableaux
    }
    ?>
</table>
<br>
    <?php
}
if(isset($nb_pl) && $nb_pl > 0)
{
    // ici on remet les curseurs au début pour les tableaux:
    reset($id);
    reset($nom);
    reset($zone);
    // etc.... et tu refais une boucle for() pour réutiliser les mêmes valeurs
}
?>
Suis les commentaires que j'ai mis, tu devrais pas avoir de mal à capter l'astuce.

_______________________________
Que l'astuce soit avec toi :langue:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 231 Messages

16 juin 2005, 23:50

ouais j'ai pijé merci beaucoup :wink:

Mammouth du PHP | 19672 Messages

16 juin 2005, 23:51

[Résolu] :?:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 231 Messages

16 juin 2005, 23:54

on va dire pour le moment oui :D
tant que j'ai pas testé :roll: ^^ m'enfin ça devrait aller

encore merci :wink:

Eléphant du PHP | 231 Messages

17 juin 2005, 11:32

y'a ça aussi
plus simple
<?php
define("MYSQL_HOST", "localhost");
define("MYSQL_USER", "root");
define("MYSQL_PWD", "");
define("MYSQL_BDD", "ma_base_de_données");

$db = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PWD);
@mysql_select_db(MYSQL_BDD, $db);
$query = "SELECT * FROM team ORDER BY id";
$result = @mysql_query($query);
while($row = @mysql_fetch_assoc($result)) {
	//... et on arrive ainsi au dernier tuple renvoyé par la requête
}

// On se repositionne sur le premier tuple
@mysql_data_seek($result, 0); 
// On se replace sur le premier tuple
$row = @mysql_fetch_assoc($result); // Il faut le relire
//On peut manipuler le tuple $row["mon_champ"]
?>