mysql_fetch_array

mysql_fetch_array - PHP - Programmation

Marsh Posté le 08-07-2004 à 12:11:27    

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];

Reply

Marsh Posté le 08-07-2004 à 12:11:27   

Reply

Marsh Posté le 08-07-2004 à 12:15:52    

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


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 08-07-2004 à 12:17:44    

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 !
Reply

Marsh Posté le 08-07-2004 à 12:35:03    

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

Reply

Marsh Posté le 08-07-2004 à 12:35:50    

T509 merci pour le foreach

Reply

Marsh Posté le 08-07-2004 à 12:38:25    

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.
Reply

Marsh Posté le 08-07-2004 à 12:45:23    

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.

Reply

Marsh Posté le 08-07-2004 à 12:54:44    

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 !
Reply

Marsh Posté le 08-07-2004 à 13:26:32    

$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
Reply

Marsh Posté le 08-07-2004 à 13:34:38    

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 !
Reply

Marsh Posté le 08-07-2004 à 13:34:38   

Reply

Marsh Posté le 08-07-2004 à 13:36:45    

merci beaucoup

Reply

Marsh Posté le 09-07-2004 à 09:05:03    

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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed