Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

error 1054 -

Estas en el tema de error 1054 - en el foro de Mysql en Foros del Web. Hola a todos , estoy aprendiendo php y mysql y tengo una pagina desde donde quiero hacer altas , bajas y modificaciones en una base ...
  #1 (permalink)  
Antiguo 20/03/2011, 18:52
 
Fecha de Ingreso: julio-2010
Mensajes: 12
Antigüedad: 13 años, 10 meses
Puntos: 0
error 1054 -

Hola a todos , estoy aprendiendo php y mysql y tengo una pagina desde donde quiero hacer altas , bajas y modificaciones en una base de datos . Para guardar registros no tengo problemas pero cuando quiero eliminar el registro me da el error ERROR 1054 - Unknown column , . paso el codigo de como tomo los datos del la tabla donde muestro los registros .

para conectar a la base de datos y mostrar los registros

$conexion=mysql_connect("localhost","root","");
mysql_select_db("mibasepersonal",$conexion);
$rst_equipos=mysql_query("SELECT *FROM equiposinformatica ORDER BY nuEquipo",$conexion);
$num_registros=mysql_num_rows($rst_equipos);
if ($num_registros==0)
{
echo "No se encontraron equipos inventariados para mostrar";
mysql_close($conexion);
exit();
}

?>

con esto tomo el dato del formulario y lo paso a una pagina que procesa el pedido de eliminar , dato es la variable que toma el valor a eliminar

<td align="center" bgcolor="#CCCCCC"><span class="Estilo32"><a href="proceso_borrar_registro_inventario.php?dato= <?php echo $fila[0];?>">Eliminar</a></span></td>



este codigo esta en la pagina que procesa el pedido

<?php
echo "Esta seguro que desea eliminar el Equipo inventariado y sus datos ". $_REQUEST["dato"];
?>
</p>
<p><a href="elimino_elemento_confirmado_inventario.php?d ato=<?php echo $_REQUEST["dato"];?>">SI</a> -- <a href="javascript:history.go(-1)">NO</a></p>




y esto esta en la pagina que toma la confirmacion de que se va a eliminar el registro

<?php
$conexion=mysql_connect("localhost","root","");
mysql_select_db("mibasepersonal",$conexion);
echo "se esta mostrando ". $_REQUEST["dato"];

mysql_query("DELETE FROM equiposinformatica WHERE nuequipo=".$_REQUEST['dato'].";",$conexion);
if (mysql_errno()!=0)
{
echo "No se pudo borrar el registro . ERROR ".mysql_errno()." - ". mysql_error();
mysql_close($conexion);
} else {
mysql_close ($conexion);
header("location:muestro_inventario_informatica_2. php");
}
?>


........ pero al confirmar que SI lo borro me da el ERROR 1054 - Unknown column


, estuve buscando en google la posible causa y solucion pero no pude dar con algo que entienda y me ayude .
Espero que ustedes puedan ayudarme este problema y asi poder seguir con mi proyecto personal .
Desde ya muchas gracias .
  #2 (permalink)  
Antiguo 20/03/2011, 19:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: error 1054 -

El problema es que una columna invocada en las consultas SQL no existe en esa base. Por lo que se puede apreciar, la única columna que se invoca es "nuEquipo", ahora bien, si la base está en un servidor Linux, te advierto que para Linux "nuEquipo" y "nuequipo" son cosas diferentes, porque es sensible a mayúsculas/minusculas.
Empieza por asegurarte de que los nombres de las columnas correspondan en la escritura a los nombres que aparecen en la base del servidor.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 20/03/2011, 19:53
 
Fecha de Ingreso: julio-2010
Mensajes: 12
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: error 1054 -

Hola , gracias por la respuesta , con respecto al nombre del campo es algo que comprobé en cuanto al nombre , y el la base de dato el nombre del campo es nuEquipo tal como lo cito en el codigo de la pagina , asi que ese no debe ser el motivo del error .
Desde ya muchas gracias por tu atencion y ayuda .
  #4 (permalink)  
Antiguo 20/03/2011, 20:02
 
Fecha de Ingreso: julio-2010
Mensajes: 12
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: error 1054 -

Perdon , una aclaracion mas , yo uso el campo nuEquipo (que seria numero de equipo y que contine en algunos combinaciones de letras y numeros ) y cuando pruebo por ejemplo con un numero de equipo = 12a y le confirmo eliminarlo el mensaje completo es

ERROR 1054 - Unknown column '12a' in 'where clause'

Espero ayude ..... ya verifique nuevamente el nombre del campo y el usado en el codigo y son iguales .

Saludos .
  #5 (permalink)  
Antiguo 20/03/2011, 20:21
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla
Mensajes: 91
Antigüedad: 16 años, 2 meses
Puntos: 15
Respuesta: error 1054 -

Pruebalo asi:

Código PHP:
mysql_query("DELETE FROM equiposinformatica WHERE nuequipo= '".$_REQUEST['dato']."'",$conexion); 
Un saludo!
  #6 (permalink)  
Antiguo 23/03/2011, 03:03
 
Fecha de Ingreso: julio-2010
Mensajes: 12
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: error 1054 -

Tema solucionado , muchas gracias . Me podrías explicar como se entiende el cambio que hiciste , ya que miro y solo agregaste una comilla simple .
  #7 (permalink)  
Antiguo 23/03/2011, 05:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: error 1054 -

Cuando el contenido de una variables es una cadena de texto, en la consultas esa cadena debe quedar encerrada entre apóstrofes (') o de lo contrario será tomada como nombre de columna.
En tu caso, cuando la sentencia quedaba armada, lo que quedaba era:
Código MySQL:
Ver original
  1. DELETE FROM equiposinformatica WHERE nuequipo= 12a
porque "12a" era el contenido del parámetro. Como "12a"no es un número, sino una cadena, lo interpretaba como nombre de columna.

Nota:
Van con apóstrofes:
- Cadenas de texto.
- Fechas, en formato "aaaa-mm-dd".
- Fechas y horas, con formato "aaaa-mm-dd hh:mm:ss"
- Horas, en formato "hh:mm:ss"

Van sin apostrofes:
- Números enteros o decimales (los decimales con punto decimal y sin separadores de miles).
- Valores TRUE, FALSE y NULL.
- Números en formato exponencial.

No van en las sentencias de ningún tipo:
- Valores binarios (blob). Para cargarlos se usan funciones especiales.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: Ninguno
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 15:29.