Souci jointure

Résolu/Fermé
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017 - 30 déc. 2015 à 01:23
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017 - 31 déc. 2015 à 12:49
Bonsoir,

Je viens à nouveau vous car, j'ai un autre souci qui est le suivant :

J'ai fait une jointure de table afin de pouvoir afficher une liste de chose que les membres ont mais le souci c'est que la liste est vide alors qu'elle devrait contenir des choses.

Voici le code correspondant :

Suppression de Pokemon >>
<form method="post" action="moderation.php">
 <label for="membres">A quel membre veux-tu faire une suppression de pokemon ?</label><br />
 <select name="membres" id="membres">
  <?php
  $reponse = $bdd->query('SELECT * FROM membres');

  while ($donnees = $reponse->fetch()) {
   ?>
   <option value=" <?php echo $donnees['ID']; ?>"> <?php echo $donnees['ID'];  echo $donnees['pseudo']; ?></option>
   <?php
  }

  $reponse->closeCursor();

  ?>
 </select>
 <input type="submit" name="envoyer" value="Choisir ce membre" />
</form>
   <?php
    if ($_POST['envoyer']) {
  $sql = $bdd->query("SELECT transfertspokemon.ID AS id_poke, transfertspokemon.membre_id, transfertspokemon.no, 
  transfertspokemon.niveau, transfertspokemon.lieu, transfertspokemon.sexe, transfertspokemon.points, 
  transfertspokemon.shiney, membres.ID AS id_membre, membres.pseudo 
  FROM transfertspokemon 
  INNER JOIN membres 
  ON transfertspokemon.membre_id = membres.ID WHERE membre_id='".$_POST['id_membre']."'");
  echo "<form name='pok-delete' method='post' action='moderation.php'>";
   echo "<select name='pokemon'>";
    while($don = $sql->fetch()) {
     echo "<option value='".$don['id_poke']."' for='item'><b>".($don['no'])."</b></option>";
    }
   echo "</select>";
  echo "</form>";
    } else {
        echo 'Tu doit selectionner un membres';
    }
   
   if (!empty($_POST['pok-delete'])) {
  // REQUETE DE SUPPRESSION
  $suppr = $_POST['pokemon'];
  $sql = $bdd->execute("DELETE FROM transfertspokemon WHERE ID='".$suppr."'");
   }
?>


Si vous avez une idée, se serais sympa.

Merci par avance.

2 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
30 déc. 2015 à 11:19
Salut,

En complément de la réponse de jordane45, l'attribut name de ta balise select est égal à "membres", or dans le traitement de ton formulaire tu essayes de récupérer le paramètre post "id_membres".

Bonne journée
1
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
30 déc. 2015 à 12:59
en faite ça fontionne j'avais comme l'a di pitet mis le mauvais select. bref merci à toi.

Heu par contre, j'ai un souci dans ma requete de suppression :

if (!empty($_POST['pok-delete'])) {
  // REQUETE DE SUPPRESSION
  $suppr = $_POST['pok-delete'];
  $sql = $bdd->exec("DELETE FROM transfertspokemon WHERE '".$_POST['id_poke']."'='".$suppr."'");
  echo "</br>Le pokemon à bien été supprimé";


une idée ?
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
30 déc. 2015 à 14:06
Quel est le soucis ? Un message d'erreur ?
Que vaut $_POST['id_poke'] et $_POST['pok-delete'] ?
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
30 déc. 2015 à 17:24
heu elle ne m'affiche rien du tous donc ça doit pas être les bonne variable du coup.
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
30 déc. 2015 à 21:42
j'ai aucune erreur, le message contenu dans le "echo" s'affiche bien par contre l'action qu'elle doit effectuer ne s'éffectue pas soit la suppression.
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
31 déc. 2015 à 04:15
une idée ?
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié par jordane45 le 30/12/2015 à 04:07
Même réponse que pour tes messages précédents !

1 - Récupère PROPREMENT les variables AVANT de les utiliser
$id_membre = isset($_POST['id_membre']) ? $_POST['id_membre'] : NULL;


2 - TESTES ta requête en direct dans ta BDD (en prenant soin de remplacer les variables par des valeurs existantes) et regarde ce que ça donne.

N'hésites pas non plus à faire des retours à la ligne dans ta requête histoire qu'elle soit plus lisible.
Penses également à utiliser des ALIAS pour les noms des tables (là encore pour faciliter la lecture de ta requête)


$sql = "SELECT T.ID AS id_poke
              ,T.membre_id
               , T.no
               , T.niveau
               , T.lieu
               , T.sexe
               , T.points
               , T.shiney
               , M.ID AS id_membre
               , M.pseudo 
      FROM transfertspokemon T
      INNER JOIN membres M  ON T.membre_id = M.ID 
      WHERE T.membre_id='$id_membre'";

  $resultat = $bdd->query($sql);


Cordialement, 
Jordane                                                                 
0