IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Problème de récupération de donnée après implode() [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Par défaut Problème de récupération de donnée après implode()
    Bonjour,

    J'avais un problème hier pour enregistrer un array dans ma bdd, j'ai trouvé la fonctoin implode, et tout va bien pour l'enregistrement, en revanche j'ai un problème pour utilisé ces données après.
    Je souhaite afficher les prêts en cours pour l'utilisateur qui se logge, j'ai donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    $req="SELECT L.id_personne, P.id_personne, Nom, Prenom, nom_materiel, M.id_materiel, PE.id_materiel, date_retour, login
    	FROM personnes P, prets PE, Logins L, materiel M
    	WHERE login = '".$cookieLOG."'
    	AND L.id_personne = P.id_personne
    	ORDER BY date_retour DESC";
     
    	$resultat = mysql_query($req)or die(mysql_error());
     
    	while($row = mysql_fetch_row($resultat)){
    		echo "<tr>";
    		echo "<td>$row[2]</td>";
    		echo "<td>$row[3]</td>";
    		echo "<td>$row[6]</td>";
    		echo "<td>$row[7]</td>";
    		echo "<td>__</td>";
    		echo "</tr>";
    	}
    		mysql_close($link);*/
    	?>
    dans mon $row[7], je reçois bien mes id_materiel du prêt effectuer par l'utilisateur, cependant j'aimerais afficher les noms de materiels.

    comment faire une requête pour traduire mes id_materiel en nom_materiel et les introduires dans ma requête ci-dessus.

    J'ai tenter ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $req = mysql_query("SELECT id_materiel, nom_materiel, L.id_personne, P.id_personne								  FROM personnes P, prets PE, Logins L 
    WHERE L.id_personne = P.id_personne
    AND P.id_personne = PE.id_personne
    AND login = '".$cookieLOG."'");
     
      $requete1=mysql_query($req);
      while($row10 = mysql_fetch_array($requete1)){;
    	echo $row10[1];
      }
    Cependant cela ne fonctionne pas, j'ai aussi essayer la fonction explode() mais je ne comprend pas bien le but de cette fonction.

    Je vous remercie pour votre attention

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Mettre plusieurs valeurs dans un même champ est une mauvaise idée qui mène a ce genre de problème.
    Il faut un enregistrement pour chaque id.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Par défaut
    Voici ma table pret:
    id_pret
    date_depart
    date_retour
    num_BL
    id_personne
    id_materiel

    pour un même id prêt je peux avoir plusieurs matériels prêtés, cela va me faire beaucoup de ligne si lors de l'enregistrement d'un prêt avec plusieurs matériels j'ai une ligne pour chaque matériel.

    Aurais tu une solution approprié dont je n'aurai pas pensé?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il te faut une autre table pour stocker les id_materiel correspondant a chaque prêt (id,id_pret,id_materiel).

    Une base de données est faite pour gérer de nombreuses lignes.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Par défaut
    J'ai modifié mes plans et je souhaite modifier mes valeurs avant de les enregistrer dans ma bdd

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $Materiel = $_POST['list2']; //récupère les id_materiel(array) dans une variable
     
    for($i=0; $i<count($Materiel); $i++){
    	foreach ($Materiel[$i] as $value){
    //Je traduis mes id en nom:
    		$requete1=mysql_query("SELECT id_materiel, nom_materiel FROM materiel WHERE id_materiel = '".$value."'");
    		$row2 = mysql_fetch_row($requete1);
    		$id_materiel=$row2[1];
    		echo $id_materiel;
     
    	}
    }
    Cependant il m'affiche ce message:
    Warning: Invalid argument supplied for foreach() in
    Je souhaites traduire mes id en nom avant de les enregistrer dans ma bdd, ai-je la bonne méthode?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach ($Materiel as $value){
    sans la boucle for
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/11/2011, 12h30
  2. Réponses: 1
    Dernier message: 17/06/2008, 12h02
  3. Réponses: 22
    Dernier message: 05/07/2006, 15h21
  4. [MySQL] Problème de récupération de données
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 05/04/2006, 15h13
  5. Problème de récupérations de données dans une table mysql
    Par Helpine dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 09/03/2006, 19h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo