Function creer_conversation en pdo (avec insert values)
Résolu
Zakarya93
Messages postés
984
Date d'inscription
Statut
Membre
Dernière intervention
-
Zakarya93 Messages postés 984 Date d'inscription Statut Membre Dernière intervention -
Zakarya93 Messages postés 984 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aimerais convertir ce code mysl_ en pdo svp :
je sais que c'est un truc du genre :
mais j'ai du mal :/
Merci d'avance :)
j'aimerais convertir ce code mysl_ en pdo svp :
// la fonction qui va crée la conversation et les messages qui va avec function creer_conversation($sujet,$message) { mysql_query(" INSERT INTO conversations (id_conversation,sujet_conversation) VALUES('','{$sujet}') ") or die(mysql_error()); $id_conversation = mysql_insert_id(); mysql_query("INSERT INTO conversations_messages(id_conversation,pseudo_exp,corps_message,date_message) VALUES('{$id_conversation}','{$_SESSION['pseudo']}','{$message}', NOW())") or die(mysql_error()); mysql_query(" INSERT INTO conversations_membres(id_conversation,pseudo_dest) VALUES('{$id_conversation}','{$_GET['pseudo']}') ")or die(mysql_error()); } ?>
je sais que c'est un truc du genre :
//la function qui va créer la conversation et le message qui va avec function creer_conversation($sujet,$message){ $sql = "INSERT INTO conversations (id_conversation ,sujet_conversation) VALUES(:sujet)"; $params = array( ':pseudo'=> $pseudo, ':password'=>$password, ':email'=> $email, ':sexe' => $sexe, ':situation' => $situation, ':apropos' => $apropos ); //On prepare l'insertion $requete= $dbh->prepare($sql); $result = $requete->execute($params); return $result ; } ?>
mais j'ai du mal :/
Merci d'avance :)
A voir également:
- Function creer_conversation en pdo (avec insert values)
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Insert boot media in selected boot device and press a key ✓ - Forum Windows 10
- Activer touche insert sur ASUS UX32A - Forum Clavier
- Touche insert sur clavier portable hp ✓ - Forum Clavier
4 réponses
re,
Il y a des moments où je me demande si tu ne ferais pas un peu exprès.....
1 - .. la fonction d'origine contient TROIS REQUETES ... il faudra que tu m'expliques comment tu as pu imaginer n'en faire qu'une !
2 - Si tu regardes ce que tu as écris... tu as 2 paramètres dans ta requête... et tu essaies de lui passer 6 variables dans le $params.... ne penses-tu pas qu'il y a un petit souci ???
3 -
Forcément.. voir les points 1 et 2 de cette même réponse !
Il y a des moments où je me demande si tu ne ferais pas un peu exprès.....
1 - .. la fonction d'origine contient TROIS REQUETES ... il faudra que tu m'expliques comment tu as pu imaginer n'en faire qu'une !
2 - Si tu regardes ce que tu as écris... tu as 2 paramètres dans ta requête... et tu essaies de lui passer 6 variables dans le $params.... ne penses-tu pas qu'il y a un petit souci ???
3 -
mais j'ai du mal :/
Forcément.. voir les points 1 et 2 de cette même réponse !
NON..
Les noms de variables ne correspondent à rien dans ton ARRAY de params.... et $id_intervention n'existe tout simplement pas.....
D'ailleurs... vu que c'est un champ auto-incrémenté dans cette table là.. il ne faut même pas le mettre !
Enfin bon. peu importe....
Voici le code tout fait.
(NB : Tu constateras que j'ai découpé en TROIS fonctions qui traitent chacune une des requêtes.... le tout... appelé par UNE fonction principale. )
PS: Avant de tester ... penses à désactiver les éventuelles redirection que tu pourrais avoir sur ta page.... histoire de pouvoir visualiser les éventuels messages d'erreur !!
Les noms de variables ne correspondent à rien dans ton ARRAY de params.... et $id_intervention n'existe tout simplement pas.....
D'ailleurs... vu que c'est un champ auto-incrémenté dans cette table là.. il ne faut même pas le mettre !
Enfin bon. peu importe....
Voici le code tout fait.
(NB : Tu constateras que j'ai découpé en TROIS fonctions qui traitent chacune une des requêtes.... le tout... appelé par UNE fonction principale. )
PS: Avant de tester ... penses à désactiver les éventuelles redirection que tu pourrais avoir sur ta page.... histoire de pouvoir visualiser les éventuels messages d'erreur !!
<?php // la fonction qui va crée la conversation et les messages qui va avec function creer_conversation($sujet,$message){ $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; $id_conversation = add_conversation($sujet); add_conversations_membres($id_conversation,$pseudo_dest); add_conversations_messages($id_conversation,$pseudo_exp,$message); return $id_conversation; } function add_conversation($sujet=NULL){ global $bdd; $sql = "INSERT INTO conversations (sujet_conversation) VALUES(:sujet)"; $params = array(":sujet"=>$sujet); //On prepare l'insertion try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $prepare->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id; } function add_conversations_membres($id_conversation,$pseudo_dest){ global $bdd; $sql="INSERT INTO conversations_membres(id_conversation,pseudo_dest) VALUES(:id_conversation,:pseudo_dest)"; $params=array(":id_conversation"=>$id_conversation ,":pseudo_dest"=>$pseudo_dest); try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $prepare->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id } function add_conversations_messages($id_conversation,$pseudo,$message=''){ global $bdd; $sql="INSERT INTO conversations_messages(id_conversation,pseudo_exp,corps_message,date_message) VALUES(:id_conversation,:pseudo,:message, NOW())"; $params=array(":id_conversation"=>$id_conversation ,":pseudo"=>$pseudo ,":message"=>$message); try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $prepare->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id } ?>
oh merci c'est vraiment énorme de votre part je ne sais comment vous remercier !
sinon j'ai : Parse error: syntax error, unexpected '}' in C:\wamp\www\rs\functions\new_message.func.php on line 95
sinon j'ai : Parse error: syntax error, unexpected '}' in C:\wamp\www\rs\functions\new_message.func.php on line 95
<?php //la function qui va nous permettre de verifier si le pseudo existe et si la personne n'essaye pas de s'auto envoyer un message function pseudo_incorrect(){ global $bdd; $result=0; //Variables $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_get = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; if($pseudo_get){ $sql = "SELECT COUNT(pseudo) as NB FROM utilisateurs WHERE pseudo = :pseudo_get AND pseudo != :pseudo_session"; // je place les params dans une variable avant de l'utiliser : $params = array(':pseudo_session' =>$pseudo_session , ':pseudo_get' => $pseudo_get ); try{ $query = $bdd->prepare($sql); $query ->execute($params); $req= $query->fetchall(); $result= count($req)>0 ? $req[0]['NB']:0; }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } } // Fin du if($pseudo_session) // le return return $result; } // la fonction qui va crée la conversation et les messages qui va avec function creer_conversation($sujet,$message){ $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; $id_conversation = add_conversation($sujet); add_conversations_membres($id_conversation,$pseudo_dest); add_conversations_messages($id_conversation,$pseudo_exp,$message); return $id_conversation; } function add_conversation($sujet=NULL){ global $bdd; $sql = "INSERT INTO conversations (sujet_conversation) VALUES(:sujet)"; $params = array(":sujet"=>$sujet); //On prepare l'insertion try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $prepare->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id; } function add_conversations_membres($id_conversation,$pseudo_dest){ global $bdd; $sql="INSERT INTO conversations_membres(id_conversation,pseudo_dest) VALUES(:id_conversation,:pseudo_dest)"; $params=array(":id_conversation"=>$id_conversation ,":pseudo_dest"=>$pseudo_dest); try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $prepare->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id } function add_conversations_messages($id_conversation,$pseudo,$message=''){ global $bdd; $sql="INSERT INTO conversations_messages(id_conversation,pseudo_exp,corps_message,date_message) VALUES(:id_conversation,:pseudo,:message, NOW())"; $params=array(":id_conversation"=>$id_conversation ,":pseudo"=>$pseudo ,":message"=>$message); try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $prepare->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id } ?>
j'ai ceci : http://www.noelshack.com/2015-26-1435060454-erreur.jpg
code :
code :
<?php include('functions/membre.func.php'); include('body/header.php'); include('body/menu.php'); if(isset($_GET['pseudo']) && !empty($_GET['pseudo']) && pseudo_incorrect()=== "1") { if(isset($_POST['submit'])) { creer_conversation($sujet,$message); ?> <div class='success'>Votre message a bien été envoyé</div> <?php $sujet = htmlspecialchars(strip_tags(trim($_POST['sujet']))); $message = $sujet = htmlspecialchars(strip_tags(trim($_POST['message']))); if(!empty($sujet) && !empty($message)) { // }else{ ?> <div class='error'>Le sujet et le message sont obligatoires</div> <?php } } }else{ header("Location:index.php?page=membre"); } ?> <h3>Envoyer un message </h3> <form method='post' action=""> <label for='a'>à : </label> <input type="text" name='a' id='a' value='<?php echo $_GET['pseudo']; ?>' disabled='disabled'><br /> <label for='sujet'>Sujet : </label> <input type="text" name="sujet" id='sujet'><br /> <label for='message'>Votre message : </label> <textarea rows='6' cols='30' name='message' id='message'></textarea><br /><br /> <input type='submit' value="Envoyer" name='submit'> </form>
<?php include('functions/membre.func.php'); include('body/header.php'); include('body/menu.php'); // RECUPERATION DES VARIABLES AVANT DE LES UTILISER ! $pseudo = !empty($_GET['pseudo']) ? $_GET['pseudo'] : NULL; $sujet = !empty($_POST['sujet'])?trim($_POST['sujet']):NULL; $message = !empty($_POST['message'])? (strip_tags(trim($_POST['message']))):NULL; if($pseudo && pseudo_incorrect()=== "1") { if(isset($_POST['submit'])) { creer_conversation($sujet,$message); if(!$sujet && !$message){ echo "<div class='error'>Le sujet et le message sont obligatoires</div>"; }else{ echo "<div class='success'>Votre message a bien été envoyé</div>"; } } }else{ header("Location:index.php?page=membre"); } ?> <h3>Envoyer un message </h3> <form method='post' action=""> <label for='a'>à : </label> <input type="text" name='a' id='a' value='<?php echo $_GET['pseudo']; ?>' disabled='disabled'><br /> <label for='sujet'>Sujet : </label> <input type="text" name="sujet" id='sujet'><br /> <label for='message'>Votre message : </label> <textarea rows='6' cols='30' name='message' id='message'></textarea><br /><br /> <input type='submit' value="Envoyer" name='submit'> </form>
j'ai : Fatal error: Call to undefined method PDOStatement::lastInsertId() in C:\wamp\www\rs\functions\new_message.func.php on line 62
<?php //la function qui va nous permettre de verifier si le pseudo existe et si la personne n'essaye pas de s'auto envoyer un message function pseudo_incorrect(){ global $bdd; $result=0; //Variables $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_get = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; if($pseudo_get){ $sql = "SELECT COUNT(pseudo) as NB FROM utilisateurs WHERE pseudo = :pseudo_get AND pseudo != :pseudo_session"; // je place les params dans une variable avant de l'utiliser : $params = array(':pseudo_session' =>$pseudo_session , ':pseudo_get' => $pseudo_get ); try{ $query = $bdd->prepare($sql); $query ->execute($params); $req= $query->fetchall(); $result= count($req)>0 ? $req[0]['NB']:0; }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } } // Fin du if($pseudo_session) // le return return $result; } // la fonction qui va crée la conversation et les messages qui va avec function creer_conversation($sujet,$message){ $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; $id_conversation = add_conversation($sujet); add_conversations_membres($id_conversation,$pseudo_dest); add_conversations_messages($id_conversation,$pseudo_exp,$message); return $id_conversation; } function add_conversation($sujet=NULL){ global $bdd; $sql = "INSERT INTO conversations (sujet_conversation) VALUES(:sujet)"; $params = array(":sujet"=>$sujet); //On prepare l'insertion try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $prepare->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id; } function add_conversations_membres($id_conversation,$pseudo_dest){ global $bdd; $sql="INSERT INTO conversations_membres(id_conversation,pseudo_dest) VALUES(:id_conversation,:pseudo_dest)"; $params=array(":id_conversation"=>$id_conversation ,":pseudo_dest"=>$pseudo_dest); try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $prepare->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id; } function add_conversations_messages($id_conversation,$pseudo,$message=''){ global $bdd; $sql="INSERT INTO conversations_messages(id_conversation,pseudo_exp,corps_message,date_message) VALUES(:id_conversation,:pseudo,:message, NOW())"; $params=array(":id_conversation"=>$id_conversation ,":pseudo"=>$pseudo ,":message"=>$message); try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $prepare->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id; } ?>
Fatal error: Call to undefined method PDOStatement::lastInsertId() in C:\wamp\www\rs\functions\new_message.func.php on line 62
<?php //la function qui va nous permettre de verifier si le pseudo existe et si la personne n'essaye pas de s'auto envoyer un message function pseudo_incorrect(){ global $bdd; $result=0; //Variables $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_get = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; if($pseudo_get){ $sql = "SELECT COUNT(pseudo) as NB FROM utilisateurs WHERE pseudo = :pseudo_get AND pseudo != :pseudo_session"; // je place les params dans une variable avant de l'utiliser : $params = array(':pseudo_session' =>$pseudo_session , ':pseudo_get' => $pseudo_get ); try{ $query = $bdd->prepare($sql); $query ->execute($params); $req= $query->fetchall(); $result= count($req)>0 ? $req[0]['NB']:0; }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } } // Fin du if($pseudo_session) // le return return $result; } // la fonction qui va crée la conversation et les messages qui va avec function creer_conversation($sujet,$message){ $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; $id_conversation = add_conversation($sujet); add_conversations_membres($id_conversation,$pseudo_dest); add_conversations_messages($id_conversation,$pseudo_exp,$message); return $id_conversation; } function add_conversation($sujet=NULL){ global $bdd; $sql = "INSERT INTO conversations (sujet_conversation) VALUES(:sujet)"; $params = array(":sujet"=>$sujet); //On prepare l'insertion try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $prepare->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id; } function add_conversations_membres($id_conversation,$pseudo_dest){ global $bdd; $sql="INSERT INTO conversations_membres(id_conversation,pseudo_dest) VALUES(:id_conversation,:pseudo_dest)"; $params=array(":id_conversation"=>$id_conversation ,":pseudo_dest"=>$pseudo_dest); try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $bdd->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id; } function add_conversations_messages($id_conversation,$pseudo,$message=''){ global $bdd; $sql="INSERT INTO conversations_messages(id_conversation,pseudo_exp,corps_message,date_message) VALUES(:id_conversation,:pseudo,:message, NOW())"; $params=array(":id_conversation"=>$id_conversation ,":pseudo"=>$pseudo ,":message"=>$message); try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $bdd->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id; } ?>
il te manque .... alors qu'on l'a déjà fait 75 fois dans tes questions précédentes :
-> le global $bbd
pour la première requête est-ce correct?