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

  FORUM HardWare.fr
  Programmation
  PHP

  mysql_fetch_array

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

mysql_fetch_array

n°790121
matyoo
Posté le 08-07-2004 à 12:11:27  profilanswer
 

Bonjour,
j'aimerais pouvoir créer automatiquement les  
 
row[0];
row[1];
 
suivant le nombre de champ qui existent (car ceux ci peuvent changer, ici dans l exemple j'en ai 2 "nom et prenom" )
 
exemple :
 
$requette = "select * from $table";  
$valchamp = mysql_query($requette);  
 
for( $j = 0; $j < mysql_num_rows($valchamp); $j++ ) {  
 
$row = mysql_fetch_array($valchamp,$i);
echo row[0];
echo row[1];
}
si je rajoute le champ telephone et le champ portable ca m'en fait 4.
et je ne voudrait pas remodifier le code php en rajoutant :
 
echo row[0];
echo row[1];
echo row[2];
echo row[3];

mood
Publicité
Posté le 08-07-2004 à 12:11:27  profilanswer
 

n°790128
boulax
Inserer phrase hype en anglais
Posté le 08-07-2004 à 12:15:52  profilanswer
 

http://fr.php.net/manual/fr/functi [...] fields.php


---------------
Posté depuis des chiottes, sales. Me gusta.
n°790130
T509
$job-&gt;GetJob(now)
Posté le 08-07-2004 à 12:17:44  profilanswer
 

foreach($row as $value) echo $value;
 
optimise ta boucle :
while ($row = mysql_fetch_array($valchamp)) {
   ...
}


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°790141
matyoo
Posté le 08-07-2004 à 12:35:03  profilanswer
 

mysql_num_fields me donne le nom des champs mais pas le contenu ?.

n°790143
matyoo
Posté le 08-07-2004 à 12:35:50  profilanswer
 

T509 merci pour le foreach

n°790148
boulax
Inserer phrase hype en anglais
Posté le 08-07-2004 à 12:38:25  profilanswer
 

matyoo a écrit :

mysql_num_fields me donne le nom des champs mais pas le contenu ?.


 

Citation :

mysql_num_fields() retourne le nombre de champs


 
mais le foreach marche aussi


---------------
Posté depuis des chiottes, sales. Me gusta.
n°790157
matyoo
Posté le 08-07-2004 à 12:45:23  profilanswer
 

en fait c est pour mettre dans un fichier csv.
donc j'ai utilisé le mysql_num_field pour inscrire en en-tete de mon fichier les noms des champs.
ca ca marche.
maintenant je mes les données des champs dans le fichier csv.
mais je voudrais automaitiser les $row au lieu de les mettre un par un.

n°790169
T509
$job-&gt;GetJob(now)
Posté le 08-07-2004 à 12:54:44  profilanswer
 

Il y a ADOdb qui te permet de faire de l'exportation CSV.
 
C'est une classe d'abstraction systèmes BDD
pour l'exemple CSV : http://phplens.com/lens/adodb/docs-adodb.htm#ex9


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°790187
matyoo
Posté le 08-07-2004 à 13:26:32  profilanswer
 

$requete = "select * from $tablename ORDER by $tablename ASC";  
if($p = @mysql_query($requete)){      
while($r = @mysql_fetch_array($p)){          
$values = "$r[0],$r[1],$r[2],$r[3]"; (y en a 10 mais peuvent changer)
fputs($fp,$values);                            // ecrit dans le fichier
fputs ($fp,"\n" );
 
}
}
 
voila le code qui fonctionne.
maintenant je voudrait automatiser les $r[0]...dans $values


Message édité par matyoo le 08-07-2004 à 13:29:06
n°790203
T509
$job-&gt;GetJob(now)
Posté le 08-07-2004 à 13:34:38  profilanswer
 

Ben utilise le foreach ...

Code :
  1. $csv = "";
  2. while($rang = mysql_fetch_array($retour_sql)) {
  3.         foreach($rang as $valeur) $csv .= $valeur.",";
  4.         //suppression de la dernière virgule
  5.         //remplacement par "\n"
  6. }
  7. //enregistrement dans un fichier ou download direct


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
mood
Publicité
Posté le 08-07-2004 à 13:34:38  profilanswer
 

n°790209
matyoo
Posté le 08-07-2004 à 13:36:45  profilanswer
 

merci beaucoup

n°791147
matyoo
Posté le 09-07-2004 à 09:05:03  profilanswer
 

j'ai bien mes données dans mon tableau csv il saute bien 1 ligne pour les différentes entrées,
par contre à chaque ligne il me met les infos en double
 
colonne1  colonne2  colonne3        colonne4  colonne5   colonne6
nom        prenom   telephone       portable   adresse   pays
 
dupond     dupond   eric             eric       0160      0160
durand     durand   marc             marc       0250      0250
 
 
le code
 
$requete = "select * from $tablename ORDER by $tablename ASC";
 
 
if($p = @mysql_query($requete)){
 
while ($r = mysql_fetch_array($p)) {
 
           foreach($r as $valeur) {
 
               $csv = "$valeur,";
 
               fputs($fp,$csv);
                      }
               fputs ($fp,"\n" );
  }
}
j'ai enlever le $csv =""; car ca me mettait la premier entrée de ma base sur toutes les lignes.


Message édité par matyoo le 09-07-2004 à 09:06:51

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

  mysql_fetch_array

 

Sujets relatifs
clause union et mysql[bdd/mysql] fermeture de connexion
petit soucis au lancement de mySQL sous linux (REDHAT 9.0)Administration MySQL: gestion des utilisateurs
PHP probleme easyphp et mysql_fetch_array[PHP/MySQL] Nombre de lignes dans mysql_fetch_array ?
plusieurs mysql_fetch_array() pour un mysql_query()[PHP] Demande d'infos à Propos de mysql_fetch_array
Faire un MYSQL_FETCH_ARRAY... [ - Job's Done - ][php-mysql] mysql_fetch_array ou mysql_result en série?
Plus de sujets relatifs à : mysql_fetch_array


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