suppression dans plusieurs tables

Mammouth du PHP | 1353 Messages

09 juin 2006, 12:01

je crois que je viens de comprendre !!!

Ne faudrait il pas supprimer l entreprise de la base APRES y faire référence dans les autres requetes ????

Tu supprimes l entreprise et tu la cherches apres c est surement la l erreur... Si tu mets la requete $query2 à la fin cela marche mieux non ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 juin 2006, 12:09

En effet, comme le dit guilt92, la logique voudrait que tu supprimes en premier les enregistrements fils, et ensuite les enregisrements peres. L'idéal est de contrôler que la suppression des fils c'est bien passé avant de supprimer leur pôpa chéri. Comme ça s'il y a eu un problème de suppression, tu as toujours le père pour les retrouver et ça t'évite d'avoir des enregistrement sans référence qui se balladent dans ta base :)

A quand l'intégrité sur mysql ?! :(

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

09 juin 2006, 12:36

Voila comment j'ai fait, mais là ça ne supprime rien.
Pourquoi, je ne vois pas où est l'erreur. Depuis hier je potasse dessus, et je comprends pas où peut être mon erreur.
......
$query3 = "DELETE FROM offre_stage WHERE entreprise.nom_entreprise=offre_stage.nom_entreprise 
AND entreprise.id='$id'"; 
......

$query4 = "DELETE FROM offre_emploi WHERE entreprise.nom_entreprise=offre_emploi.nom_entreprise 
AND entreprise.id='$id'";
....
Tes requêtes Delete sont fausses, elles se référent à la table entreprise qui n'est pas citée dans le FROM

A mon avis, il faut prendre en considération ce qui est dit par guilt92 et confirmé par Ryle mais aussi de vérifier si les noms de l'entreprise sont écrits de la même façon dans les différentes tables.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Mammouth du PHP | 536 Messages

09 juin 2006, 13:38

j'ai changé l'ordre de mes requetes, de cette maniere:
//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 
$query = "SELECT * FROM entreprise, offre_emploi, offre_stage WHERE entreprise.id='$id' AND entreprise.nom_entreprise=offre_emploi.nom_entreprise 
AND  entreprise.nom_entreprise=offre_stage.nom_entreprise"; 
$resultat = mysql_query($query); 

//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 
$query3 = "DELETE FROM offre_stage WHERE entreprise.nom_entreprise=offre_stage.nom_entreprise AND entreprise.id='$id'";
$resultat3 = mysql_query($query3);

$query4 = "DELETE FROM offre_emploi WHERE entreprise.nom_entreprise=offre_emploi.nom_entreprise AND entreprise.id='$id'";
$resultat4 = mysql_query($query4);

$query2 = "DELETE FROM entreprise WHERE entreprise.id='$id'"; 
$resultat2 = mysql_query($query2);

}//fin if
Mais cela ne supprime toujours rien. Les noms des entreprises sont bien les mêmes.
Comment faire apparaitre la table entreprise dans le FROM ? si je fais ca :
$query3 = "DELETE FROM offre_stage, offre_emploi, entreprise WHERE entreprise.nom_entreprise=offre_stage.nom_entreprise AND entreprise.nom_entreprise=offre_emploi.nom_entreprise AND entreprise.id='$id'";
$resultat3 = mysql_query($query3);
ca ne marche toujours pas
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Mammouth du PHP | 536 Messages

09 juin 2006, 15:53

en fait, pour mon probleme, le requetes ne sont pas exécutées. car les echo() que je mets juste après n'apparaissent pas.
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Mammouth du PHP | 536 Messages

12 juin 2006, 09:21

apparement, personne ne peut m'aider
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!