Requête Mysql qui ne fonctionne pas mais pas d'erreur renvoyée.

Fermé
Xentor - 6 oct. 2015 à 23:55
 Xentor - 8 oct. 2015 à 11:06
Bonjour,

Je fais appel à vos services car j'ai un soucis que j'ai du mal à comprendre.

Tout d'abord mon code :


if($flag_adresse=='add_adress'){
// Insertion de l'adresse si nouvelle adresse à l'aide d'une requête préparée
$req = $bdd->prepare('INSERT INTO infos_users (id_user, nom_adresse, prenom, nom, numero, rue, code_postal, ville, complements, mail) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
$req->execute(array(
$id_annonceur,
$intitule_adresse,
$prenom,
$nom,
$numero,
$rue,
$code_postal,
$ville,
$complements,
$mail
));

$req->closeCursor(); // Termine le traitement de la requête
}
else{
$req2 = $bdd->query('SELECT * FROM infos_users WHERE nom_adresse = "'.$flag_adresse.'"');
while($data2 = $req2->fetch())
{
$prenom = $data2['prenom'];
}
$req2->closeCursor(); // Termine le traitement de la requête
}

//récupération de l'id de l'adresse associé à l'annonce
$req3 = $bdd->query('SELECT * FROM infos_users WHERE nom_adresse = "'.$flag_adresse.'" AND id_user = "'.$id_annonceur.'"');
while($data3 = $req3->fetch())
{
$id_adresse = $data3['id'];
}
$req3->closeCursor(); // Termine le traitement de la requête



// Insertion de l'annonce à l'aide d'une requête préparée
$req4 = $bdd->prepare('INSERT INTO annonces (id_annonceur, type, categorie, description, url_photo, duree, prenom, prix, id_adresse, ville_adresse) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
$req4->execute(array($id_annonceur, $type, $categorie, $description, $url_photo, $duree, $prenom, $prix, $id_adresse, $ville_adresse));

$req4->closeCursor(); // Termine le traitement de la requête


Ma dernière requête 'req4' fonctionne correctement si on passe avant par la 'req2' avant via la conditions, mais ne fonctionne pas si la conditions est vrai (si flag_adresse est égal à 'add_adresse). En revanche la requête 'req' s'exécute parfaitement.

Aucun messages d'erreur n'est renvoyé et je commence à perdre la tête.
Si quelqu'un aurait une idée, je lui en serai vraiment reconnaissant.

Merci de votre aide.
Nico
A voir également:

4 réponses

Personne n'a une idée ?

Même la plus petite.
0
CptRomaiin Messages postés 315 Date d'inscription mercredi 23 octobre 2013 Statut Membre Dernière intervention 28 avril 2016 58
7 oct. 2015 à 16:18
Salut,

Tu devrais essayer d'ajouter le code ci-dessous pour afficher les éventuelles erreurs de synthaxe ou autre sous ton prepare de la requête 4 et tu pourrais aussi mettre ton tableau de valeur pour la requête 4 dans une variable pour faire un var_dump() dessus histoire de voir si toute tes variables sont OK.

if (!$req4) {
   echo "PDO::errorInfo():";
   print_r($bdd->errorInfo()); // Remplace $bdd par ton instance PDO
}
$params = array($id_annonceur, $type, $categorie, $description, $url_photo, $duree, $prenom, $prix, $id_adresse, $ville_adresse);
var_dump($params);
$req4->execute($params);

Dis nous ce que te renvois ce code.
0
Tout d'abord merci pour ton retour.

array(10) { [0]=> string(1) "1" [1]=> string(7) "produit" [2]=> string(5) "Tabac" [3]=> string(6) "clopes" [4]=> string(36) "../images/produits/produit_tabac.png" [5]=> string(19) "2015-10-07 20:30:09" [6]=> string(7) "Nicolas" [7]=> string(2) "60" [8]=> NULL [9]=> string(5) "Paris" }


Voici ce que me renvoi le var dump et appremment il y aurai donc une erreur a la récupération de 'id_adresse' qui est NULL.

Est-il possible que cette requête s'execute avt que celle précédente ne soit terminée ?

Si oui comment faire?

Merci beaucoup
0
Une idée ?
0