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

  FORUM HardWare.fr
  Programmation
  PHP

  Tableau indexé avec des chaînes, ok sous Easyphp, pb chez free

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tableau indexé avec des chaînes, ok sous Easyphp, pb chez free

n°2124243
Hig2
Posté le 31-01-2012 à 18:57:06  profilanswer
 

Salut salut!
 
Je viens à vous car j'ai un problème dans une page de mon site. J'ai déjà passé plusieurs nuits blanches et usé plusieurs cerveaux sans trouver  :pt1cable:  ... !
Donc, voici mon problème:
 
J'aimerais remplir un tableau avec des données de ma BDD, en indexant le tableau avec les titres des colonnes de la table de la BDD.
Ex: table: arbre, colonnes: feuille=3, branche=1, racine=2.

Code :
  1. $points=mysql_fetch_array($rst01); //après un mysql_query, je récupère les résultats dans $points
  2.  
  3.   for($i=1; $i<mysql_num_fields($rst01); $i++){  //je commence à 1 pour éviter la colonne ID.
  4.     $p[mysql_field_name($rst01,$i)]=$points[$i]; //j'indexe le tableau avec le nom des colonnes, et je le rempli avec leur contenu.
  5.   }

J'obtiens donc: $p[feuille]=3, $p[branche]=1, $p[racine]=2.
Donc, si j'écris $variable=$p["feuille"] j'obtiens $variable vaut 3. Enfin...sous EasyPHP.
 
Par contre, sous free (j'héberge mon site là-bas), il y a un problème:
 
mysql_field_name($rst01,$i) me rend bien "feuille", "racine" ou autre.
$points[$i] me donne bien les bons résultats.
 
Par contre, si je demande $p["feuille"] j'obtiens une valeur fantaisiste...! 0 en général.
:pt1cable:
Et quelques fois, cela fonctionne. Mes colonnes s'appellent "30x20", "30x30", "30x40", etc. quelques uns marchent, pas les autres...


---------------
----** Mon feed-back **----
mood
Publicité
Posté le 31-01-2012 à 18:57:06  profilanswer
 

n°2124247
Mara's dad
Yes I can !
Posté le 31-01-2012 à 19:22:29  profilanswer
 

http://www.php.net/manual/fr/funct [...] -array.php
Essayes d'ajouter MYSQL_BOTH en deuxième argument.
 
Essayes aussi un print_r( $points ) pour voir...


Message édité par Mara's dad le 31-01-2012 à 19:24:02

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°2124256
Hig2
Posté le 31-01-2012 à 20:46:19  profilanswer
 

Merci de ta réponse rapide :)
 
J'ai testé avec MYSQL_BOTH, sa ne marche pas mieux.
Par contre, j'ai inséré un print_r($points) et sa donne un truc du genre:
 
Array ( [0] => 2 [id_m] => 2 [1] => 1 [30x20] => 1 [2] => 1 [30x30] => 1 [3] => 1, ...
 
Pourquoi met-il des [0], [1], etc ??


---------------
----** Mon feed-back **----
n°2124975
Mara's dad
Yes I can !
Posté le 06-02-2012 à 08:43:02  profilanswer
 

Hig2 a écrit :

Pourquoi met-il des [0], [1], etc ??


 
Avec MYSQL_BOTH, mysql_fetch_array retourne un tableau avec les entrées en double :

  • Les unes indexées numériquement.
  • Les autres indexées avec les noms des colonnes.


Le but du print_r était que tu vérifie que les noms de colonnes retournées sont bien celles que tu attends, avec les bonnes valeurs.
 
Est-ce le cas ?
 
Tu peux aussi essayer d'installer http://www.phpmyadmin.net pour naviguer dans ta base et voir ce qui cloche.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°2124983
flo850
moi je
Posté le 06-02-2012 à 09:14:59  profilanswer
 

ce sera peut être plus propre comme ça :  

Code :
  1. $data = mysql_fetch_assoc($points);
  2. foreach($data as $key=>$value){
  3.    if($key != 'id'){
  4.       $p[$key] = $value;
  5.    }          
  6. }


ou  

Code :
  1. $p = mysql_fetch_assoc($points);
  2. unset($p['id']);


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

  Tableau indexé avec des chaînes, ok sous Easyphp, pb chez free

 

Sujets relatifs
Chaînes de caractèrestableau dynamique java
while et for sur tableaumodification d'un formulaire - tableau
tableau à double entrée à partir d'une requêtefonction d'affichage d'un tableau 2 dimensions
Déplacer une clé dans un tableau multidimensionnelPython - Ajout d'éléments dans un tableau de dimension >2
[Excel] tableau à "2 colonnes"[PERL] Supprimer valeure d'un tableau contenant des hash
Plus de sujets relatifs à : Tableau indexé avec des chaînes, ok sous Easyphp, pb chez free


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