mmmmmmmmm............ No entiendo porque me sale esto, ni por donde empezar a buscar el error...
Alguna idea ?
| ||||
Respuesta: Unknown column 'M' in 'where clause' Si no sabes vos, crees que nosotros vamos a adivinar? Cita: Muestra tu código por favor columna desconocida 'M' en 'cláusula where'
__________________ Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP |
| ||||
Respuesta: Unknown column 'M' in 'where clause' Cita: Normalmente aparece cuando has escrito el nombre de una columna en el WHERE que no existe en ninguna de las tablas del FROM.Unknown column 'M' in 'where clause' Este tipo de errores son comunes en los principiantes cuando mezclan código d eprogramación con SQL sin tener en cuenta las reglas de cada uno. Lo más probable es que "M" sea el contenido de una variable que tu estás usando para crear una comparación del tipo WHERE A = B, donde A es una columna de tipo VARCHAR o CHAR, y B es una cadena de texto, pero lo estás haciendo de modo que el contenido de B no quede representado como cadena. Las cadenas de texto, en MySQL se deben encerrar entre apóstrofos ('), no entre comillas (") o acentos inversos (`), los cuales se usan para encerrar los nombres de tablas, columnas o bases. Entonces: 1) No uses apóstrofos para crear la cadena de la sentencia, usa comillas. 2) Pon las variables que contengan cadenas de texto entre apóstrofos dentro de la consulta SQL. 3) No pongas apóstrofos si vas a comparar valores numéricos (exigen conversiones). O sea:
Código PHP:
Ver original
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Unknown column 'M' in 'where clause' Ya ya... Pfff... Es que no sabia ni por donde empezar... A ver voy a ello... $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 |
| ||||
Respuesta: Unknown column 'M' in 'where clause' Porque los otros tres datos son numéricos, y como te dije (ver post anterior), los numéricos van sin apóstrofos... ¿Lo leíste?
Código PHP:
El GetSQLValueString reemplaza al %s de tu sentencia con el valor contenido en la variable. Pero no le agrega los apóstrofes necesarios para que sea reconocido como cadena.Ver original Trata de razonar lo que te expliq
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: Unknown column 'M' in 'where clause' Porque los otros tres datos son numéricos, y como te dije (ver post anterior), los numéricos van sin apóstrofos... ¿Lo leíste?
Código PHP:
El GetSQLValueString reemplaza al %s de tu sentencia con el valor contenido en la variable. Pero no le agrega los apóstrofos necesarios para que sea reconocido como cadena.Ver original Creí que había sido suficientemente claro...
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Unknown column 'M' in 'where clause' Me sigue saliendo lo mismo ... Unknown column 'M' in 'where clause' $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")); EDITO: Hice lo que me dijiste aqui tambien: $query_ConsultaFuncion = sprintf("SELECT * FROM tblcarrito WHERE idUsuario = %s AND idProducto = %s AND strTalla = '%s'", $_SESSION['MM_IdUsuario'], $idproducto, $idtalla); Y ahora no me da error... Pero si no hay talla en la base de datos... Al lado de la prenda de ropa me pone (NULL) y antes no ponia nada, simplemente ()... Ademas cuando es la misma prenda con la misma talla si existe en el carrito, no me la suma. Simplemente no hace nada... :S EDITO2: Ya solucione el tema de que se sumen las prendas cuando coincida la talla y el producto. Asi: if ($valorrespuesta!=0){ $insertSQL = sprintf("UPDATE tblcarrito SET intCantidad = intCantidad + %s WHERE intContador = %s", $_GET['intCantidad'], $valorrespuesta); Lo que no se que hacer es con lo de (NULL) yo no quiero que aparezca NULL, con que aparezca vacio "()" Ya me vale... Última edición por nobo; 03/02/2012 a las 04:18 |
| |||
Respuesta: Unknown column 'M' in 'where clause' Tal y como me pusiste tu: 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")); } Me da el siguiente error: Unknown column 'M' in 'where clause' Cuando el producto tiene talla... Cuando el producto no tiene talla dice lo siguiente.. : ( ! ) Notice: Undefined index: FTalla in C:\wamp\www\zulo\carrito_add.php on line 38 Call Stack # Time Memory Function Location 1 0.0017 395288 {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 El tema es que parece estar haciendolo bien porque en la url sale lo siguiente: http://localhost/zulo/carrito_add.ph...=1&recordID=15 Cuando hay talla... Pero cuando no hay talla, efectivamente falta el parametro FTalla...: http://localhost/zulo/carrito_add.ph...d=1&recordID=3 Lo raro es que antes de añadir esto: $valorrespuesta = comprobarexistencia($_GET['recordID'], $_GET['FTalla']); Si funcionaba todo bien... Siguiendo tus consejos probe en poner " ' ' " apostrofes en la funcion comprobarexistencia... Y lo hace bastante bien pero cuando no hay talla me pone (NULL) como dije en el post de arriba y eso antes no pasaba... No se porque ahora si. Ademas me surge otra duda... Si quisiera poner numeros ? Imprimiria los numeros asi '%s' ? |
Etiquetas: |