Page 1 sur 1

utilisations consecutives d'une requete !?

Posté : 16 juin 2005, 23:20
par dark_vidor
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

Posté : 16 juin 2005, 23:43
par Cyrano
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:

Posté : 16 juin 2005, 23:50
par dark_vidor
ouais j'ai pijé merci beaucoup :wink:

Posté : 16 juin 2005, 23:51
par Cyrano
[Résolu] :?:

Posté : 16 juin 2005, 23:54
par dark_vidor
on va dire pour le moment oui :D
tant que j'ai pas testé :roll: ^^ m'enfin ça devrait aller

encore merci :wink:

Posté : 17 juin 2005, 11:32
par dark_vidor
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"]
?>