Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1438 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  convert. array numérique en clé primaire-valeur from MySQL?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

convert. array numérique en clé primaire-valeur from MySQL?

n°677746
AGA
La boîte à Bokeh!
Posté le 19-03-2004 à 09:36:47  profilanswer
 

salut,
 
j'obtiens via mysql_fetch_row des tableaux de la forme :
 
tab[0]=clé primaire de la table
tab[1]=colonne de la table
 
Je voudrais convertir en  
 
tab[clé primaire]=colonne
 
Comment?

mood
Publicité
Posté le 19-03-2004 à 09:36:47  profilanswer
 

n°677762
ratibus
Posté le 19-03-2004 à 09:43:05  profilanswer
 

tu peux faire ça :
 
$tab2[$tab[0]] = $tab[1];
 
T'es sur que c'est ce que tu veux faire ? Et pas plutot utiliser mysql_fetch_assoc au lieu de mysql_fetch_row ?

n°677799
AGA
La boîte à Bokeh!
Posté le 19-03-2004 à 10:10:14  profilanswer
 

la honte :sweat:
Il y a des fois je sais pas à quoi je reflechis...
 
l'idée c'est ça :
 
une fonction pour faire des listBox html

Code :
  1. function ListBox($valeurs,$index,$nom)
  2. {
  3.  $res="\n<select name=\"$nom\">";
  4.  reset($valeurs);
  5.  while (!is_null($key=key($valeurs)))
  6.  {
  7.   if ($key==$index) $select=' selected=selected';
  8.   else $select='';
  9.   $res.="\n\t<option value=\"".$key."\"".$select.">$valeurs[$key]</option>";
  10.   next($valeurs);
  11.  }
  12.  $res.="\n</select>";
  13.  return $res;
  14. }


 
 
ça c'est général c'est dans mes 'outils'.
 
Ensuite je developpe une interface pour le projet actuel :
cad que le tableau a passer c'est issu de Mysql.
 
soit ma fonction d'interface :

Code :
  1. function SelectUserLevel($db, $index)
  2. {
  3.  $sql='select
  4.  userlevel_num,
  5.  userlevel_nom
  6.  from userlevel';
  7.  $res=execRqt($sql,$db);
  8.  while($myrow=LigneSuivante($res))
  9.  {
  10.   $tab[$myrow[0]]=$myrow[1];
  11.  }
  12.  return ListBox($tab,$index,'lb_userlevel');
  13. }


 
Correct?
 
élégant?

n°677816
ratibus
Posté le 19-03-2004 à 10:23:09  profilanswer
 

Voici les modifications que j'apporterais :D
 
une fonction pour faire des listBox html

Code :
  1. function ListBox($valeurs,$index,$nom) {
  2.     $res="\n<select name=\"$nom\">";
  3.     foreach( $valeurs as $key => $valeur) {
  4.        $select = ($key==$index) ? ' selected=selected' : '';
  5.       $res.="\n\t<option value=\"".$key."\"".$select.">$valeur</option>";
  6.     }
  7.     $res.="\n</select>";
  8.     return $res;
  9. }


 
fonction d'interface :

Code :
  1. function SelectUserLevel($db, $index) {
  2.     $sql='select
  3.     userlevel_num,
  4.     userlevel_nom
  5.     from userlevel';
  6.     $res=execRqt($sql,$db);
  7.     while($myrow=LigneSuivante($res)) {
  8.         $tab[$myrow[0]]=$myrow[1];
  9.     }
  10.     return ListBox($tab,$index,'lb_userlevel');
  11. }

n°677842
AGA
La boîte à Bokeh!
Posté le 19-03-2004 à 10:50:34  profilanswer
 

merci ;)
 
le foreach est il plus rapide / adapté?
 
par contre je n'ai pas compris ça :
$select = ($key==$index) ? ' selected=selected' : '';  
 
Peux tu me l'expliquer?
Merci.

n°677872
ratibus
Posté le 19-03-2004 à 11:05:06  profilanswer
 

C'est l'opérateur ternaire (":?" ), qui fonctionne comme en langage C.  
 
 

Code :
  1. <?php
  2. // Exemple d'utilisation pour l'opérateur ternaire
  3. $action = (empty($_POST['action'])) ? 'default' : $_POST['action'];
  4. // L'expression ci-dessus est identique à  
  5. if (empty($_POST['action'])) {
  6.    $action = 'default';
  7. } else {
  8.    $action = $_POST['action'];
  9. }
  10. ?>


 
L'expression (expr1) ? (expr2) : (expr3) renvoie la valeur de l'expression expr2 si l'expression expr1 est vraie, et l'expression expr3 si l'expression expr1 est fausse.  
 
 
Copier/coller de http://www.php.net/manual/fr/langu [...] arison.php


Message édité par ratibus le 19-03-2004 à 11:05:28
n°677891
ratibus
Posté le 19-03-2004 à 11:13:57  profilanswer
 

http://www.blueshoes.org/phpBench.php
 
Le bench est fait avec de gros tableaux, il ne tient qu'à toi de tester toi-même le temps avec le foreach et avec le while :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  convert. array numérique en clé primaire-valeur from MySQL?

 

Sujets relatifs
array_push array_popProbleme pour supprimer une valeur dans ma bdd
URGENT MAJ cle primaire SQL et de tous les fichiers qui la contienneSQL expert MAJ cle primaire et impact sur bdd (HELP!) urgent
Comment ca marche le mysql_connect ?[php] récupérer l'id d'une ligne apres un INSERT MySQL
XML contre MysqlMySQL-Python Affichage du contenu d'une table
C++ : Comment copier une valeur d'un fichier .txt et le coller...[MySQL] tester si une valeur est déja présente dans une colonne
Plus de sujets relatifs à : convert. array numérique en clé primaire-valeur from MySQL?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR