Parse error: syntax error, unexpected T_STRIN

Bonjour,
un petit souci avec mon code, voici l'erreur :

Parse error: syntax error, unexpected T_ELSE in /var/www/vhosts/site.com/httpdocs/classes/Product.php on line 1299

Les lignes concernées : ( en gras la 1299 )

if ($id_customer AND $carte=0) {
$price *= ((100 - Group::getReduction($id_customer))/100);
self::$_prices[$cacheId] = ($divisor AND $divisor != 'NULL') ? number_format($price/$divisor, $decimals, '.', '') : number_format($price, $decimals, '.', '');
return self::$_prices[$cacheId];
else ($id_customer AND $carte=1)
$price *= ((100 - Group::getReduction($id_customer)*0.5)/100);
self::$_prices[$cacheId] = ($divisor AND $divisor != 'NULL') ? number_format($price/$divisor, $decimals, '.', '') : number_format($price, $decimals, '.', '');
return self::$_prices[$cacheId];
}

Quelqu'un à une idée ?
Merci par avance :)

6 réponses

  1. un point virgule a la fin de ta commande ?
    si c'est comme en C++ il te faut boucler ta commande par un point virgule, il y en a bien a toutes tes lignes sauf celle en gras.
    tient moi au courant
    0
    1. Merci, mais ça ne fonctionne pas :s
      0
      1. Bonjour

        Un else ne peut venir qu'immédiatement après l'instruction ou le bloc qui suit un if. Or, toi, ton else il est à l'intérieur du bloc ! Il faut une accolade } à la fin de la ligne qui précède le else.
        De même else(condition) n'existe pas en php : c'est else { ou bien elseif (condition) {
        Commence par corriger ces deux points.
        Ensuite, vérifie tes conditions. Elles ne sont pas syntaxiquement incorrectes, mais il y a gros à parier qu'elles ne font pas ce que tu veux. Pour mémoire, la comparaison c'est = et non pas ==.
        0
        1. Non, c'est le contraire ! La comparaison c'est ==, pas = !
          0
          1. Ok,

            donc, que faudrait-il à mon code :

            if ($id_customer AND $carte==0) {
            $price *= ((100 - Group::getReduction($id_customer))/100);}
            else { ($id_customer AND $carte==1)
            $price *= ((100 - Group::getReduction($id_customer)*0.5)/100);

            self::$_prices[$cacheId] = ($divisor AND $divisor != 'NULL') ? number_format($price/$divisor, $decimals, '.', '') : number_format($price, $decimals, '.', '');
            return self::$_prices[$cacheId];
            }
            }
            ( j'ai déclaré une fonction un peu plus haut )
            pour qu'il marche ?

            Sachant qu'actuellement j'ai une erreur :

            Parse error: syntax error, unexpected T_VARIABLE in /var/www/vhosts/pechere.webstockage.com/httpdocs/classes/Product.php on line 1295

            soit :

            $price *= ((100 - Group::getReduction($id_customer)*0.5)/100);

            ?

            Merci bcp pour vos contributions qui me permettent de mieux comprendre le code !
            0
            1. non, ton erreur n'est pas sur la ligne
              $price *= ((100 - Group::getReduction($id_customer)*0.5)/100);
              mais sur la ligne
              else { ($id_customer AND $carte==1)
              re-vérifie
              ce else est incorrect,
              Je t'ai dit que c'était
              else {
              ou bien
              elseif (condition) {
              et toi tu fais
              else { (condition)
              0