Foros del Web » Programando para Internet » PHP »

Parse error: syntax error, unexpected T_ELSE

Estas en el tema de Parse error: syntax error, unexpected T_ELSE en el foro de PHP en Foros del Web. Hola, esta tarde sin hacer ningún cambio del que tenga conciencia me he encontrado con un error en la home de mi tienda: Parse error: ...
  #1 (permalink)  
Antiguo 25/02/2014, 14:08
 
Fecha de Ingreso: marzo-2007
Mensajes: 3
Antigüedad: 17 años
Puntos: 0
Parse error: syntax error, unexpected T_ELSE

Hola, esta tarde sin hacer ningún cambio del que tenga conciencia me he encontrado con un error en la home de mi tienda:
Parse error: syntax error, unexpected T_ELSE en la línea 12 de un archivo de mi tienda en Opencart, os copio la línea que además no es precisamente corta, no soy programador y no se nada de PHP, he leido en otros hilos del foro que puede ser un corchete que falte pero... si me podéis ayudar os lo agradeceré no sabéis cuanto

Código PHP:
$customer_group_id $this->customer->getCustomerGroupId(); } else { $customer_group_id $this->config->get('config_customer_group_id'); } $price $product_query->row['price']; // Product Discounts $discount_quantity = 0; foreach ($this->session->data['cart'] as $key_2 => $quantity_2) { $product_2 = explode(':', $key_2); if ($product_2[0] == $product_id) { $discount_quantity += $quantity_2; } } $product_discount_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_discount WHERE product_id = '" . (int)$product_id . "' AND customer_group_id = '" . (int)$customer_group_id . "' AND quantity <= '" . (int)$discount_quantity . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY quantity DESC, priority ASC, price ASC LIMIT 1"); if ($product_discount_query->num_rows) { $price = $product_discount_query->row['price']; } // Product Specials $product_special_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$product_id . "' AND customer_group_id = '" . (int)$customer_group_id . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY priority ASC, price ASC LIMIT 1"); if ($product_special_query->num_rows) { $price = $product_special_query->row['price']; } // Reward Points $product_reward_query = $this->db->query("SELECT points FROM " . DB_PREFIX . "product_reward WHERE product_id = '" . (int)$product_id . "' AND customer_group_id = '" . (int)$customer_group_id . "'"); if ($product_reward_query->num_rows) { $reward = $product_reward_query->row['points']; } else { $reward = 0; } // Downloads $download_data = array(); $download_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_to_download p2d LEFT JOIN " . DB_PREFIX . "download d ON (p2d.download_id = d.download_id) LEFT JOIN " . DB_PREFIX . "download_description dd ON (d.download_id = dd.download_id) WHERE p2d.product_id = '" . (int)$product_id . "' AND dd.language_id = '" . (int)$this->config->get('config_language_id') . "'"); foreach ($download_query->rows as $download) { $download_data[] = array( 'download_id' => $download['download_id'], 'name' => $download['name'], 'filename' => $download['filename'], 'mask' => $download['mask'], 'remaining' => $download['remaining'] ); } // Stock if (!$product_query->row['quantity'] || ($product_query->row['quantity'] < $quantity)) { $stock = false; } $this->data[$key] = array( 'key' => $key, 'product_id' => $product_query->row['product_id'], 'name' => $product_query->row['name'], 'model' => $product_query->row['model'], 'shipping' => $product_query->row['shipping'], 'image' => $product_query->row['image'], 'option' => $option_data, 'download' => $download_data, 'quantity' => $quantity, 'minimum' => $product_query->row['minimum'], 'subtract' => $product_query->row['subtract'], 'stock' => $stock, 'price' => ($price + $option_price), 'total' => ($price + $option_price) * $quantity, 'reward' => $reward * $quantity, 'points' => ($product_query->row['points'] ? ($product_query->row['points'] + $option_points) * $quantity : 0), 'tax_class_id' => $product_query->row['tax_class_id'], 'weight' => ($product_query->row['weight'] + $option_weight) * $quantity, 'weight_class_id' => $product_query->row['weight_class_id'], 'length' => $product_query->row['length'], 'width' => $product_query->row['width'], 'height' => $product_query->row['height'], 'length_class_id' => $product_query->row['length_class_id'] ); } else { $this->remove($key); } } } return $this->data; } public function add($product_id, $qty = 1, $option = array()) { if (!$option) { $key = (int)$product_id; } else { $key = (int)$product_id . ':' . base64_encode(serialize($option)); } if ((int)$qty && ((int)$qty > 0)) { if (!isset($this->session->data['cart'][$key])) { $this->session->data['cart'][$key] = (int)$qty; } else { $this->session->data['cart'][$key] += (int)$qty; } } $this->data = array(); } public function update($key, $qty) { if ((int)$qty && ((int)$qty > 0)) { $this->session->data['cart'][$key] = (int)$qty; } else { $this->remove($key); } $this->data = array(); } public function remove($key) { if (isset($this->session->data['cart'][$key])) { unset($this->session->data['cart'][$key]); } $this->data = array(); } public function clear() { $this->session->data['cart'] = array(); $this->data = array(); } public function getWeight() { $weight = 0; 

Última edición por tascon; 25/02/2014 a las 14:24
  #2 (permalink)  
Antiguo 25/02/2014, 14:27
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 6 meses
Puntos: 578
Respuesta: Parse error: syntax error, unexpected T_ELSE

Para que haya un else tiene que haber un if...
  #3 (permalink)  
