Problème de while ne fonctionnant pas [Résolu]

Signaler
Messages postés
41
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
9 septembre 2008
-
Messages postés
41
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
9 septembre 2008
-
Bonjour j'ai un problème avec ma fonction while qui devrait m'afficher un résultat sous forme d'un tableau. Voici mon code :

<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('sonarty');
$requete = mysql_query(\"SELECT id,x,y FROM jeu\") or die(mysql_error());
$nombre_ligne=10;
$nombre_colonne=10; for ($i=1;$i <= $nombre_ligne;$i++)
{
echo'----

';
for($i_=1;$i_ <= $nombre_colonne;$i_++)
{
while ($aff = mysql_fetch_array($requete) )
{if($i $aff['x'] AND $i_ $aff['y']){
echo'&nbsp;,
'; }
else{ echo'&nbsp;,
'; }
}
}
echo'
';
}
?>

Sa ne m'affiche que 2 cases alors que sa devrait former un tableau de 10 colonnes ainsi que 10 lignes. Quand j'enlève le while tout fonctionne, aidez-moi please !
Tony123945

11 réponses

Messages postés
135
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
18 avril 2006

mais tu peux faire tout ca sans les "for"
en utilisant juste le while !!!!
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Tu fais la boucle comme je l'ai proposé dans l'autre post, et, tu peux insérer manuellement une case vide au milieu:
if( ... )
{
echo '<td>&nbsp;</td>';
$tr++;
}

Il faudrait que tu précises quand tu veux des cases vides!

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
135
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
18 avril 2006

salut,
je comprends pas vraiment ce que t'essai de faire avec ce code !!!!!!!
Messages postés
41
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
9 septembre 2008

Ba en fait j'éssaye de construire un mini jeu en php, et je fais une première boucle for permettant les ligne de la table : <tr> et à l'interieur de cette boucle je fais les colonnes : <td> et je construis la table entière. Avec le while je récupère les personnages enregistrés et leur positions x et y pour les placer sur le plateau.

Tony123945
Messages postés
41
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
9 septembre 2008

non car le plateau ne sera pas crée et il n'y aura que le nombre de personnages enregistrés et puis la boucle s'arretera
. Moi ce que je veux c'est avoir un tableau par exemple :
<tr> // Ligne 1
<td class="td></td> //Colonne 1
<td class="td></td> //Colonne 2
<td class="td></td> //Colonne 3
<td class="td></td> //Colonne 4
<td class="td></td> //Colonne 5
</tr>
<tr> // Ligne 2

<td class="td></td> //Colonne 1
<td class="td></td> //Colonne 2

<td class="td></td> //Colonne 3

<td class="td></td> //Colonne 4

<td class="td></td> //Colonne 5

</tr>
<tr> // Ligne 3

<td class="td></td> //Colonne 1
<td class="td></td> //Colonne 2

<td class="td></td> //Colonne 3

<td class="td></td> //Colonne 4

<td class="td></td> //Colonne 5

</tr>
<tr> // Ligne 4

<td class="td></td> //Colonne 1
<td class="td></td> //Colonne 2

<td class="td></td> //Colonne 3

<td class="td></td> //Colonne 4

<td class="td></td> //Colonne 5

</tr>
<tr> // Ligne 5

<td class="td></td> //Colonne 1
<td class="td></td> //Colonne 2

<td class="td></td> //Colonne 3

<td class="td></td> //Colonne 4

<td class="td></td> //Colonne 5

</tr>

Et par exemple un personnage qui a x=5 et y=3 ira a la ligne 5 de la colonne 3 et sera affichée comme sa par exemple :
<tr> // Ligne 5


<td class="td></td> //Colonne 1

<td class="td></td> //Colonne 2


<td class="td>PERSO x=5; y=3</td> //Colonne 3


<td class="td></td> //Colonne 4


<td class="td></td> //Colonne 5


</tr>
Tony123945
Messages postés
41
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
9 septembre 2008

Personne n'a une idée please !

Tony123945
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
http://www.phpcs.com/infomsg/GALERIE-IMAGE_658422.aspx

Regarde ca ma réponse, il me semble que c'est ce que tu veux... :)
Commence avec ca et dis nous si ca coince!

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
41
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
9 septembre 2008

Je pense que sa ne fonctionnerais pas car la boucle s'arrete au nombre d'enregistrements dans mysql. Il faudrait aussi qu'il y ait des <td></td> ne contenant rien. Voila le code que j'aimerais faire et qui marche mais en utilisant mysql :
<?php
$nombre_ligne=20;
$nombre_colonne=20;

if(empty($_GET['changex']) || empty($_GET['changey']) || $_GET['changex'] == '' || $_GET['changey'] == '')
{
$aff['x'] = 1;
$aff['y'] = 1;
}
else
{
$x = $_GET['changex'];
$y = $_GET['changey'];
$aff['x'] = $x;
$aff['y'] = $y;
}

for ($i=1;$i <= $nombre_ligne;$i++)
{
echo'<tr>
';
for($i_=1;$i_ <= $nombre_colonne;$i_++)
{

if($i $aff['x'] AND $i_ $aff['y']){
echo'<td class="perso">&nbsp;</td>
'; }
else{ echo'<td class="td" onClick="window.location.replace(\'carte_jeu_demarrer.php?changex='.$i.'&changey='.$i_.'\')">&nbsp;</td>
'; }



}
echo'</tr>

';
}

?>

Tony123945
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Tu peux gérer ca manuellement de la boucle...

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
41
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
9 septembre 2008

J'ai pas très bien compris, peux-tu réexpliquer s'il te plait ?

Tony123945
Messages postés
41
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
9 septembre 2008

Oui mais le but du jeu est que le personnage peut bouger comme il le souhaite et il y a aussi des elements de décors. J'ai trouvé la solution sur le site du zero :

<style>
.ligneMap {
height: 30px;
clear: left;
cursor:pointer;
}
.caseMap {
width: 30px;
height: 30px;
float: left;
background-image: url('arene_fond.png');
border: 0px solid white;
}
.oui
{
background-color:red;
}
.coucou
{
background-color:green;
}
</style>
<?php

mysql_connect('localhost', 'root', '');
mysql_select_db('zinsearch');
$pseudo = 'tony4758';

if(empty($_GET['changex']) || empty($_GET['changey']) || $_GET['changex'] == '' || $_GET['changey'] == '')
{}
else
{
$x = $_GET['changex'];
$y = $_GET['changey'];mysql_query("UPDATE persos SET posx '$x', posy '$y' WHERE nom = '$pseudo'") or die(mysql_error());
}

$recup = mysql_query("SELECT nom,posx,posy FROM persos WHERE nom='$pseudo'") or die(mysql_error());

$fetch = mysql_fetch_assoc($recup);

$posx = $fetch['posx'];
$posy = $fetch['posy'];

$compteurX = $posx - 4;
$compteurY = $posy + 4;

$finX = $posx + 4;
$finY = $posy - 4;

$debutX = $posx - 4;

while($compteurY >= $finY) {
echo '
', "\n";

while($compteurX <= $finX) {
echo "\t\t\t\t\t\t\t", '
';
$test = mysql_query("SELECT nom,skin FROM persos WHERE posx='$compteurX' AND posy='$compteurY'") or die(mysql_error());
if(mysql_num_rows($test) == 1) {
$data = mysql_fetch_assoc($test);
echo '
&nbsp;
';
}
echo '
', "\n";
$compteurX++;
}

echo "\t\t\t\t\t\t", '
', "\n";
$compteurX = $debutX; // <===============ICI
$compteurY--;
}

mysql_close();

?>

Merci pour votre aide !!!

Tony123945