Comunidad de diseño web y desarrollo en internet online

Unknown column 'M' in 'where clause'

Citar            
MensajeEscrito el 02 Feb 2012 11:36 pm
Bueno el tema es que no se por donde empezar a solucionar este error... Me lo da cuando intento añadir al carrito un producto que ya existe en el carrito y tiene la misma talla que el que hay en el carrito. Esto deberia sumar las unidades y el precio...

Lo he intentado asi:

$valorrespuesta = comprobarexistencia($_GET['recordID'],$_GET['FTalla']);

if ($valorrespuesta!=0){
$insertSQL = sprintf("UPDATE tblcarrito SET intCantidad = intCantidad +1 WHERE intContador = %s",
$_GET['intCantidad'],
$valorrespuesta);
}

else {
$insertSQL = sprintf("INSERT INTO tblcarrito (idUsuario, idProducto, intCantidad, strTalla) VALUES (%s, %s, %s, %s)",
GetSQLValueString($_SESSION['MM_IdUsuario'], "int"),
GetSQLValueString($_GET['recordID'], "text"),
GetSQLValueString($_GET['intCantidad']),
GetSQLValueString($_GET['FTalla'], "text"));
}

Cuando intento comprar otro producto que no tenga la misma talla o no este en el carrito, ahora me aparece esto:

( ! ) Notice: Undefined index: FTalla in C:\wamp\www\zulo\carrito_add.php on line 38
Call Stack
# Time Memory Function Location
1 0.0016 395560 {main}( ) ..\carrito_add.php:0
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

mmmmmmm......... En la linea 38 hay esto:

$valorrespuesta = comprobarexistencia($_GET['recordID'],$_GET['FTalla']);

Antes de añadir esa linea, si me funcionaba todo... No entiendo porque no me esta funcionando el get... Que lo tengo asi:

Tallas: <select name="FTalla">

<?php do {
?>
<option value="<?php echo $row_ConsultaFuncion['strNombre']?>"><?php echo $row_ConsultaFuncion['strNombre']?></option>
<?php
} while ($row_ConsultaFuncion = mysql_fetch_assoc($ConsultaFuncion));
?>
</select>

No se... Anteriormente me funcionaba el get... FTalla

Por nobo

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Feb 2012 03:39 pm

Código MySQL :

$insertSQL = sprintf("UPDATE tblcarrito SET intCantidad = intCantidad +1 WHERE intContador = %s",


Devuelve un error de PHP, ya que se interpreta %s como un parámetro de sprintf, cuando en realidad no lo es. Afortunadamente, la solución es muy sencilla.

Para que PHP no interprete el símbolo % como un parámetro de sprintf, debemos indicarlo con %%. Aplicado al codigo anterior:

Código MySQL :

$insertSQL = sprintf("UPDATE tblcarrito SET intCantidad = intCantidad +1 WHERE intContador = %%s",


Mas informacion: [url=http://es.php.net/sprintf][/url]

Por dsalcedo

50 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 03 Feb 2012 09:10 pm
Entonces todo lo demas esta bien ? Con eso no me daria el error?

Yo pense que era porque no lo estaba cogiendo como text el tema de la talla, sino como entero :S

Por nobo

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Feb 2012 09:16 pm
.pruebalo y dices

Por dsalcedo

50 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 04 Feb 2012 08:28 pm
if ($valorrespuesta!=0){
$insertSQL = sprintf("UPDATE tblcarrito SET intCantidad = intCantidad + %s WHERE intContador = %%s",
$_GET['intCantidad'],
$valorrespuesta);

Asi no funciona... Me dice lo siguiente:

Unknown column 'M' in 'where clause'...

He conseguido algo pero no me gusta la solucion xDDD...

function comprobarexistencia($idproducto, $idtalla)
{
global $database_conexionzulo, $conexionzulo;
mysql_select_db($database_conexionzulo, $conexionzulo);
$query_ConsultaFuncion = sprintf("SELECT * FROM tblcarrito WHERE idUsuario = %s AND idProducto = %s AND strTalla = '%s'", $_SESSION['MM_IdUsuario'], $idproducto, $idtalla);
$ConsultaFuncion = mysql_query($query_ConsultaFuncion, $conexionzulo) or die(mysql_error());
$row_ConsultaFuncion = mysql_fetch_assoc($ConsultaFuncion);
$totalRows_ConsultaFuncion = mysql_num_rows($ConsultaFuncion);

if ($totalRows_ConsultaFuncion >0)
return $row_ConsultaFuncion['intContador'];
else
return 0;
mysql_free_result($ConsultaFuncion);
}
Poner " ' ' " Para indicar que va a ser texto lo que le va a llegar... Peeeeeeeeeeeeeero... Entonces cuando no hay nada en la base de datos es decir algo que no tenga talla... Imprime por pantalla camiseta tal (NULL) !!!!!!!! Cuando antes solo me imprimia camiseta tal () Vacio... Porque no habia talla y es lo que quiero :S

Por nobo

1 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.