Fonction update pas completement executée
Résolu
geoffreyvp
-
geoffreyvp -
geoffreyvp -
Bonjour,
Voila ca fait plusieurs jours que je suis sur ce probleme.
Je n'arrive vraiment pas a comprendre le probleme, sachant que une des 2 modifications est faite.
Voici le code
Alors je vous explique l'interet du code en lui meme.
Donc je commence par appeller une page ou j'ai mis plusieurs fonctions.
- La fonction connection , c'est ma connexion sql.
- Up ,c'est le haut de page (l'entete , etc...)
Et alors la on commence, on attribue une valeur a $pseudo(selon le choix d'utiliser les cookies ou pas de l'utilisateur)
Ensuite on recupere la reponse , et la reference envoyé par le formulaire sur une autre page.
Ensuite on crée une variable date , pour plus tard.
On recherche toutes les informations liées au message de base.
On recupere ces informations (en ayant pris soin de les declarer juste avant)
ensuite on insere dans une autre base de données le message liés , avec la reference etc...
Et le probleme se situe principalement ici ->
En fonction de notre statut par rapport au message , on va modifier un champ special dans la base de données.
Il devrait changer donc , soit lu_destinataire, soit lu_auteur, et une date.
La date , aucun probleme , mais par contre pour les 2 autres champs ,c 'est autre chose.
Et alors le reste de la page n'est lui pas important.
Auriez vous une idée qui pourrait resoudre mon probleme ?
(Est ce que mysql n'accepterait pas les underscores dans des requetes ?)
Merci d'avance
Voila ca fait plusieurs jours que je suis sur ce probleme.
Je n'arrive vraiment pas a comprendre le probleme, sachant que une des 2 modifications est faite.
Voici le code
<?php session_start(); include('../../functions.php'); connection(); up(); if(isset($_COOKIE['membre']) == FALSE) { $pseudo = $_SESSION['membre']; } else { $pseudo = $_COOKIE['membre']; } $reponse = addslashes($_POST['reponse']); $refer = $_POST['refer']; $hours = date('H') + 1; $date = date('d-m-Y ').$hours.date(':i'); $auteur = '';$destinataire = ''; $req = mysql_query("SELECT * FROM messages WHERE ID = '$refer'") OR DIE(mysql_error()); while($donnees = mysql_fetch_array($req)) { $auteur = $donnees['auteur']; $destinataire = $donnees['destinataire']; } mysql_query("INSERT INTO messages_reponses VALUES ('','$reponse','$pseudo','$date','$refer')") OR DIE(mysql_error()); if($pseudo == $auteur) { mysql_query("UPDATE messages SET lu_destinataire = 'non-lu',date = '$date' WHERE ID = '$refer'") OR DIE(mysql_error()); echo 'envoi de votre réponse'; } elseif($pseudo == $destinataire) { mysql_query("UPDATE messages SET lu_auteur = 'non-lu',date = '$date' WHERE ID = '$refer'") OR DIE(mysql_error()); echo 'envoi de votre réponse'; } else { echo 'probleme lors de l\'envoi'; redirect('index.php','2','parent'); exit(); } redirect('index.php?id='.$refer,'2',''); down(); ?>
Alors je vous explique l'interet du code en lui meme.
Donc je commence par appeller une page ou j'ai mis plusieurs fonctions.
- La fonction connection , c'est ma connexion sql.
- Up ,c'est le haut de page (l'entete , etc...)
Et alors la on commence, on attribue une valeur a $pseudo(selon le choix d'utiliser les cookies ou pas de l'utilisateur)
Ensuite on recupere la reponse , et la reference envoyé par le formulaire sur une autre page.
Ensuite on crée une variable date , pour plus tard.
On recherche toutes les informations liées au message de base.
On recupere ces informations (en ayant pris soin de les declarer juste avant)
ensuite on insere dans une autre base de données le message liés , avec la reference etc...
Et le probleme se situe principalement ici ->
En fonction de notre statut par rapport au message , on va modifier un champ special dans la base de données.
Il devrait changer donc , soit lu_destinataire, soit lu_auteur, et une date.
La date , aucun probleme , mais par contre pour les 2 autres champs ,c 'est autre chose.
Et alors le reste de la page n'est lui pas important.
Auriez vous une idée qui pourrait resoudre mon probleme ?
(Est ce que mysql n'accepterait pas les underscores dans des requetes ?)
Merci d'avance
A voir également:
- Fonction update pas completement executée
- Fonction si et - Guide
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Fonction miroir - Guide
4 réponses
Ben écoute, j'ai essayé de répondre il y'a quelques heures, mais mon message n'est pas la....
Pour faire bref, tu n'as aucun message d'erreur ??
Pour faire bref, tu n'as aucun message d'erreur ??
Bonsoir
Ça veut dire quoi, "c'est autre chose" ? Qu'est ce qui se passe ? Veux-tu dire que le champ date est mis à jour, mais ni le champ lu_destinataire, ni le champ lu_auteur ? J'ai du mal à imaginer qu'une requête ne soit qu'à moitié exécutée.
Ça veut dire quoi, "c'est autre chose" ? Qu'est ce qui se passe ? Veux-tu dire que le champ date est mis à jour, mais ni le champ lu_destinataire, ni le champ lu_auteur ? J'ai du mal à imaginer qu'une requête ne soit qu'à moitié exécutée.
C'est exactement ca , la requete ne mettait a jour que une partie de la requete.
C'est justement ce qui me semblait vachement bizarre.
Mais en fait , depuis hier , apres plusieurs manipulations , je suis arrivé a resoudre le problème sans trop savoir comment ...
J'ai enlevé les underscores entre les noms des tables , et j'ai inversé la declaration de pseudo, et etrangement maintenant ca marche...
Fin bref , voila le code
C'est justement ce qui me semblait vachement bizarre.
Mais en fait , depuis hier , apres plusieurs manipulations , je suis arrivé a resoudre le problème sans trop savoir comment ...
J'ai enlevé les underscores entre les noms des tables , et j'ai inversé la declaration de pseudo, et etrangement maintenant ca marche...
Fin bref , voila le code
<?php session_start(); include('../../functions.php'); connection(); up(); $pseudo = ''; if(isset($_SESSION['membre']) == FALSE) { $pseudo = $_COOKIE['membre']; } else { $pseudo = $_SESSION['membre']; } $reponse = addslashes($_POST['reponse']); $refer = $_POST['refer']; $hours = date('H') + 1; $date = date('d-m-Y ').$hours.date(':i'); $auteur = '';$destinataire = ''; $req = mysql_query("SELECT * FROM messages WHERE ID = '$refer'") OR DIE(mysql_error()); while($donnees = mysql_fetch_array($req)) { $auteur = $donnees['auteur']; $destinataire = $donnees['destinataire']; } mysql_query("INSERT INTO messages_reponses VALUES ('','$reponse','$pseudo','$date','$refer')") OR DIE(mysql_error()); if($auteur == $pseudo) { $champ = 'ludestinataire'; } else { $champ = 'luauteur'; } mysql_query("UPDATE messages SET $champ = 'non-lu',date = '$date' WHERE ID = '$refer'") OR DIE(mysql_error()); echo 'envoi de votre réponse'; redirect('index.php?id='.$refer,'2',''); down(); ?>