Supprimer information

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Supprimer information

par béka » 13 juin 2006, 11:01

voila mon nouveau code
<?php
/*********************************************************************/
/*				  Script d'administration de stage				     */
/*********************************************************************/

require ("../../../connexion.php");


	//$contenu=$_POST['contenu'];
$query5 = "SELECT * FROM demande_emploi";
$resulta = mysql_query($query5) or die(mysql_error());
$id = $_POST['id'];
while ($row = mysql_fetch_array($resulta)) { 
$nom_etudiant = ($row['nom_etudiant']);
}

//$query6 = "SELECT * FROM cv";
//$result6 = mysql_query($query6);			
				
$query2 = "DELETE FROM `cv` WHERE `cv`.`nom_etudiant` = '".$nom_etudiant."'";
$result2 = mysql_query($query2) or die(mysql_error());
echo $query2;
if ($result2)
{
	$query = "DELETE FROM `demande_emploi` WHERE `id`='".$id."'";
	$result = mysql_query($query) or die(mysql_error());
	if ($result)
	{
	
		if (unlink("../../../etudiant/depot/cv/".$nom_cv.""))
		{
		echo "le CV correspondant à cette demande a bien été supprimée"; 
		}
		else 
		{
		echo "impossible de supprimer le CV correspondant à cettte demande";
		}
	} else echo "impossible de suppr dans la table demande_emploi<br>";
} else echo "impossible de suppr dans la table cv<br>";
mais avec ceci, je n'arrive pas a supprimer le fichier cv qui est dans le répertoire cv pourtant il s'agit de la bonne fonction unlink() ?

par zeus » 13 juin 2006, 10:00

ok, dans ce que t'as dit guilt92, il est interdit de mettre une valeur à gauche du signe =
$query2 = "DELETE FROM `cv` WHERE `cv`.`nom_etudiant` = '".$nom_etudiant."'";
Sinon, tu es déseperant : on passe des heures à chaque fois à t'expliquer les mêmes choses :
-
or die(mysql_error())
déjà dit dans le post
- extraire les chaines des variables
"nom_etudiant` = '".$nom_etudiant."'"
plutot que
"nom_etudiant` = '$nom_etudiant'"
- encadrer les chaines par des ' dans une requete
- rechercher sur le forum et/ou sur le net. Ton message d'erreur était très significatif

par béka » 13 juin 2006, 09:39

je veux supprimer une annonce déposée par un etudiant (qui est donc stockée dans la table 'demande_emploi') et supprimer le cv correspondant a cette demande (stocké dans le répertoire cv/ et dont les informations sont stockées dans la table 'cv').
Oui je vois ce que tu veux dire zeus quand tu dis "je ne pense pas que tu veux réellement supprimer autant de cv" et c'est pour ca que j'avais utilisé au début la variable $nom_etudiant qui correspondait uniquement à un élève, celui que je voulais supprimer

par zeus » 13 juin 2006, 09:35

Pour commencer, explique nous ce que tu veux supprimer parce que quand je regarde la clause WHERE de ta requete, je me demande si tu veux réellement supprimer autant de cv :-k

par béka » 13 juin 2006, 09:34

je vois pas ce que tu veux dire
le nom de l'étudiant je le connais, c'est une variable que j'obtiens avec $_POST

par guilt92 » 13 juin 2006, 09:33

Euh d'ailleurs je ne suis meme pas sur que tu puisses mettre plusieurs nom de tables dans une requete DELETE. Désolé.

Si tu peux utiliser les sous requetes cela peut constituer une solution, sinon tu peux faire un SELECT avant pour connaitre le nom de l étudiant a supprimer puis le supprimer après dans la table.

par béka » 13 juin 2006, 09:25

oui mais je ne veux pas que ca supprime dans la table demande_emploi.
Si je la rajoute dans le FROM, ca va suppr dans a table demande_emploi non?

par guilt92 » 13 juin 2006, 09:24

Unknow table 'demande_emploi' in where clause
La table est inconnue... Il faut l ajouter dans le FROM :


$query2 = "DELETE FROM cv, demande_emploi WHERE demande_emploi.nom_etudiant=cv.nom_etudiant AND demande_emploi.nom_cv=cv.nom_cv";

par béka » 13 juin 2006, 09:23

j'ai changé et j'ai mis ca :
$query2 = "DELETE FROM cv WHERE demande_emploi.nom_etudiant=cv.nom_etudiant AND demande_emploi.nom_cv=cv.nom_cv";
$result2 = mysql_query($query2) or die(mysql_error());
echo $query2;
et j'ai ce mesage d'erreur

par guilt92 » 13 juin 2006, 09:21


Le probleme est

$query2 = "DELETE FROM `cv` WHERE $nom_etudiant=`cv`.`nom_etudiant` ....

Je pense que $nom_etudiant n est pas un nom de champ de ta table....

par béka » 13 juin 2006, 09:21

je viens, d'ajouter les echo et or die(mysql_error()) et j'ai le message suivant
Unknow table 'demande_emploi' in where clause

par béka » 13 juin 2006, 09:16

oui c'est vrai j'y pense jamais

par guilt92 » 13 juin 2006, 09:15

Tu t'obstines a ne pas mettre les or die(mysql_error()) à la fin de tes query, pourtant on te le dit à chaque fois ;)

Sinon comme d habitude : as tu fais un echo $query2; pour voir si la requete fonctionne etc etc .....

Le probleme ici est

$query2 = "DELETE FROM `cv` WHERE $nom_etudiant=`cv`.`nom_etudiant` ....

Je pense que $nom_etudiant n est pas un nom de champ de ta table....

(avec un echo de la requete tu l aurai vu :) )

Supprimer information

par béka » 13 juin 2006, 09:13

Bonjour tout le monde, je ne sais pas pourquoi avec ce code je n'arrive pas a supprimer les informations qui sont dans les différentes tables.

Voila mon code :
<?php
/*********************************************************************/
/*				  Script d'administration de stage				     */
/*********************************************************************/

require ("../../../connexion.php");


	//$contenu=$_POST['contenu'];
$query5 = "SELECT * FROM demande_emploi";
$resultat5 = mysql_query($query5);
$id = $_POST['id'];
$nom_etudiant = $_POST['nom_etudiant'];
$nom_cv = $_POST['nom_cv'];

$query6 = "SELECT * FROM cv";
$result6 = mysql_query($query6);			
				
$query2 = "DELETE FROM `cv` WHERE $nom_etudiant=`cv`.`nom_etudiant` AND $nom_cv=`cv`.`nom_cv`";
$result2 = mysql_query($query2);
if ($result2)
{
	$query = "DELETE FROM demande_emploi WHERE id='$id'";
	$result = mysql_query($query);
	if ($result)
	{
	
		if (unlink("../../../etudiant/depot/cv/$nom_cv"))
		{
		echo "le CV correspondant à cette demande a bien été supprimée"; 
		}
		else 
		{
		echo "impossible de supprimer le CV correspondant à cettte demande";
		}
	} else echo "impossible de suppr dans la table demande_emploi<br>";
} else echo "impossible de suppr dans la table cv<br>";

mysql_close($db);
echo "vos données ont bien été supprimées, veuillez à présent cliquer <a href=\"index.php\">ici</a>";
?>
En fait, quand j'éxecute ce script j'ai le message
impossible de suppr dans la table cv
ce qui signifie qu'aucune requète n'est éxécutée pourtant leur syntaxe est bonne?