probleme d'array push

Eléphant du PHP | 138 Messages

21 déc. 2005, 17:51

Salut,

J'ai un petit soucis pour ajouter des valeurs dans un tableau

voici le code
$sql = "SELECT id_pro,titre_prod,pxht_prod,promo_prod,pxhtpromo_prod,ref_prod,present_prod FROM $table_produit where id_pro='$var[0]'";
$sql = mysql_db_query($base,$sql);

while ($site=mysql_fetch_array($sql))
{

$site2= array("","cheque cadeau","12","","","",""); 
array_push ($site, $site2);
}
Mais les données ne s'ajoutent pas a mon tableau je ne vois pas comment faire

Merci de votre aide

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

21 déc. 2005, 20:57

Salut, avant tout remplace mysql_db_query() par mysql_query() car:
Cette fonction est décpréciée depuis PHP 4.0.6. N'utilisez pas cette fonction. Utilisez mysql_select_db() et mysql_query() à la place.
Dans la clause WHERE si "id_pro" est numérique pas besoin de quotes (sinon faut les remettre)

Juste pour le principe et la compréhension évite d'utiliser la meme variable pour la requete et le résultat de celle ci.

Pour ton probleme essaie en initialisant le tableau $site.
$sql = "SELECT id_pro,titre_prod,pxht_prod,promo_prod,pxhtpromo_prod,ref_prod,present_prod FROM $table_produit where id_pro=".$var[0];
$resultat = mysql_query($base,$sql);

$site=array();

while ($site=mysql_fetch_array(resultat))
{
   $site2= array("","cheque cadeau","12","","","","");
   array_push ($site, $site2);
}

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 353 Messages

21 déc. 2005, 22:55

while ($site=mysql_fetch_array(resultat))
{
   $site2= array("","cheque cadeau","12","","","","");
   array_push ($site, $site2);
}
Je ne sais pas ce que tu cherches à faire mais ça ne m'étonne pas que ça ne foncitonne pas.
A chaque tour de boucle tu initialises le tableau site2. A mon avis il faudrait le sortir de la boucle.
D'autre part, le tableau $site est réinitialisé à chaque nouvelle itération et tu perds donc les valeurs précédentes.
Utilise plutôt mysql_fetch_assoc() au lieu de mysql_fetch_array() qui ramène les données en double (tableau associatif + tableau itératif)

Eléphant du PHP | 138 Messages

21 déc. 2005, 22:59

Merci nicolas je vais tester ca et je vous tiens au courant