if / else / elseif ...

Eléphanteau du PHP | 39 Messages

01 févr. 2011, 22:06

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.

ViPHP
xTG
ViPHP | 7331 Messages

01 févr. 2011, 22:15

Cela ne viendrait pas plutôt du fait que mysql_num_rows() renvoie un entier et non une chaîne de caractères ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 févr. 2011, 00:04

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 :)


@+
Il en faut peu pour être heureux ......

ViPHP
ViPHP | 2577 Messages

02 févr. 2011, 14:39

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;
} 

Eléphanteau du PHP | 39 Messages

02 févr. 2011, 19:51

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.

ViPHP
xTG
ViPHP | 7331 Messages

02 févr. 2011, 20:18

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";

Eléphanteau du PHP | 39 Messages

02 févr. 2011, 20:52

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>