Page 1 sur 1

Erreur dans un SWITCH CASE comportant un while

Posté : 17 juin 2009, 20:11
par striker310
Bonjour,

Je suis en train d'adapter un code mais j'ai un probleme d'integration dans un switch case.
Ma modification me retourne une erreur: "Parse error: syntax error, unexpected T_CASE in /opt/lampp/htdocs/catalog/index.php on line 272"

Voilà le code:

switch ($column_list[$i]) {
case 'PRODUCT_LIST_MODEL':
$select_column_list .= 'p.products_model, ';
break;
case 'PRODUCT_LIST_NAME':
$select_column_list .= 'pd.products_name, ';
break;
//ajout product short description modified by lio
case 'PRODUCT_LIST_INFO':
$select_column_list .= 'pd.products_name,pd.products_info, ';
break;
//fin ajout

case 'PRODUCT_LIST_MANUFACTURER':
$select_column_list .= 'm.manufacturers_name, ';
break;
case 'PRODUCT_LIST_QUANTITY':
$select_column_list .= 'p.products_quantity, ';
break;
case 'PRODUCT_LIST_IMAGE':
$select_column_list .= 'p.products_image, ';
break;
case 'PRODUCT_LIST_WEIGHT':
$select_column_list .= 'p.products_weight, ';
break;
//PRODUCT EXTRA FIELDS IN PRODUCT LISTING - BEGINING
while ($columns_for_fields = tep_db_fetch_array($columns_for_fields_query)){
case 'PRODUCT_EXTRA_FIELDS_IN_PRODUCT_LISTING'.$columns_for_fields['products_extra_fields_id'].'': //LIGNE 272 ERREUR
$select_column_list .= 'pefv.products_extra_fields_value_name, ';
break;
}
//PRODUCT EXTRA FIELDS IN PRODUCT LISTING - END
Merci d'avance pour votre aide. ça fait un moment que je seche.

Posté : 17 juin 2009, 20:19
par zeus
Tu ne peux pas combiner un switch et un while.

La structure du switch, c'est un switch($variable) composé de case.
PHP n'accepte aucune autre structure dedans.

Posté : 17 juin 2009, 20:55
par Invité
ok merci beaucoup. Du coup ça sert à rien que je persiste.

Je cherche une autre solution. Si quelqu'un a une idée je suis preneur.

Posté : 17 juin 2009, 21:35
par zeus
De rien.

Qu'est-ce que tu cherches à faire ? une fois qu'on le saura, on pourra essayer de te proposer une alternative ;)

Posté : 18 juin 2009, 02:03
par Nagol
en revanche tu peux mettre ton while dans le default qui correspond grosso modo à un else par rapport à tous les autres case.