Récupération de données dans une base de données

Petit nouveau ! | 8 Messages

01 juil. 2016, 16:27

Bonjour à toute la communauté,

Je possède une table dans lequel figure plusieurs colonnes (jusqu'ici tout va bien) dont les trois qui nous intéressent : field_id; user_id; value;
Lors d'un enregistrement il y a plusieurs champs à remplir dont les informations viennent s'ajouter dans la colonne "value".
Chaque type d'information possède un id qui figure dans "field_id".

Par exemple : "nom" à l'identifiant 1 dans "field_id", "prénom" à l'identifiant 2 dans "field_id", etc...
Par exemple :

field_id / user_id / value
5 / 64 / Faut que ça bouge !
field_id / user_id / value
36 / 64 / Aucune
field_id / user_id / value
9 / 64 / hôtel

Je cherche à reprendre sur une page presque toutes les informations que renseigne un membre mais je veux pouvoir afficher uniquement les informations que je veux sélectionner... J'arrive à tout afficher concernant un utilisateur mais pas à afficher individuellement. Si je veux juste prendre la valeur du field_id 5 et 9 et pas le 36 je n'y arrive pas.

Pour le moment voici le code que j'ai :
$result = $mysqli->query('SELECT * FROM ma_table WHERE user_ID = "' . $user_ID . '"');
		while($row = $result->fetch_array())
		{
			$details = $row['value'];
			$field_id = $row['field_id'];
			echo $details; [b] // TOUT S'AFFICHE POUR UN UTILISATEUR[/b]

			foreach ($details as $key => $detail)
			{
				echo $detail. '<br>'; [b]// RIEN NE S'AFFICHE ICI AVEC CELA[/b]
			}
		}
D'avance merci :)

Mammouth du PHP | 2703 Messages

01 juil. 2016, 16:45

SELECT * FROM ma_table WHERE user_ID = "' . $user_ID . '" and field_id != 36

Petit nouveau ! | 8 Messages

01 juil. 2016, 17:05

Merci à toi.
Après je tente ça mais ça ne fonctionne pas :
while ($row = $result->fetch_array())
		{
			$value = $row['value'];
			echo $value;
		}

Petit nouveau ! | 8 Messages

02 juil. 2016, 12:21

up ?

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

04 juil. 2016, 09:47

Modération :
Les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est (au choix) :
- que ta question est mal formulée : reformule-la différemment ;
- que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
- que la réponse demandée exige un travail important que personne ne va faire à ta place ;
- que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Il en faut peu pour être heureux ......

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

04 juil. 2016, 09:57

pour répondre à ta question i te faut utiliser la clause in SQL. Il te faut pour celà récupérer les id que tu souhaites afficher avant.

Pour reprendre ton code, je pense que tu n'as pa bien compris le concept de requête sql et de ce que cela retourne.
Je t'invite à tester tes requêtes avec un client SQL pour te rendre compte de ce que tu obtiens comme données.
<?php
// selection de toute les ligne de la table ma_table pour le user_ID = $user_ID (au passage vire le ' si l'id est un entier (comme le suggère le nom)
$result = $mysqli->query('SELECT * FROM ma_table WHERE user_ID = "' . $user_ID . '"');
// pour chaque ligne retournée par la requête de la ligne précédent je demandes les données dans un tableau (chaque index est le nom de la colonne). 
    while($row = $result->fetch_array())
    {
      $details = $row['value'];// inutile utilise directement $row['value'] pour l'affichage. En règle générale évite les variables intermédiaires. 
      $field_id = $row['field_id'];// inutilisée, donc à supprimer
      echo $details;  // affichage de la colonne value de la ligne de résultat courante. 
// BOOM : $details n'est pas un tableau
      foreach ($details as $key => $detail)
      {
        echo $detail. '<br>'; // RIEN NE S'AFFICHE ICI AVEC CELA => ben oui normal
      }
    }
est ce que tu affiches les erreurs php ? (display_error = On)
est ce que le niveau d'erreur est bien à E_ALL (errore_reporting = E_ALL)
ces deux paramètres sont obligatoires pour développer de façon "efficace" (on fait rarement bien du premier coup).



@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 8 Messages

04 juil. 2016, 14:40

Je n'ai aucun message d'erreur, je sais pas si tu vois exactement ce que je veux faire... Mais je viens de trouver, merci quand même et aussi désolé pour le petit "up".
Tu as l'air d'être caler en PHP, si ça t'intéresse j'ai ouvert un autre poste sur l'autocomplétion :)

Merci à toi