obtenir un array à partir d'une requête mysql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : obtenir un array à partir d'une requête mysql

par olivier8064 » 11 avr. 2009, 16:11

merci dunbar, ton idée de tester avec print_r m'a fait avancer : en fait mes bouts de code ci-dessus fonctionnement bien. Le problème vient du script de Denis Cabasson qui ne doit pas bien calculer la longueur des champs pour les faire apparaître. Au delà d'une certaine longueur, les données n'apparaissent même plus dans le textbox de l'autocomplétion.

Olivier

par Invité » 11 avr. 2009, 15:41

çà me sort ceci :

Array
(
[0] => Abies alba Mill.
[1] => Abies grandis (D. Don) Lindl.
[2] => Abies nordmannianna (Stev.) Spach
[3] => Acer campestre L.
[4] => Acer negundo L.
[5] => Acer platanoïdes L.
[6] => Acer pseudoplatanus L.
[7] => Aceras anthropophorum (L.) R. Br.
[8] => Achillea millefolium L.
[9] => Achillea ptarmica L. subsp. ptarmica
[10] => Acinos arvensis (Lam.) Dandy
[11] => Aconitum lycoctonum L. subsp. vulparia (Reichenb. ex Sprengel) Nyman
[12] => Aconitum napellus L. subsp. lusitanicum Rouy
[13] => Aconitum napellus L. subsp. vulgare Rouy et Fouc.
..................)

par dunbar » 11 avr. 2009, 15:25

Et si tu fait ceci ?
echo '<pre>';
print_r($liste);
echo '</pre>';
Sa donne quoi ?

par Invité » 11 avr. 2009, 15:19

Merci

en fait ExecRequete est une fonction qui exécute déjà mysql_query.
Ma fonction est celle ci.

function ExecRequete ($requete, $connexion)
{
$resultat = mysql_query ($requete, $connexion);

if ($resultat)
	return $resultat;
	else
 {	
	echo "<B>Erreur dans l'exécution de la requête '$requete'.</B><BR>";
	echo "<B> Message de Mysqll : </B> ". mysql_error($connexion);
	exit;
 }
}
la requête fonctionne bien donc le problème ne vient pas de là mais plutôt de cette partie là :
while($ligne= mysql_fetch_array ($result)) {
array_push($liste,$ligne['TBtaxons_LIBtaxon']); 
}

par dunbar » 11 avr. 2009, 15:10

Tu dois avoir une erreur avec le code suivant :?:
$liste = array(); 
$rs_liste = ExecRequete("SELECT TBtaxons_LIBtaxon FROM tbtaxons ORDER BY TBtaxons_LIBtaxon ASC", $connexion); 
{while($ligne= mysql_fetch_array ($rs_liste)) 
array_push($liste,$ligne['TBtaxons_LIBtaxon']); 
} 
Moi je ferais comme ceci
$liste = array();
 
$rs_liste = ExecRequete("SELECT TBtaxons_LIBtaxon FROM tbtaxons ORDER BY TBtaxons_LIBtaxon ASC", $connexion);
$result = mysql_query ($rs_liste) or die ("Erreur SQL :");
  
while($ligne= mysql_fetch_array ($result)) {
array_push($liste,$ligne['TBtaxons_LIBtaxon']); 
} 

obtenir un array à partir d'une requête mysql

par olivier8064 » 11 avr. 2009, 14:59

Bonjour,

j'ai un exemple de code (exemple d'autocomplétion de Denis Cabasson (http://dcabasson.developpez.com/article ... pas-a-pas/))
avec ceci :

$liste = array("abeille","abricot","acheter","acheteur","adjectif","adroit","adroitement","agent","aigle","aile","air","amour","âne","approcher","ardoise","arête","arracher","asperge","astre","aujourd'hui","au lieu de","aussi");

je voudrais obtenir le même type de tableau mais en faisant une requête mysql.

J'ai fait ceci :

$liste = array();
$rs_liste = ExecRequete("SELECT TBtaxons_LIBtaxon FROM tbtaxons ORDER BY TBtaxons_LIBtaxon ASC", $connexion);
{while($ligne= mysql_fetch_array ($rs_liste))
array_push($liste,$ligne['TBtaxons_LIBtaxon']);
}

ma requête fonctionne bien mais l'autocomplétion ne fonctionne pas et je ne vois pas pourquoi. Il doit donc y avoir une différence entre les deux type de variable $liste mais je ne vois pas laquelle. Avez vous une idée ?

merci