Quelle est ta version de PHP ?
Sinon :
Code:$sql_select->execute(array(':id_echoppe' =>$id_echoppe));
Version imprimable
Quelle est ta version de PHP ?
Sinon :
Code:$sql_select->execute(array(':id_echoppe' =>$id_echoppe));
Toujours le même souci : Page vierge avec la requête préparée, même en liant le paramètre (int) séparément... Curieux car la requête fonctionne bien sous PMA, et le code aussi sans souci si la requête n'est pas préparée...
Ma config (si besoin) :
Version php : 7.2.18
Navigateur Chrome
wampserveur 3.1.9
Editeur : Sublime Text
Code actuel qui pose problème : ça tourne au défi cette histoire ;-) !
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <?php try{$bdd = new PDO('mysql:host=localhost;dbname=les_zechoppes;charset=utf8', 'root', '');} catch(Exception $e){die('Erreur : '.$e->getMessage());} /****************************************************************************/ $id_echoppe = (int)$_POST['id_echoppeF']; $sql_select = $bdd->prepare("SELECT produit.nom as nom_produit, fournisseur.nom as nom_fournisseur FROM produit INNER JOIN fournisseur ON produit.idfournisseur=fournisseur.id WHERE fournisseur.id_echoppe = :id_echoppe "); $sql_select->bindValue(':id_echoppe', (int)$id_echoppe, PDO::PARAM_INT); $sql_select->execute(); while ($donnees = $sql_select->fetch()) { ?> <p> <?php echo 'Produit '.$donnees['nom_produit'].' du fournisseur '.$donnees['nom_fournisseur']; ?> </p> <?php } $sql_select->closeCursor(); ?>
Bonjour,
Remets un try/catch autour.
Si tu as une page blanche, c'est que ça plante avant ou pendant le script, regarde le log du site tu vas y trouver où ça plante.
C'est à dire ? Pour l'instant je suis en local sous wamp. Comment puis je regarder ce log ? Où se trouve t il...
Ce que j'ai fait pour l'instant c'est d'afficher le code source de la page (vierge) généré par mon code dans chrome ... et sans surprise ça donne ... une page vierge !! Mon code ne génère donc aucune ligne html lisible par le navigateur, d'où la page vierge !! Est ce une piste pour trouver le problème dans mon code ?! Car là je deviens chauve à force de m'arracher les cheveux sur mon problème !! A noter que je l'ai (grâce à vous) résolu sans passer par une requête préparée, mais j'aimerai comprendre pourquoi ça ne fonctionne pas en passant par une requête préparée...
Je l'ai mis ainsi (mais ça ne donne rien, toujours page vierge) :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 <?php try { try{$bdd = new PDO('mysql:host=localhost;dbname=les_zechoppes;charset=utf8', 'root', '');} catch(Exception $e){die('Erreur : '.$e->getMessage());} /****************************************************************************/ $id_echoppe = ""; $sql_select = ""; $id_echoppe = (int)$_POST['id_echoppeF']; $sql_select = $bdd->prepare("SELECT produit.nom as nom_produit, fournisseur.nom as nom_fournisseur FROM produit INNER JOIN fournisseur ON produit.idfournisseur=fournisseur.id WHERE fournisseur.id_echoppe = :id_echoppe "); $sql_select->bindValue(':id_echoppe', (int)$id_echoppe, PDO::PARAM_INT); $sql_select->execute(); while ($donnees = $sql_select->fetch()) { ?> <p> <?php echo 'Produit '.$donnees['nom_produit'].' du fournisseur '.$donnees['nom_fournisseur']; ?> </p> <?php } $sql_select->closeCursor(); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } ?>
Je vais poser une question bête : quel est le type de id_echoppe dans la base ?
Non non pas bête du tout, je n'avais pas eu le réflexe de m'en assurer. Mais c'est bien du int().
int(11) !
Pièce jointe 505720
Bonjour à tous,
Déjà un grand grand merci à tous pour vos réponses et conseils.
Je n'ai pas réussi à totalement solutionner le problème en passant par une requête préparée (page vide, sans erreur, et sans écriture dans la table). Mais pour info/rappel sans requête préparée mon problème était résolu. Depuis 15 jours j'ai pas mal avancé sur mon projet, j'ai rencontré pas mal d'os que j'ai réussit à ronger tout seul mais là j'en rencontre un gros (pour moi) qui ressemble au problème rencontré ici sur la fin de nos échanges... Pour autant ce problème ne concerne pas le sujet initial. Je préfère donc le clôturer pour ne pas mélanger les genres , et en ouvrir un autre !
Merci encore pour vos aides sur le problème que j'avais rencontré ici au départ...