Foros del Web » Programando para Internet » PHP »

que esta malo aca?

Estas en el tema de que esta malo aca? en el foro de PHP en Foros del Web. Buenas, muchachos que esta malo en este código, no hay que especificarlo pero lo are y es que el nombre de la tabla que necesito ...
  #1 (permalink)  
Antiguo 15/03/2013, 10:55
 
Fecha de Ingreso: julio-2009
Mensajes: 118
Antigüedad: 15 años, 4 meses
Puntos: 2
que esta malo aca?

Buenas, muchachos que esta malo en este código, no hay que especificarlo pero lo are y es que el nombre de la tabla que necesito esta guardado en una variable llamada $valor humm la verdad no se donde esta el error
Código HTML:
<?php $valor = $_GET["valor"];
$conexion = mysql_connect("127.0.0.1","root","????");
mysql_select_db("dias",$conexion);
$sql=mysql_query("SELECT * FROM $valor")or die( mysql_error());
while($datos= mysql_fetch_array($sql))
    {
	if($datos="")
		{echo "Aun no hay datos en la tabla";}
	
	}
echo $valor;
?> 
y bueno el error es este
"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 '14 de marzo 930' at line 1"
debo decir que no soy el mas de los diestros en la programación tengo algo en mi mente que no hace fácil grabarme las cosas pero me gusta, hay le intento y hago cosas. lo digo para que aquellos que crean que por la antigüedad y eso ya uno vuela, no, no soy de esos, pero no la quiero dejar, gracias por su ayuda
  #2 (permalink)  
Antiguo 15/03/2013, 11:13
 
Fecha de Ingreso: enero-2008
Mensajes: 201
Antigüedad: 16 años, 10 meses
Puntos: 39
Respuesta: que esta malo aca?

¿Qué muestra la variable $valor?
  #3 (permalink)  
Antiguo 15/03/2013, 11:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: que esta malo aca?

