Modérateur PHPfrance |
2575 Messages
08 juin 2006, 16:27
$query3 = "DELETE FROM offre_emploi WHERE '$nom_entreprise'=offre_emploi.nom_entreprise";
$result3 = mysql_query(query3);
$query4 = "DELETE FROM offre_stage WHERE '$nom_entreprise'=offre_stage.nom_entreprise";
$result4 = mysql_query(query4);
Après le WHERE, il s'agit du champ de ta table. Alors pourquoi tu mets un WHERE '$nom_entreprise....etc ?
C'est correct, il compare une valeur de type texte avec un champ : l'égalité est dijective.
Par contre l'erreur existe bel et bien avant : au moment de la récupèration du nom d'une entreprise après l'exécution de la requête SELECT.
Ton algo à ce niveau n'est pas dans l'ordre
Proposition :
//1. récupèrer l'id pour retrouver le nom de l'entreprise
$id = $_POST['id'];
//2. lancer le select pour trouver le nom par l'id
$query2 = "SELECT * FROM entreprise WHERE id='$id'";
$resultat = mysql_query($query2);
//3. si l'entreprise est touvée, lancer les delete
if ($resultat && $row = mysql_fetch_array($resultat) ) {
//une entreprise trouvé, récupèrer son nom
$nom_entreprise = $row['nom_entreprise'];
//effectuer les delete en utilisant $id et $nom_entreprise comme index
$query = "DELETE FROM entreprise WHERE id='$id'";
$result = mysql_query($query);
$query3 = "DELETE FROM offre_emploi WHERE '$nom_entreprise'=offre_emploi.nom_entreprise";
$result3 = mysql_query(query3);
$query4 = "DELETE FROM offre_stage WHERE '$nom_entreprise'=offre_stage.nom_entreprise";
$result4 = mysql_query(query4);
}//fin if
Ou bien, exécuter une seule requête delete sur toutes les tables en respectant leurs liaisons :
Code : Tout sélectionner
DELETE FROM entreprise, offre_emploi, offre_stage
WHERE entreprise.nom_entreprise=offre_emploi.nom_entreprise
AND entreprise.nom_entreprise=offre_stage.nom_entreprise
AND entreprise.id='$id'
Le programme sera simplifié :
//1. récupèrer l'id pour retrouver le nom de l'entreprise
$id = $_POST['id'];
//2. lancer le delete pour supprimer tout : entreprise et offres par l'id
$query2 = "DELETE FROM entreprise, offre_emploi, offre_stage
WHERE entreprise.nom_entreprise=offre_emploi.nom_entreprise
AND entreprise.nom_entreprise=offre_stage.nom_entreprise
AND entreprise.id='$id'";
$resultat = mysql_query($query2);
[/php]
Modifié en dernier par
sadeq le 08 juin 2006, 16:39, modifié 3 fois.
--------
//////----
//---
//----
//////
-------
//---
//----
//---
//----
//---
//
------
//////----
//////-----
//////
-----
||--------
||--
||---
||
Prendre le recul n'est pas une perte de temps.
ps:
Affrontez moi dans l'arène