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 :)
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
//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?