CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[php/sql] requête => array associatif

[Disk_error]
[Disk_error]
Niveau 6
22 février 2010 à 09:27:31

Bonjour :)

Voila je bute sur un petit problème. Je fais un site en php, que je fais en multilingue. Comme il affiche tres peu de texte, j'ai opté pour un stockage de toutes les "chaines" dans la BDD, sous la forme d'une table contenant les champs "ID, ID_CHAINE, LANGUAGE, et CHAINE".

Par exemple, j'ai les enregistrements
"1, 1, 'FR', 'Bienvenue'"
"2, 1, 'US', 'Welcome'"

ect pour chaque chaine.

Le probleme c'est que pour afficher, je fait une requête qui recupere tout les champs de la table, selon le langage (qui est stocké en variable session, donc en gros SELECT * FROM libelle WHERE LANGUAGE='FR'), et ensuite je place des echo mysql_result($strings,0); un peu partout sur la page.

Le probleme est que je doit donc faire appel à pas mal de requêtes, et que les champs sont décalés (en fait j'aimerais me servir du champ ID_CHAINE pour récupérer la bonne chaine, mais ici ça commence à 0, donc tout est décalé de 1.)

J'aimerais donc tout simplement que ma requête me renvoi un array associatif de la forme suivante :

ID_CHAINE -> CHAINE

Ainsi, $string['5'] me renverrais bien la valeur du champ ou ID_CHAINE = 5, et non pas le sixième enregistrement (et de plus je suis quitte d'utiliser une fonction, donc plus rapide :) )

En espérant avoir été assez clair (pas doué pour expliqué), j'espère qu'une requête peut faire ça, merci à qui pourra m'aider :-)

deepblue
deepblue
Niveau 16
22 février 2010 à 10:52:19

Quand tu fais ta requete, tu parcours les résultats, et tu créés un array associatif.

$string = array();

while($res = mysql_fetch_assoc($taRequete)) {
$string[$res->ID_CHAINE] = $res->CHAINE;
}

[Disk_error]
[Disk_error]
Niveau 6
22 février 2010 à 11:05:06

Testé et aprouvé :-) J'avais effectivement pas pensé a remplir un tableau de la sorte, j'avais cru qu'on pouvais faire un tableau sur mesure avec sql :p)

Merci beaucoup & bonne journée :-)))

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment