8791 sujets

Développement web côté serveur, CMS

bonjour,
voici 1 bout de script qui marche qu'a moitié: la soluce doit etre simple, mais je ne la trouve pas, désolé Smiley fache

<?php
session_start();
$id = $_SESSION['id'];

include ("connexion.php");
 $requete = mysql_query("SELECT stock_recipient, qstock_recipient FROM membres WHERE id = ". $id ." ") or die(mysql_error());
$data= mysql_fetch_assoc($requete);

if ($data['stock_recipient']=='xx.gif' && $data['qstock_recipient'] >25) {
include'alerte_surcharge.htm';

}

else if ($data['stock_recipient']=='yy.gif' && $data['qstock_recipient'] >25) {
include'alerte_surcharge.htm';

}
else {

echo "recipient pas bon" ;

}
?> 

le soucis vient de la fin du script (le "echo"...) qui s'affiche alors qu'il ne devrait pas !
dans ce cas, il faut ensuite repasser par la fleche arriere du navigateur pour que la suite du programme s'effectue normalement...
c'est comme si c'était un problème d'imbrication (ou de désimbrication?) au niveau du code
Salut Rouge Smiley smile ,

ben à voir comme ça les tests ont l'air corrects Smiley rolleyes ... tout dépend des valeurs de ta table...

A noter qu'on peut remplacer else if par elseif.

A+
Je crois que ton problème vient du else tout seul en effet le else if fait comme si c'était en vrai else, la seul différence est qu'il prend comme le if une condition mais normalement apès tu peut pas lui coller de else

Enfin il me semble..
Salut,
rollergirl a écrit :
Enfin il me semble..
Non, non Smiley cligne : un petit extrait tiré du lien sur elseif :
a écrit :
En PHP, vous pouvez aussi écrire "else if" en deux mots et son comportement sera identique à la version en un seul mot. La sémantique des deux expressions est légèrement différente, mais au bout du compte, le résultat sera exactement le même.
et pour s'en convaincre il suffit d'exécuter le code suivant puis de remplacer "else if" par "elseif" :
<?php
for ($i = 1; $i < 4; $i++) {
	echo 'i = '.$i.' => ';
	if ($i == 1) {
		echo 'on est dans le if ';
	}
	else if ($i == 2) {
		echo 'on est dans le else if';
	}
	else {
		echo 'on est dans le else';
	}
	echo '<br />';
}
?>

Il me semble juste avoir lu que le elseif était optimisé puisqu'il n'effectue qu'un test au lieu de deux...


A+ Smiley smile
Modifié par Heyoan (14 May 2008 - 20:08)
juste après ton mysql_fetch_assoc(), rajoutes :

var_dump($data);


Ça va te montrer le contenu du tableau...