Foros del Web » Programando para Internet » PHP »

Problema con variables

Estas en el tema de Problema con variables en el foro de PHP en Foros del Web. Buenas gente Estoy haciendo un carrito de la compra. Todo en local funciona bien, me da los resultados y funciona ok, Al subirlo al servidor ...
  #1 (permalink)  
Antiguo 05/03/2012, 18:30
 
Fecha de Ingreso: febrero-2012
Mensajes: 13
Antigüedad: 12 años, 9 meses
Puntos: 0
Exclamación Problema con variables

Buenas gente

Estoy haciendo un carrito de la compra.

Todo en local funciona bien, me da los resultados y funciona ok,

Al subirlo al servidor no me rellena las variables que obtengo de la bbdd (que si está rellena)

Este es mi código

Código:
<?php
session_start();
include("conector.php");
?>
<html>
<head>
<body>
<?php
$idioma= $_GET['idioma'];
if(isset($_GET['id_producto']))
$id=$_GET['id_producto'];
else
$id=1;

if(isset($_GET['accion']))
$realizar=$_GET['accion'];
else
$realizar="vacio";

switch($realizar){

case "agregar":
if(isset($_SESSION['carrito'][$id]))
$_SESSION['carrito'][$id]++;
else
$_SESSION['carrito'][$id]=1; 
    break;

    case "eliminar":
if(isset($_SESSION['carrito'][$id]))
$_SESSION['carrito'][$id]--;
if($_SESSION['carrito'][$id]==0)
unset($_SESSION['carrito'][$id]);
    break;

    case "vacio":
    unset($_SESSION['carrito']); 
    break;

    case "visualizar":
    $_SESSION['carrito'][$id];
    break;
}
//Carrito de la compra
if(isset($_SESSION['carrito'])){   
$idioma= $_GET['idioma'];
echo "<table border='0' cellpadding='5' cellspacing='0'>";
$total="No existen productos en el carrito";
echo "<a href='home.php?metas=seccion3&idioma=$idioma&id_categoria=1&id_producto=1'>Seguir comprando</a>";
echo "<tr>";
echo "<td>Modelo</td>";
echo "<td>Cantidad</td>";
echo "<td>Precio</td>";
echo "<td></td>";
echo "<td></td>";
echo "</tr>";

foreach($_SESSION['carrito'] as $id => $x){
$consulta=mysql_query("select * from productos where id_producto=" .$id,$conexion);
$mostrar = mysql_fetch_array($consulta);
$nombre=$mostrar['Modelo'];
$precio=$mostrar['Precio'];
$costo=$x * $precio;
$total=$total + $costo;

echo "<tr>";
echo "<td>$nombre</td>";
echo "<td>$x</td>";
echo "<td>$costo</td>";
echo "<td><a href='carrito.php?idioma=$idioma&id_producto=$id&accion=agregar'>+</a></div></td>";
echo "<td><a href='carrito.php?idioma=$idioma&id_producto=$id&accion=eliminar'>+</a></div></td>";
echo "</tr>";
    
    
    
   
}//termina el foreach
echo "<tr>";
echo "<td>TOTAL:</td>";
echo "<td>$total</td>";
echo "</tr>";
echo "</table>";
}
else
echo "Su carrito de la compra se encuentra vacio <a href='home.php?metas=seccion3&idioma=$idioma&id_categoria=1&id_producto=1'>Seguir comprando</a>";
?>
Parece que el tema está en las extracción de los valores $nombre y $precio, que no aparecen en el codigo html generado. Si cambio $nombre="unvalor"; si aparece así que lo que no estoy capturando es el valor de la bbdd, pero no es eso, porque ya os digo que en local si funciona.

A ver si alguien sabe que ocurre

Muchas gracias a quien lo lea :)
  #2 (permalink)  
Antiguo 05/03/2012, 20:53
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 3 meses
Puntos: 103
Respuesta: Problema con variables

puede ser que las diferencias entre sistemas operativos difieren de la importancia de las mayusculas en mysql, no estoy seguro de esto, pero fijate si las columnas de productos son especificamente "Modelo" y "Precio" , puede ser que sean "modelo" y "precio", intenta cambiando las lineas
Cita:
$nombre=$mostrar['Modelo'];
$precio=$mostrar['Precio'];
por
Cita:
$nombre=$mostrar['modelo'];
$precio=$mostrar['precio'];
saludos
  #3 (permalink)  
Antiguo 06/03/2012, 03:26
 
Fecha de Ingreso: febrero-2012
Mensajes: 13
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema con variables

En la bbdd se llaman Modelo y Precio, así que no parece que sea eso, pero revisare por si acaso.

Un saludo
  #4 (permalink)  
Antiguo 06/03/2012, 07:10
 
Fecha de Ingreso: febrero-2012
Ubicación: En mi propio mundo
Mensajes: 73
Antigüedad: 12 años, 9 meses
Puntos: 23
Respuesta: Problema con variables

Puede que los parámetros de la conexión con la base de datos esten mal. Verifícalos a ver.

Otra cosa que puedes comprobar es si mysql_fetch_array($consulta) esta devolviendo algo por ejemplo con un var_dump($mostrar)
  #5 (permalink)  
Antiguo 07/03/2012, 03:27
 
Fecha de Ingreso: febrero-2012
Mensajes: 13
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema con variables

Ya encontré el problema, a base de ensayo/error

elimine $conexion de la llamada a la bbdd

Código:
$consulta=mysql_query("select * from productos where id_producto=" .$id,$conexion);
y quedo así

Código:
$consulta=mysql_query("select * from productos where id_producto=" .$id);
Que alguien me lo explique.... estaba mal construida mi sentencia?

Gracias por interesaros jeje

Saludos
  #6 (permalink)  
Antiguo 07/03/2012, 04:19
 
Fecha de Ingreso: febrero-2012
Ubicación: En mi propio mundo
Mensajes: 73
Antigüedad: 12 años, 9 meses
Puntos: 23
Respuesta: Problema con variables

el segundo parámetro de la función mysql_query es opcional. En el caso que no lo pongas lo busca de la ultima llamada que se ha hecho a mysql_conect(), sino lo encuentra hace un mysql_connect() con datos en blanco y lo devuelto lo pone como segundo parámetro. En el caso de que este ultimo caso falle te muestra un warning ^^

Etiquetas: html, mysql, sql, variables
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 21:34.