Foros del Web » Programando para Internet » PHP »

mySql error Select de fecha

Estas en el tema de mySql error Select de fecha en el foro de PHP en Foros del Web. hola amigos PHPeros Estoy migrando mis conocimientos a PHP estoy haciendo una consulta por fecha... por medio de la url http://localhost/consejoj/PHP/veedor.php?sql=SELECT * FROM CALENDAR where ...
  #1 (permalink)  
Antiguo 17/09/2004, 19:31
 
Fecha de Ingreso: febrero-2002
Mensajes: 442
Antigüedad: 15 años, 9 meses
Puntos: 2
mySql error Select de fecha

hola amigos PHPeros

Estoy migrando mis conocimientos a PHP

estoy haciendo una consulta por fecha... por medio de la url

http://localhost/consejoj/PHP/veedor.php?sql=SELECT * FROM CALENDAR where
fecha='2004-09-25'

Este es el error!.....
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 '\'2004-9-15\''
at line 1:

Cuando ejecuto la misma consulta en el sql Query del MySQL Front... me
arroja muy bien los resultados... sin ningun error....
select * from calendar where fecha = '2004-09-25'

Que puede ser???

Por si las dudas...
Tengo win xp Pro Service Pack 1
php-4.3.8 win
mysql-4.0.21-win
MySQL-Front_2.5
MyODBC-standard-3.51.9-win


Gracias de antemano!:.. salu T
__________________
tech-nico.com
  #2 (permalink)  
Antiguo 18/09/2004, 07:05
 
Fecha de Ingreso: febrero-2002
Mensajes: 442
Antigüedad: 15 años, 9 meses
Puntos: 2
ninguna sugerencia para mi problemita???
__________________
tech-nico.com
  #3 (permalink)  
Antiguo 18/09/2004, 07:11
Avatar de javiermil  
Fecha de Ingreso: agosto-2004
Mensajes: 509
Antigüedad: 13 años, 3 meses
Puntos: 2
Has probado ha pasarlo pero no directamente, vamos no es que sepa muy bien el problema pero por el error quizás al pasar por la URL las comillas no las reconozca bien, no sé si me explico.Bueno en definitiva prueba pasándolo a través de una variable. Un saludo.
  #4 (permalink)  
Antiguo 18/09/2004, 07:47
 
Fecha de Ingreso: febrero-2002
Mensajes: 442
Antigüedad: 15 años, 9 meses
Puntos: 2
ok!... entonces... haber si entendi... en ves de usar el metodo GET... usamos el POST... pero como se recupera en PHP una variable con metodo POST ???

Gracias de antemano!
__________________
tech-nico.com
  #5 (permalink)  
Antiguo 18/09/2004, 09:17
Avatar de javiermil  
Fecha de Ingreso: agosto-2004
Mensajes: 509
Antigüedad: 13 años, 3 meses
Puntos: 2
Simplemente usando el nombre de la variable. Un saludo.
  #6 (permalink)  
Antiguo 18/09/2004, 10:14
Avatar de axy108  
Fecha de Ingreso: diciembre-2003
Ubicación: En frente de mi Computadora
Mensajes: 415
Antigüedad: 14 años
Puntos: 0
parece que esta teniendo problemas con los espacios y con las comillas al pasar la instruccion SQL de un lado a otro, lo que puedes hacer es como dice javiermil algo asi:

Código PHP:
<?php
$sql 
"SELECT * FROM CALENDAR where fecha='2004-09-25'";
//enviamos via post
?>
<form action="veedor.php" method="post">
<input type="hidden" value="<?php echo $sql?>">
<input type="submit" value="Enviar Consulta SQL">
</form>
y en veedor.php la recibes asi:

Código PHP:
<?php
$sql 
$_POST['sql'];
$result mysql_query($sql);
?>
Espero te sirva

SALUDOS
__________________
Todos somos muy ignorantes :pensando: . Lo que ocurre es que no todos ignoramos las mismas cosas ;-) .... Albert Einstein :cool:
  #7 (permalink)  
Antiguo 19/09/2004, 15:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Por favor . .NUNCA hagas cosas como estas:

http://localhost/consejoj/PHP/veedor.php?sql=SELECT * FROM CALENDAR where
fecha='2004-09-25'

Por qué si ejecutas la sentencia SQL directa sin ningún filtrado de seguridad . .podrían hacer cosas como:

http://localhost/consejoj/PHP/veedor.php?sql=DELETE FROM CALENDAR

(borrar registros y otras consultas que seguro no quieres que se hagan ..)

Lo que debes hacer es pasar sólo tu dato "variable" . .en tu caso esa fecha y ejecutar tu consulta SQL


Algo tipo:

http://localhost/consejoj/PHP/veedor...cha=2004-09-25

Y en tu script veedor.php ...

Código PHP:
<?
// Conectas a tu BD .. seleccionas la BD a trabajar ...
$sql="SELECT * FROM CALENDAR WHERE fecha='".$_GET['fecha']."'";
$resultado=mysql_query($sql);
if (
mysql_num_rows($resultado) > ){
   while (
$row=mysql_fetch_array($resultado)){
      echo 
$row['campo'];
   }
} else {
   echo 
"No hay resultados para su busqueda";
}
?>
Fijate que sólo se pasa la "variable" y no TODA! la senetencia SQL. con lo peligroso que eso es!!!!.

Un saludo,

PD: Para solventar tu problema original debes usar urlencode() (donde generas ese link para el dato variable) y urldecode() (en el script que lo recibe) a su vez también en el script que lo recibie debes aplicar stripslashses() para eliminar esos / de más que se añaden con las comillas ' (por configuración de PHP que uses en magic_quote_gpc de tu php.ini (que por lo demás está bien así ..) )
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 00:46.