Page 1 sur 1
syntaxe incorrecte avec un if?
Posté : 16 juil. 2021, 14:44
par nestor94
bonjour,
je n'arrive pas à faire fonctionner cette condition:
$sql = "SELECT qte_contenant, vehicule, qte_vehicule FROM membres WHERE id=:id";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
$pdostat->execute();
$resultat = $pdostat->fetch();
if (!empty($resultat )) {
$qte_contenant = $resultat['qte_contenant'];
$vehicule = $resultat['vehicule'];
$qte_vehicule = $resultat['qte_vehicule'];
}
if (($vehicule === '/vehicules/cheval.gif') AND ($qte_contenant + $qte_vehicule > 30))
{
header('Location:capa_vehicule_pb.html');
exit();
}
Re: syntaxe incorrecte avec un if?
Posté : 16 juil. 2021, 15:15
par @rthur
Fais un var_dump($resultat) juste avant ton if() pour savoir ce qu'il y a dedans et comprendre pourquoi le empty() ne fonctionne pas.
Sinon personnellement j'utiliserai comme condition :
if ($pdostat->rowCount() > 0)
RowCount permet de connaitre le nombre de lignes de résultat :
https://www.php.net/manual/fr/pdostatement.rowcount.php
Re: syntaxe incorrecte avec un if?
Posté : 16 juil. 2021, 20:40
par nestor94
le var_dump de $resultat est OK et retourne les bonnes valeurs.
Modifs faites ainsi.
$sql = "SELECT qte_contenant, vehicule, qte_vehicule FROM membres WHERE id=:id";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
$pdostat->execute();
$resultat = $pdostat->fetch();
if ($pdostat->rowCount() > 0)
{
$qte_contenant = $resultat['qte_contenant'];
$vehicule = $resultat['vehicule'];
$qte_vehicule = $resultat['qte_vehicule'];
}
if (($vehicule === '/vehicules/cheval.gif') AND ($qte_contenant + $qte_vehicule > 30))
{
header('Location:capa_vehicule_pb.html');
exit();
}
Cela devrait rediriger vers le header mais ca ne le fait pas

Re: syntaxe incorrecte avec un if?
Posté : 18 juil. 2021, 00:52
par @rthur
Fais un var_dump() de tes paramètres dans tes if
Si ton code ne rentre pas dans un if() c'est que la condition que tu as mise n'est pas remplie.
Re: syntaxe incorrecte avec un if?
Posté : 19 juil. 2021, 16:00
par nestor94
C'est dans :
if (($vehicule === '/vehicules/cheval.gif') AND ($qte_contenant + $qte_vehicule > 30))
que les var_dump respectifs n'affichent rien, contrairement au if précédent.
j'ai une autre condition un peu plus loin, qui, elle fonctionne !
if (($contenu_vehicule !== '/objets/rien.gif') AND ($contenu_vehicule !== $contenu_contenant))
{
header('Location:erreur_depla_vehicule.php');
exit;
}
Re: syntaxe incorrecte avec un if?
Posté : 19 juil. 2021, 16:58
par @rthur
var_dump($vehicule, $qte_contenant, $qte_vehicule, $qte_contenant + $qte_vehicule, $qte_contenant + $qte_vehicule > 30);
Placé avant tes if, ça affiche forcément quelque chose
Re: syntaxe incorrecte avec un if?
Posté : 19 juil. 2021, 23:27
par nestor94
C:\wamp64\www\deplacer_contenu_vehicule.php:18:string '/objets/cheval.gif' (length=18)
C:\wamp64\www\deplacer_contenu_vehicule.php:18:string '5' (length=1)
C:\wamp64\www\deplacer_contenu_vehicule.php:18:string '29' (length=2)
C:\wamp64\www\deplacer_contenu_vehicule.php:18:int 34
C:\wamp64\www\deplacer_contenu_vehicule.php:18:boolean true
Re: syntaxe incorrecte avec un if?
Posté : 20 juil. 2021, 00:06
par or 1
$vehicule === '/vehicules/cheval.gif
string '/objets/cheval.gif' (length=18)
Re: syntaxe incorrecte avec un if?
Posté : 20 juil. 2021, 12:41
par nestor94
oui, il y avait une coquille en database !