Una tabla no puede llamarse (al menos en MySQL) "14 de marzo 930".
Tiene dos errores básicos: 1) Tiene espacios vacíos entre las letras, con lo que se rompe el nombre. 2) comienza con un número.
Como mínimo, el nombre debe quedar encerrado entre acentos graves (`) para que pueda ser tomado de ese modo, aunque creo que en realidad le estás pifiando a qué valor le debes meter en esa variable.
Francamente me parece dudoso que le hayas puesto a una tabla como nombre una fecha... ¿o si?

Nota: No confundir acentos graves (`) con apóstrofos (') o las comillas ("). En las bases de datos se usan para diferentes cosas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 15/03/2013, 11:58
 
Fecha de Ingreso: julio-2009
Mensajes: 118
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: que esta malo aca?

Si, las tablas tienen el siguiente nombre: jueves 14 de marzo 900 es decir el nombre del día, el número de día y mes y una hora y me las genera normal, ahora lo que deseo hacer es escogerla e introducir datos en ellas.
  #5 (permalink)  
Antiguo 15/03/2013, 12:10
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: que esta malo aca?

amigazo aca esta el error

Código PHP:
Ver original
  1. SELECT * FROM $valor
  2.  
  3. debe ser asi
  4. SELECT * FROM nombre_tabla where condicion =' $valor'

despues del from debe especificar el nombre de la tabla que va a realizar su busqueda
y si quiere que se cumpla la condicion de la variable lo debe especificar con un where campo ='$variable'

espero haber ayudado saludos
  #6 (permalink)  
Antiguo 15/03/2013, 12:43
 
Fecha de Ingreso: julio-2009
Mensajes: 118
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: que esta malo aca?

que pena pero no me da me saca el mismo error
error "Usted tiene un error en su sintaxis SQL, consulte el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta a usar cerca'', martes 5 de marzo 900 'donde condicion =' martes 5 de marzo 900'' en la línea 1"

Código PHP:
<?php $valor $_GET["valor"];
$conexion mysql_connect("127.0.0.1","root","");
mysql_select_db("dias",$conexion);
//SELECT * FROM $valor where condicion =' $valor'
$sql=mysql_query("SELECT * FROM '$valor' where condicion =' $valor'")or die( mysql_error());
while(
$datosmysql_fetch_array($sql))
    {
    if(
$datos="")
        {echo 
"Aun no hay datos en la tabla";}
    
    }
echo 
$valor;
?>
donde dice nombre de la tabla pues debo poner $valor pues ahí es donde la tengo.
  #7 (permalink)  
Antiguo 15/03/2013, 12:54
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: que esta malo aca?

Cita:
Iniciado por cesar15 Ver Mensaje
que pena pero no me da me saca el mismo error
error "Usted tiene un error en su sintaxis SQL, consulte el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta a usar cerca'', martes 5 de marzo 900 'donde condicion =' martes 5 de marzo 900'' en la línea 1"

Código PHP:
<?php $valor $_GET["valor"];
$conexion mysql_connect("127.0.0.1","root","");
mysql_select_db("dias",$conexion);
//SELECT * FROM $valor where condicion =' $valor'
$sql=mysql_query("SELECT * FROM '$valor' where condicion =' $valor'")or die( mysql_error());
while(
$datosmysql_fetch_array($sql))
    {
    if(
$datos="")
        {echo 
"Aun no hay datos en la tabla";}
    
    }
echo 
$valor;
?>
donde dice nombre de la tabla pues debo poner $valor pues ahí es donde la tengo.

man por favor al lado del from debes poner el nombre de la tabla .. no la variable .. dime por favor a que tabla necesitas buscar ese valor y te hago el select
  #8 (permalink)  
Antiguo 15/03/2013, 13:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: que esta malo aca?

Al margen que es un espanto hacer tablas por fecha (reprobarías Base de Datos I con sólo proponerlo), ni siquiera has mirado lo que te dije:
Cita:
Como mínimo, el nombre debe quedar encerrado entre acentos graves (`) para que pueda ser tomado de ese modo, [...]
[...]
Nota: No confundir acentos graves (`) con apóstrofos (') o las comillas ("). En las bases de datos se usan para diferentes cosas.
En definitiva, los nombres de tablas, bases o columnas, deben ir siempre entre acentos graves cuando tienen caracteres ilegales, espacios en blanco, o bien son palabras reservadas.
¿Te queda 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)
  #9 (permalink)  
Antiguo 15/03/2013, 13:13
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: que esta malo aca?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Al margen que es un espanto hacer tablas por fecha (reprobarías Base de Datos I con sólo proponerlo), ni siquiera has mirado lo que te dije:
En definitiva, los nombres de tablas, bases o columnas, deben ir siempre entre acentos graves cuando tienen caracteres ilegales, espacios en blanco, o bien son palabras reservadas.
¿Te queda claro?
Estimado vea bien no tiene nada que ver lo que ud dice , lo que esta ocurriendo es que se esta llamando mal el select

Código PHP:
Ver original
  1. SELECT * FROM aca_debes_poner_nombre_de_latabla_y no -> '$valor' where condicion =' $valor'".
  #10 (permalink)  
Antiguo 15/03/2013, 13:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: que esta malo aca?

Creo que ni has mirado lo que explicó:
Cita:
Si, las tablas tienen el siguiente nombre: jueves 14 de marzo 900 es decir el nombre del día, el número de día y mes y una hora y me las genera normal, ahora lo que deseo hacer es escogerla e introducir datos en ellas.
Es decir, que la tabla realmente se llama " jueves 14 de marzo 900", y por ende, si nombre lo ingresa por variable, y el la ingresa así:
Código PHP:
Ver original
  1. $sql=mysql_query("SELECT * FROM $valor")or die( mysql_error());
la consulta, en definitiva, le está quedando de este modo:
Código MySQL:
Ver original
  1. SELECT * FROM 14 de marzo 930
Lo que obviamente es un error sintáctico.

Ahora bien, lo que yo le digo es que la construya así:
Código PHP:
Ver original
  1. $sql=mysql_query("SELECT * FROM `$valor`")or die( mysql_error());
Para que le quede de este modo:
Código MySQL:
Ver original
  1. SELECT * FROM `14 de marzo 930`
Cosa que MySQL si podrá reconocer...

¿Se entendió ahora?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 17/03/2013, 19:12
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: que esta malo aca?

loque este chico no esta haciendo es que no pone el nombre de la tabla esta mas que claro ..mas alla a su explicacion creo yo

Etiquetas: malo, mysql, select, sql, tabla
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 12:56.