[PHP] Problème bête avec if()

Bonjour,

J'explique la situation tout d'abord :

Je souhaite afficher une image pour mon concours si deux conditions sont remplies :
- Qu'il existe le concours correspondant
- Que l'on ne soit pas mercredi (le concours étant actif tout les reste de la semaine)

Voilà mon code qui ne fonctionne pas (erreur : mysql_result() : supplied argument is not a valid MySQL result ressource in ... on line 93) :

Code:
// On est déjà connecté à la base de données

$dbtable = "concours";

// On vérifie qu'il existe un concours activé

$req = "SELECT mk_debut FROM $dbtable WHERE actif='1'";
$res = mysql_query($req);
$mk_debut = mysql_result($res,$i,"mk_debut");

// Si on n'est pas un mercredi (3ème jour de la semaine, dimanche = 0), on affiche le concours :)

if(date("w",time()) != 3 OR mk_debut != ""){

// Affichage du concours

}

J'explique ma démarche : je cherche dans la base données dans la table concours, s'il existe un concours qui possède la valeur 1 pour le champs actif. Si il existe un résultat pour ma requête le champs $mk_debut ne sera pas vide.

Je sais que c'est un peu tordu mais je n'ai pas trouvé d'autres solutions et sachant que ce code génère donc une erreur je fais appel à vos connaissances PHP :P

Merci d'avance pour tous ceux qui m'aideront ! :wink:

NB : La condition par rapport au jour marche et n'a pas besoin d'être remis en question (j'en ai fait le test ;)).
 
pourquoi tu ne fais pas ta condition par rapport au jour avant de faire la requête ?
ça ne serait pas plus logique ? (et plus économique)
 
(soit il y a un problème de connexion à la base mais on ne peut pas le voir car on n'a pas le code)
(soit il y a un problème d'orthographe des champs ou de la table)
soit, mysql_result recevant $res, $res ne retourne pas de résultat ou renvoit une erreur, mais auquel cas on devrait recevoir un "false" plutôt qu'une erreur...
hum...

ps : je me demandais : quel est le type du champ "active" ?
 
Je relisais mon code en même temps et effectivement j'ai fais une erreur bête j'avais écris active au lieu de actif.

La condition marche lorsqu'il y a un concours avec le champ actif=1, mais il y a une nouvelle erreur lorsqu'il n'y en a pas :
Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 8 in (...)membres.php on line 92

Comment éviter cette erreur lorsque la requête ne retourne aucun résultat ?

Merci pour vos réponses très rapides pour cette heure-ci :wink:


EDIT : Type du champ actif : char(1)
 
Ça serait pas un AND au lieu d'un OR dans ta condition ? Parce que la si on est pas mercredi et que le résultat SQL est vide, ça exécutera quand même.
 
$res = @mysql_query($req);
$mk_debut = @mysql_result($res,$i,"mk_debut");

evitera l'affichage du message d'erreur, ce qui ne te dispensera pas de traiter le cas 0 resultat quand même
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut