Requête SQL

WRInaute discret
Hello à tous
J'essaie de sortir différentes lignes d'une table, et de mettre chacune d'entre elle dans un array.

En gros, il faudrait que j'arrive au résultat suivant :
Code:
$search = array ('champ 1 ligne 1', ''champ 1 ligne 2', 'champ 1 ligne 3', etc);
J'ai essayé un mysq_fetch_array mais ça semble coincer.

Par ailleurs, je ne souhaite pas récupérer QUE le champ 1 de chaque ligne (en récupérer plusieurs, mais ne mettre que ce premier champ en array) ...

Qqun peut-il m'éclairer ?
++
 
WRInaute discret
Peut-être parce que la commande est: mysql_fetch_array
Pour uniquement le premier champs, change la requête SQL
"select col1 from tablex"

mysql_fetch_array ne feed que le premier row, il faut faire une boucle:
Exemple:
Code:
<?php
   function mysql_table($query, $db) {
       $a = mysql_query($query, $db);
       $c = array();
       while($b = mysql_fetch_row($a)) {
           $c[] = $b;
       }
       return $c;
   }
?>
 
WRInaute discret
Peut-être parce que la commande est: mysql_fetch_array
Oui j'ai oublié le "l" mais c'est pas ça...

Pour uniquement le premier champs, change la requête SQL
"select col1 from tablex"
-->
FrenchKiss a dit:
Par ailleurs, je ne souhaite pas récupérer QUE le champ 1 de chaque ligne (en récupérer plusieurs, mais ne mettre que ce premier champ en array) ...
donc d'après toi, faire deux requêtes ? ca me parait un peu lourd...
merci quand mm
 
WRInaute discret
Pardon, j'avais mal lu. Change le code en
Code:
<?php 

       $a = mysql_query($query, $db); 
       $c = array(); 
       while($b = mysql_fetch_row($a)) { 
           $c[] = $b['col1']; 
           // do something with the other columns
           // ...
       } 
?>
 
WRInaute discret
Hum je teste mais apparement ça ne fonctionne pas :
Code:
 $search = array();
       while($b = mysql_fetch_row($liste)) {
           $search[] = $b['word'];
           // do something with the other columns
           // ...
       }

Code:
$search[] = $b['word'];
ne réinitialise-t'il pas $search[] à chaque itération ?

par ailleurs, mysql_fetch_row met dans un tableau les champs d'UNE ligne donnée.
Or ce que j'essaie de faire, c'est de mettre un champ donné pour TOUTES les lignes de ma table dans un array.

genre
$search = ('e-mail_1', 'e-mail_2', 'e-mail_2', 'e-mail_2');

Je sais pas si je me fais bien comprendre...
 
WRInaute discret
$b[...] est censé indiquer le champ qui m'intéresse, indépendamment de la ligne, exact ?
Dans ce cas, je ne comprends pas très bien pkoi changer
$b['monchamp'] en $b[o] ...

Cela dit j'ai essayé, ça ne fonctionne pas
Code:
$search = array();
	while($search = mysql_fetch_assoc($liste))
	{
	$search[] = $b[0];
	// do something with the other columns
	}
 
WRInaute discret
Si tu utilises mysql_fetch_assoc alors il faut utiliser le nom de la colonne mais avec mysql_fetch_row, c'est le numéro de la colonne.

Code:
$search = array(); 
   while($b = mysql_fetch_row($liste)) 
   { 
   $search[] = $b[0]; 
   // do something with the other columns 
   }
sinon poste plus d'infos sur le résultat, fait des echos dans ton code, etc...
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut