Il refuse de "delete" - en php

je plante de décor:

J’ai 2 tables dans la meme bdd.
La seconde récupère un élément de la 1ère table et j’y rajoute 2 champs en plus.

table 1: a,b,c,d,e
table 2: c,f,g

Le détail:

J’aimerais effacer sur ces 2 tables, tous les champs correspondant à un critère par rapport au champs en commun.

Enregistrement 1:
table 1: a,b,c,d,e
table 2: c,f,g

Enregistrement 2:
table 1: a,b,c,d,e
table 2: c,f,g

Enregistrement 3:
table 1: a,b,c,d,e
table 2: c,f,g

Enregistrement 4:
table 1: a,b,c,d,e
table 2: c,f,g

Enregistrement 5:
table 1: a,b,c,d,e
table 2: c,f,g

le champs C de l’enregistrement 4 correspond à un critère de “delete”.

Donc, j’aimerais effacer l’enregistrement 4 sur les 2 tables.

Le problème : En lancant la page, je n’ai pas de message d’erreur mais le delete ne s’effectue pas. J’ai vérifié dans la bdd.

Voici mon code :

mysql_connect(“localhost”,“root”,"");
mysql_select_db(“mabdd”);
$j=date(“z”)+1; // je sais que ce n’est pas comme ça que l’on écrit cette ligne là.
$reponse = mysql_query(“SELECT * FROM messagememe”);

while ($donnees = mysql_fetch_array($reponse))
{
$k = $donnees[‘jour’];
$d = $donnees[‘messmeme’];

		if ($k<$j)

		{			
		mysql_query("DELETE FROM messagememe where messmeme==$d");
		mysql_query("DELETE FROM bdmessages where mess==$d");	
		}	

	}

mysql_close();
?>

Savez-vous m’aider ?

tu fais des erreurs de syntaxe. ne confond pas le 'egal ’ du langage C et celui de sQl


 mysql_query("DELETE FROM messagememe where messmeme=$d");

c’est fait mais :’( ça fonctionne tjrs pas !

essaye un echo mysql_error() voir si tu n’as pas une erreur… et éventuellement, un echo ‘DELTE FROM messagememe WHERE messmeme=’, $d;

Effectivement, j’ai un message d’erreur : Erreur de syntaxe près de '>

Le message (via un textarea) qui est mis dans ma bdd est entrée avec la commande : mysql_escape_string()

Est-ce que c’est possible qu’il ne trouve pas ce que je lui demande car le texte contiendrait des caractères qu’il n’aime pas ? style les " ’ ( ) ;,… ??

Merci beaucoup d’avance car là, je patine grave dans la choucroute !

affiche donc ta requête te dis je :slight_smile:

Quand on bosse avec une bdd, et qu’on a un problème, deux choses :

  1. faire un mysql_error (ou pg_error, ou que sais je dépendant du SGBD)
  2. afficher la requête telle que passée à mysql_query.

Affiche là, et met là sur le forum voir ce que tu fais exactement.

Ma requête est marqué au-dessus (j’ai amrqué “code code”).

n’as-tu pas assez ??

Tu ne comprends pas. Si tu parles de

mysql_query("DELETE FROM messagememe where messmeme==$d");
mysql_query("DELETE FROM bdmessages where mess==$d"); 

Ce n’est pas ce que je veux. Ce que je veux c’est que tu fasses :

echo $q = "DELETE FROM messagememe where messmeme=$d";
mysql_query($q);
echo $q = "DELETE FROM bdmessages where mess=$d";
mysql_query($q); 

Ton problème vient de ta requête, et surtout de tes constituants (variables). Si tu ne l’affiche pas tu ne sauras pas ce que mySQL a réellement reçu.