> Tous les forumsForum des Webmasters

 Problème SQLSujet résolu
Statut du sujet : RESOLU Imprimer
 TylerRsT
  Posté le 10/02/2008 @ 21:16  
 Petit astucien

30 Messages

Salut à tous,

voilà j'ai une petite question à vous poser :

j'aimerai savoir si il est possible dans mon code de créer une boucle ayant chercher dans une table bien précise de ma base de données le nom de chaque champ et de me transmettre sa donnée en variable...

Ce que je veux dire c'est que par exemple, j'ai un champ nommé pseudo dans ma table, et la boucle permet de créer la variable suivante :

$pseudo="Tyler";

Si la valeur du champ est Tyler bien entendu.

Bien sur, je récupère ces données par une localisation avec SELECT et le numéro choisi du compte...

Merci d'avance, bye

 Afficher le profil de TylerRsTEnvoyer un message privé à TylerRsT
 
 
Publicité
 tirikou  Posté le 11/02/2008 à 10:59  
Petit astucien


929 Messages

Bonjour,

Bien sûr que tu peux.

$search1 = mysql_query (SELECT pseudo FROM ma_table ....

while ($search = mysql_fetch_array($search1)) {

$pseudo = $search['pseudo'];

}

Et cela liste tous les pseudos de ta table

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 TylerRsT  Posté le 11/02/2008 à 18:25  
Petit astucien

30 Messages

Bonjour, merci de ta réponse

Mais ce n'est pas ce que je demandais en réalité

Je voudrais que mon code fasse une boucle et crée lui même la variable

Si je rajoute des champs dans ma table, je n'aurai pas besoin d'ajouter la variable dans mon code.

Par exemple, je sais que récupérer le nombre de champs c'est mysql_num_fields

Ce dont j'aurai besoin c'est une fonction qui me donne le nom du champ.

Afficher le profil de TylerRsTEnvoyer un message privé à TylerRsT
  Revenir en haut de la page
 Malcolm  Posté le 11/02/2008 à 20:17  
  Astucien


7271 Messages

Dès lors que tu fais un mysql_fetch_array, tu crées un tableau dit "associatif", dont les index sont les noms des champs et les valeurs les valeurs de l'enregistrement.
Supposons la base de données suivante :

  1. ID REFERENCE STOCK
  2. --------------------------------------------------
  3. 1 Ref.AABBCC 25
  4. 2 Ref.XXYYZZ 30
  5. 3 Ref.ALPHA 10
  6. 4 Ref.OMEGA 0

Si tu fais une requête du type :

  1. $req = "SELECT ID, REFERENCE, STOCK FROM table WHERE STOCK = 0";

alors une seule ligne (celle dont l'ID est 4) te sera retournée.
Tu pourras alors faire : $valeur = mysql_fetch_array($dataset); et ton tableau associatif contiendra alors :

  1. 1 => 4
  2. id => 4
  3. 2 => Ref.OMEGA
  4. REFERENCE => Ref.OMEGA
  5. 3 => 0
  6. STOCK => 0
  7. )

à partir de là, c'est très simple de savoir tous tes noms de colonnes : tu parcours ton tableau sur tous les indices non numériques :

  1. foreach($valeur as $index => $val)
  2. {
  3. if (!is_numeric($index))
  4. {
  5. // on est sur un index qui correspond à une colonne SQL
  6. ...
  7. }
  8. }

Si j'ai pris la peine de te donner un exemple avec une table à 4 enregistrements, c'est que le mysql_fetch_array(...) ne prendra que la dernière ligne. Le fait de faire un while (dans le cas où tu as plusieurs enregistrements qui te sont retournés, par exemple si je demande WHERE STOCK != 0) alors tu redéfiniras ton tableau ($valeur) à chaque fois, mais les noms de colonnes resteront les mêmes. Par contre le foreach te passera plusieurs fois dans la boucle.

Afficher le profil de Malcolm Voir la configuration de MalcolmEnvoyer un message privé à Malcolm
  Revenir en haut de la page
 TylerRsT  Posté le 11/02/2008 à 21:06  
Petit astucien

30 Messages

c'est ce qu'il me faut, mais est-ce que je peux remplacer le nom des champs dans le SELECT par *??

de ce fait il les choisirait tous, et ainsi il les prendrait dans l'ordre de la bdd... non?

Afficher le profil de TylerRsTEnvoyer un message privé à TylerRsT
  Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsForum des Webmasters

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page