[AIDE] Requete sql.

Bonjour,

J'vais essayer d'faire vite.
<form action="<?PHP $_SERVER['PHP_SELF'] ?>" method="post" enctype="application/x-www-form-urlencoded">
<?PHP

include 'config.php';

$id = $_GET['id'];
if(connexion_db()) {
$requete = "SELECT * FROM Media WHERE id='$id'";
$resultat = mysql_query($requete);
$requete2 = "SELECT Type.nom_type, Type.id FROM Type Type INNER JOIN Media Media ON Media.id_type=Type.id WHERE Type.id=Media.id_type";
$resultat2 = mysql_query($requete2);
if(!$resultat or !$resultat2) {
echo "<p>Impossible de traiter la requète.</p>";
}
else {
$tab = mysql_fetch_assoc($resultat);
$tab2 = mysql_fetch_assoc($resultat2);
}
}
?>
<p>Titre : <?PHP echo $tab["titre"]?></p>
<p>Auteur : <?PHP echo $tab["auteur"]?></p>
<p>Format : <?PHP echo $tab2["nom_type"]?></p><br/>
<p>Etes-vous certain de vouloir supprimer ce media ?</p>
<p>Attention! Si vous supprimez ce Media, vous supprimerez toutes les données en faisant partie.</p>
<p><input type="submit" value="Supprimer" name="Envoi"/></p>
</form>

voilà, c'est mon fichier deleteMedia, il faut savoir que dans la table media, il y a des dvd-blueray-cd, et dans la table type, il y a les 3 differents types.
Le probleme, c'est quand je veux supprimer et j'arrive pour confirmer, le titre et l'auteur s'affiche bien, mais le format est tjrs le même, à savoir blueray, premier dans ma table.
Quelqu'un saurait m'aider svp ? Merci.

2 réponses

  1. Dans ta requête SQL :
    SELECT Type.nom_type, Type.id FROM Type Type INNER JOIN Media Media ON Media.id_type=Type.id WHERE Type.id=Media.id_type

    Pourquoi Type et Media sont écrits 2 fois ?

    Essaye avec :
    SELECT Type.nom_type, Type.id FROM Type INNER JOIN Media ON Media.id_type=Type.id WHERE Type.id=Media.id_type
    1. Le fait de les écrire deux fois est inutile mais pas contre-productif.
      Le premier est le nom de la table, le deuxième le nom qu'on lui donne dans la requête, habituellement pour simplifier. Là, c'est cocasse et inutile, mais pas faux...
  2. Bonjour,

    Dans ta requête 2 :
    $requete2 = "SELECT Type.nom_type, Type.id FROM Type Type INNER JOIN Media Media ON Media.id_type=Type.id WHERE Type.id=Media.id_type"; 


    Ta condition WHERE n'est pas bonne, tu as repris le ON au lieu d'utiliser $id...

    Par contre, ton utilisation de deux requêtes au lieu d'une seule est bizarre. Pourquoi ne pas simplement écrire une requête comme ceci :
    $requete = "SELECT m.titre, m.auteur, t.nom_type FROM Media m  
    INNER JOIN Type t ON m.id_type=t.id 
    WHERE m.id=$id";


    Xavier