Page 1 sur 1

if / else / elseif ...

Posté : 01 févr. 2011, 22:06
par Meutledaron
Salut a tous,
Me voila confronter a un nouveau problème, j'ai imbriquer plusieurs if else mais le résultat n'est pas comme je le veux !
J'ai beaux chercher tout les moyens de combiner les if elseif !empty et tout mais toujours rien :

Voici mon code :
<?php
if ($_SESSION['affiche'] == "OUI" ) { //$_SESSION['affiche'] est définis a la page précédente
//Déclaration des variables
$id = $_SESSION['id'];
$pseudo = $_SESSION['pseudo'];

echo ('<b>Gerer mon compte :<b><br>');
echo ('<i><a href="changerpasse.php">Changer de mot de passe</a> - <a href="dest.php">Deconnexion</a></i> - <a href="delcompte.php"><b><i>Supprimer mon compte</b></i></a><br><br>');
echo ('<b>Gerer mes bannieres :<b><br>');
echo ('<a href="ajouterbann.php">Ajouter une banniere</a><br><br>');
echo ('<hr>');

include('../connexion.php');
$requete = "SELECT * FROM banniere WHERE pseudo = '$pseudo'" ;
$req = mysql_query($requete);
$count = mysql_num_rows($requete);
if ($count != "0") { //Si au moin 1 bannière a été trouver
while( $result = mysql_fetch_object( $req ) )
    {
echo ('Banniere : '.$result->nom.'<br>');
echo ('Adresse de destination : <a href="'.$result->url.'" target="_blank">'.$result->url.'</a><br>');
echo ('Nombre de clic : <ul><li>'.$result->clicin.' clic(s) d\'entrée <li>'.$result->clic.' clic(s) de sortie</ul><br>');
if($result->urlbann!="") { //Si aucune url n'est présente ca n'afrfiche pas une image vide [X]
echo ('<br><img src="'.$result->urlbann.'"><br>Lien de la banniere : '.$result->urlbann.'<br>'); }

echo ('Code html d\'affiliation : (a placer sur votre site)<br>');
echo ('<textarea rows="6" cols="58"><a href="http://www.geolor-thionville.fr/pub/in.php?id='.$result->id.'" target="_blank" alt="Visitez le site web de geolor-thionville"><img src="http://www.geolor-thionville.fr/pub/geolor.jpg" alt="Visitez le site web de geolor-thionville"></a></textarea>');
echo ('<br>Modifier la banniere - <a href="#" onClick="confirme('.$result->id.')">Supprimer cette banniere</a>');
echo ('<hr>');
}
}
else { //Si pas de bannière
echo ('<center>Oups, Vous n\'avez aucune banniere pour le moment.</center>');
}
mysql_close();
}
else {
echo ("<script>self.location='index.php';</script>\n");
}
?>
C'est au niveau du
else { //Si pas de bannière
echo ('<center>Oups, Vous n\'avez aucune banniere pour le moment.</center>');
}
Que ca me pose problème.

Re: if / else / elseif ...

Posté : 01 févr. 2011, 22:15
par xTG
Cela ne viendrait pas plutôt du fait que mysql_num_rows() renvoie un entier et non une chaîne de caractères ?

Re: if / else / elseif ...

Posté : 02 févr. 2011, 00:04
par moogli
hum, vu que php est permissif c'est un peu pareil, par contre je pense que plus d'infos sur le problème devrait aider à résoudre le problème, car, à priori, le code est bon, il faut savoir ce qui se passe parce que 'ça ne fait ce que je veux' et 'ça doit être de ce coté' c'est ppas des symptomes :)


@+

Re: if / else / elseif ...

Posté : 02 févr. 2011, 14:39
par Mazarini
Bonjour,

Tu pourrais faire des fonctions pour que les conditions et les boucles soient plus lisible.

Une autre méthode est de traiter les cas simple en premier comme par exemple :
if ($count = "0")
{
   echo ...;
   exit;
} 

Re: if / else / elseif ...

Posté : 02 févr. 2011, 19:51
par Meutledaron
en faite quand aucun enregistrement n'est trouver donc $count devrais etre a 0 le message "Oups, Vous n'avez aucune banniere pour le moment."

Le script en action est visible ici : http://www.geolor-thionville.fr/pub/compte/

Un compte de test a été créer : Pseudo : test mot de passe : test

Pour le moment aucune bannière n'est sur le compte et théoriquement le message devrais s'afficher.

Re: if / else / elseif ...

Posté : 02 févr. 2011, 20:18
par xTG
Essayes ceci pour debug :
$requete = "SELECT * FROM banniere WHERE pseudo = '$pseudo'" ;
echo "Requête : $requete<br />";
$req = mysql_query($requete) or die(mysql_error());
$count = mysql_num_rows($requete);
echo "count : $count";

Re: if / else / elseif ...

Posté : 02 févr. 2011, 20:52
par Meutledaron
Je vien de trouver l'erreur :
$requete = "SELECT * FROM banniere WHERE pseudo = '$pseudo'" ;
$req = mysql_query($requete);
$count = mysql_num_rows($req);
J'avez mis "$count = mysql_num_rows($requete)" or erreur de ma pars le $count devais se faire sur $req

Le script fonctionne correctement a présent.

Encore une fois un grand merci a tous vous etes top ! =D>