Page 1 sur 1

probleme d'array push

Posté : 21 déc. 2005, 17:51
par logone
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

Posté : 21 déc. 2005, 20:57
par Truc
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);
}

Posté : 21 déc. 2005, 22:55
par nicolas
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)

Posté : 21 déc. 2005, 22:59
par logone
Merci nicolas je vais tester ca et je vous tiens au courant