[AIDE] Requete sql.

Fermé
Ars - 14 août 2011 à 12:26
Reivax962
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
- 22 sept. 2011 à 17:53
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

jojo673
Messages postés
210
Date d'inscription
lundi 19 septembre 2011
Statut
Membre
Dernière intervention
9 avril 2014
44
19 sept. 2011 à 11:59
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
0
Reivax962
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 006
22 sept. 2011 à 17:50
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...
0
Reivax962
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 006
Modifié par Reivax962 le 22/09/2011 à 17:54
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
0