Fonction et tableaux

Mammouth du PHP | 531 Messages

10 oct. 2007, 13:10

Bonjour,

Je galère un peu avec une fonction qui me fait juste un tableau avec les donées récupérées d'une base de donées :
function pos_liens($pos_liens) {
	$req_pos= mysql_query("SELECT pos_lien FROM bloom_pages");
		$pos_lien= array();
		while($pos_liens[]= mysql_fetch_array($req_pos)) {
		};
	return $pos_liens;
}
Maintenant je voudrais simplement afficher tout son contenu, donc dabord j'appelle la fonction :
$pos_liens= pos_liens($pos_liens);
Et après ben je sais plus, pourtant j'ai la doc sous les yeux :lol:
<?php echo $pos_liens; ?>
-> Me renvois Array
<?php echo $pos_liens[3]; ?>
-> pour essayer... Me renvois toujours Array. Donc même si je fait une boucle ça marchera pas :cry:

Ou est l'erreur ?

ViPHP
ViPHP | 3607 Messages

10 oct. 2007, 13:13

<?php
echo '<pre>';
print_r($pos_liens);
echo '</pre>';
?>
tu y verras déjà plus clair

Eléphant du PHP | 443 Messages

10 oct. 2007, 13:18

Déjà tu ajoutes un tableau à ton tableau pos_liens,
la fonction mysql_fetch_array(...) retourne un tableau...

donc $pos_liens[3] est un Array.

Mammouth du PHP | 531 Messages

10 oct. 2007, 13:20

<?php
echo '<pre>';
print_r($pos_liens);
echo '</pre>';
?>
tu y verras déjà plus clair
Merci,
Bon alors déjà me suis trompé dans la fonction : $pos_liens= array();

Sinon je viens d'essayer mais concrétement j'y vois encore moins clair :lol:

J'ai l'impression qui y a un gros micmac non ? :

Array ( [0] => Array ( [0] => 0 [pos_lien] => 0 ) [1] => Array ( [0] => 1 [pos_lien] => 1 ) [2] => Array ( [0] => 2 [pos_lien] => 2 ) [3] => Array ( [0] => 3 [pos_lien] => 3 ) [4] => Array ( [0] => 38 [pos_lien] => 38 ) [5] => )

EDIT :
@Tracker
Oups :D
Oui c'est déjà mieux comme ça :
function pos_liens($pos_liens) {
	$req_pos= mysql_query("SELECT pos_lien FROM bloom_pages");
		$pos_liens= array();
		while($pos_liens[]= mysql_fetch_assoc($req_pos)) {
		};print_r($pos_liens);
	return $pos_liens;
}
le résultat à l'air bon cette fois ?

Array ( [0] => Array ( [pos_lien] => 0 ) [1] => Array ( [pos_lien] => 1 ) [2] => Array ( [pos_lien] => 2 ) [3] => Array ( [pos_lien] => 3 ) [4] => Array ( [pos_lien] => 38 ) [5] => )
Modifié en dernier par supercanard le 10 oct. 2007, 13:26, modifié 1 fois.

Eléphant du PHP | 443 Messages

10 oct. 2007, 13:26

Ecris plutot:
function pos_liens($pos_liens)
{
   $req_pos= mysql_query("SELECT pos_lien FROM bloom_pages");
   $pos_lien= array();
   while($tab = mysql_fetch_array($req_pos, MYSQL_NUM)) 
   {
      $pos_liens[] = $tab[0];
   };
   return $pos_liens;
}
De plus à quoi te sert de passer le tableau en entrée et en sortie de ta fonction ?
$pos_liens= pos_liens($pos_liens);
Modifié en dernier par Tracker le 10 oct. 2007, 13:27, modifié 1 fois.

d0m
Mammouth du PHP | 1141 Messages

10 oct. 2007, 13:27

non il n'y a pas de micmac : ton tableau $pos_liens contient n tableaux (correspondant aux lignes résultats de ta requête)

$pos_liens[3] est donc un tableau qui contient le champ de ta requete sous les indics 0 et 'pos_lien'

Mammouth du PHP | 531 Messages

10 oct. 2007, 13:31

Ecris plutot:
function pos_liens($pos_liens)
{
   $req_pos= mysql_query("SELECT pos_lien FROM bloom_pages");
   $pos_lien= array();
   while($tab = mysql_fetch_array($req_pos, MYSQL_NUM)) 
   {
      $pos_liens[] = $tab[0];
   };
   return $pos_liens;
}
De plus à quoi te sert de passer le tableau en entrée et en sortie de ta fonction ?
$pos_liens= pos_liens($pos_liens);
C'est vrai que les fonctions j'ai compris mais depuis j'ai oublié et là j'ai mélangé les pinceaux...

Sinon dans mon EDIT juste en haut ; Je peut faire mysql_fetch_assoc ?