Function creer_conversation en pdo (avec insert values)
Résolu
Zakarya93
Messages postés
1026
Statut
Membre
-
Zakarya93 Messages postés 1026 Statut Membre -
Zakarya93 Messages postés 1026 Statut Membre -
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 :)
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 -mais j'ai du mal :/
Forcément.. voir les points 1 et 2 de cette même réponse !
-
-
re :)
//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( ':id_conversation'=> $id_conversation, ':sujet_conversation'=>$sujet_conversation, ); //On prepare l'insertion $requete= $dbh->prepare($sql); $result = $requete->execute($params); return $result ; } ?>
pour la première requête est-ce correct?
-
-
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 !!
<?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
<?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 :<?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; } ?>
-
-