nouveau pb de boucles....

Eléphant du PHP | 250 Messages

19 sept. 2006, 22:58

la premiere s'effectue bien mais pas la seconde (que j'ai "colorée")
<?php
session_start() ;
?>
<?php
$db= mysql_connect(localhost, xxxx, xxxx) or die("Impossible de se connecter à la base de données"); 	   
 mysql_select_db('xxxx',$db)  or die('Erreur de selection base'.mysql_error());
$sql= " SELECT objetutil1 FROM membres WHERE id = ". $id; 
$res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
($data = mysql_result($res,0,'objetutil1'));
if ($data== './objet/rien.gif')
       {
$sql = "UPDATE membres SET objetutil1= stock1, stock1='./objet/rien.gif',  qobjetutil1=qstock1, qstock1=0, uobjetutil1=ustock1 WHERE id = ".$id; 
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
if($res)
{
$_SESSION['objetutil1']= $_SESSION['stock1'];
$_SESSION['stock1']= './objet/rien.gif';
$_SESSION['ustock1']= $_SESSION['ustock1'];
$_SESSION['qobjetutil1']= $_SESSION['qstock1'];
$_SESSION['qstock1']= $_SESSION['qstock1']=0;
$_SESSION['uobjetutil1']= $_SESSION['ustock1'];
}
[color=red]else
{
$sql= " SELECT objetutil2 FROM membres WHERE id = ". $id; 
$res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
($data = mysql_result($res,0,'objetutil2'));
if ($data== './objet/rien.gif')
       {
$sql = "UPDATE membres SET objetutil2= stock1, stock1='./objet/rien.gif',  qobjetutil2=qstock1, qstock1=0, uobjetutil2=ustock1 WHERE id = ".$id; 
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
if($res)
{
$_SESSION['objetutil2']= $_SESSION['stock1'];
$_SESSION['stock1']= './objet/rien.gif';
$_SESSION['ustock1']= $_SESSION['ustock1'];
$_SESSION['qobjetutil2']= $_SESSION['qstock1'];
$_SESSION['qstock1']= $_SESSION['qstock1']=0;
$_SESSION['uobjetutil2']= $_SESSION['ustock1'];
}[/color]
}
else
{
  echo '<center><font color="red">Désolé, mais vous utilisez vraiment tout ou bien encore deux objets de meme nature. Veuillez ranger au moins quelque chose !</font></center>
<center><font color="black"><a href="page_membre.php">retour page membre</a></font></center>';
}
}
header("Location: page_membre.php");
}
mysql_close();
?>
En fait, si "l'objetutil1" est vide, c'est ok, mais s'il n'est pas dispo, l'objetutil2 n'est pas sollicité et le code affiche une page blanche.

Eléphant du PHP | 250 Messages

19 sept. 2006, 22:59

:? hum, désolé d'avoir voulu colorer la partie litigieuse (ca n'a pas fonctionné) mais cela doit etre assez clair :wink:

Mammouth du PHP | 19672 Messages

19 sept. 2006, 23:10

ça vaut drôlement la peine de se casser la tête pour te metre un code lisible pour que tu envoies à nouveau ce torchon :shock:
As-tu lu attentivement ce que j'ai écrit sur l'indentation ?

Donne-toi une chance et remets ça au propre, je le ferai plus à ta place, faut pas pousser là. :evil:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 7 Messages

20 sept. 2006, 14:12

une chose est sur c'est que la prog sans indentation ne mêne à rien.
comment tu veux relire le code, c'est impossible.
Tu vas peut etre t'en sortir aujourd'hui ou demain, mais dans 2 ans qd tu vas relire ton code tu ne comprendras plus rien.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

20 sept. 2006, 14:41

la premiere s'effectue bien mais pas la seconde (que j'ai "colorée")

En fait, si "l'objetutil1" est vide, c'est ok, mais s'il n'est pas dispo, l'objetutil2 n'est pas sollicité et le code affiche une page blanche.
C'est donc un des ELSE qui ne s'effectue pas ?

Mais dans ce ELSE tu as des IF sans ELSE, comment veux tu débugger ? Mets donc des ELSE partout (avec juste echo 'telle condition n\'est pas remplie')
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 250 Messages

21 sept. 2006, 22:20

$sql = "UPDATE membres SET objetutil2= stock1, stock1='./objet/rien.gif',  qobjetutil2=qstock1, qstock1=0, uobjetutil2=ustock1 WHERE id = ".$id; 
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
if($res)
{
$_SESSION['objetutil2']= $_SESSION['stock1'];
$_SESSION['stock1']= './objet/rien.gif';
$_SESSION['ustock1']= $_SESSION['ustock1'];
$_SESSION['qobjetutil2']= $_SESSION['qstock1'];
$_SESSION['qstock1']= $_SESSION['qstock1']=0;
$_SESSION['uobjetutil2']= $_SESSION['ustock1'];
}
}
else
{
  echo '<center><font color="red">Désolé, mais vous utilisez actuellement trop d\'objets. Veuillez ranger ou abandonner sur place quelque chose !</font></center>
<center><font color="black"><a href="page_membre.php">retour page membre</a></font></center>';
}
}
header("Location: page_membre.php");
mysql_close();
?>
L'identation n'est pas au rendez vous, mais voici la fin du code et cela fonctionne.
je ne veux pas trop pollue rle forum avec mes "torchons"
:D

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

22 sept. 2006, 09:52

A quoi servent les doubles accolades ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.