Antiguo 25/02/2014, 14:30
 
Fecha de Ingreso: marzo-2007
Mensajes: 3
Antigüedad: 17 años
Puntos: 0
Respuesta: Parse error: syntax error, unexpected T_ELSE

Hola, gracias por responder, pero: ¿Dónde lo debo poner? o Es otra parte del archivo? ¿Lo pego entero?

Muchas gracias
  #4 (permalink)  
Antiguo 25/02/2014, 14:55
 
Fecha de Ingreso: marzo-2007
Mensajes: 3
Antigüedad: 17 años
Puntos: 0
Respuesta: Parse error: syntax error, unexpected T_ELSE

Este es el archivo, no lo he podido subir completo por las limitaciones del foro pero he subido la mitad aprox:

Código PHP:
<?php class Cart { private $config; private $db; private $data = array(); public function __construct($registry) { $this->config $registry->get('config'); $this->customer $registry->get('customer'); $this->session $registry->get('session'); $this->db $registry->get('db'); $this->tax $registry->get('tax'); $this->weight $registry->get('weight'); if (!isset($this->session->data['cart']) || !is_array($this->session->data['cart'])) { $this->session->data['cart'] = array(); } } 
public function 
getProducts($customer_group_id=null) {
    if (!
$this->data || !is_null($customer_group_id)) {
             if (!
$this->data) { foreach ($this->session->data['cart'] as $key => $quantity) { $product explode(':'$key); $product_id $product[0]; $stock true// Options if (isset($product[1])) { $options = unserialize(base64_decode($product[1])); } else { $options = array(); } $product_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.date_available <= NOW() AND p.status = '1'"); if ($product_query->num_rows) { $option_price = 0; $option_points = 0; $option_weight = 0; $option_data = array(); foreach ($options as $product_option_id => $option_value) { $option_query = $this->db->query("SELECT po.product_option_id, po.option_id, od.name, o.type FROM " . DB_PREFIX . "product_option po LEFT JOIN `" . DB_PREFIX . "option` o ON (po.option_id = o.option_id) LEFT JOIN " . DB_PREFIX . "option_description od ON (o.option_id = od.option_id) WHERE po.product_option_id = '" . (int)$product_option_id . "' AND po.product_id = '" . (int)$product_id . "' AND od.language_id = '" . (int)$this->config->get('config_language_id') . "'"); if ($option_query->num_rows) { if ($option_query->row['type'] == 'select' || $option_query->row['type'] == 'radio' || $option_query->row['type'] == 'image') { $option_value_query = $this->db->query("SELECT pov.option_value_id, ovd.name, pov.quantity, pov.subtract, pov.price, pov.price_prefix, pov.points, pov.points_prefix, pov.weight, pov.weight_prefix FROM " . DB_PREFIX . "product_option_value pov LEFT JOIN " . DB_PREFIX . "option_value ov ON (pov.option_value_id = ov.option_value_id) LEFT JOIN " . DB_PREFIX . "option_value_description ovd ON (ov.option_value_id = ovd.option_value_id) WHERE pov.product_option_value_id = '" . (int)$option_value . "' AND pov.product_option_id = '" . (int)$product_option_id . "' AND ovd.language_id = '" . (int)$this->config->get('config_language_id') . "'"); if ($option_value_query->num_rows) { if ($option_value_query->row['price_prefix'] == '+') { $option_price += $option_value_query->row['price']; } elseif ($option_value_query->row['price_prefix'] == '-') { $option_price -= $option_value_query->row['price']; } if ($option_value_query->row['points_prefix'] == '+') { $option_points += $option_value_query->row['points']; } elseif ($option_value_query->row['points_prefix'] == '-') { $option_points -= $option_value_query->row['points']; } if ($option_value_query->row['weight_prefix'] == '+') { $option_weight += $option_value_query->row['weight']; } elseif ($option_value_query->row['weight_prefix'] == '-') { $option_weight -= $option_value_query->row['weight']; } if ($option_value_query->row['subtract'] && (!$option_value_query->row['quantity'] || ($option_value_query->row['quantity'] < $quantity))) { $stock = false; } $option_data[] = array( 'product_option_id' => $product_option_id, 'product_option_value_id' => $option_value, 'option_id' => $option_query->row['option_id'], 'option_value_id' => $option_value_query->row['option_value_id'], 'name' => $option_query->row['name'], 'option_value' => $option_value_query->row['name'], 'type' => $option_query->row['type'], 'quantity' => $option_value_query->row['quantity'], 'subtract' => $option_value_query->row['subtract'], 'price' => $option_value_query->row['price'], 'price_prefix' => $option_value_query->row['price_prefix'], 'points' => $option_value_query->row['points'], 'points_prefix' => $option_value_query->row['points_prefix'], 'weight' => $option_value_query->row['weight'], 'weight_prefix' => $option_value_query->row['weight_prefix'] ); } } elseif ($option_query->row['type'] == 'checkbox' && is_array($option_value)) { foreach ($option_value as $product_option_value_id) { $option_value_query = $this->db->query("SELECT pov.option_value_id, ovd.name, pov.quantity, pov.subtract, pov.price, pov.price_prefix, pov.points, pov.points_prefix, pov.weight, pov.weight_prefix FROM " . DB_PREFIX . "product_option_value pov LEFT JOIN " . DB_PREFIX . "option_value ov ON (pov.option_value_id =

Etiquetas: parse, select, syntax, unexpected
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:32.