Foros del Web » Programando para Internet » PHP »

Mostrar el resultado

Estas en el tema de Mostrar el resultado en el foro de PHP en Foros del Web. Pues eso que no se porke me dan parse errores, aun no controlo las comillas simples y todo eso. Como hago que esto este bien ...
  #1 (permalink)  
Antiguo 01/07/2004, 07:04
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 6 meses
Puntos: 0
Mostrar el resultado

Pues eso que no se porke me dan parse errores, aun no controlo las comillas simples y todo eso.
Como hago que esto este bien escrito ¿?
Código PHP:
$fecha_fin"SELECT fecha FROM dr_anuncio WHERE DATE_SUB('fecha', INTERVAL '$row['contra']' DAY) BY id='$id'"
__________________
Seguro que ahora me sale mejor!

Última edición por benti; 02/07/2004 a las 01:43 Razón: Cambio de titulo cambio de problema
  #2 (permalink)  
Antiguo 01/07/2004, 07:29
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

En http://www.php.net/manual/en/language.types.string.php viene como meter arrays en cadenas.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 01/07/2004, 13:13
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 6 meses
Puntos: 0
Ya esta gracias Josemy, ahora como muestro el resutlado ¿?
Código PHP:
//vemos las fechas
$sql_fecha"SELECT fecha FROM dr_anuncio WHERE DATE_SUB('fecha', INTERVAL {$row['contra']} DAY) AND id='$id'";
$res_fecha mysql_query ($sql_fecha) or die (mysql_Error()); 
Imagino que tan solo obtendre una fecha X dias menor que la fecha que tengo almacenada pero como muestro esa información? en $row=mysql_fetch_array ($res_fecha); ¿?
__________________
Seguro que ahora me sale mejor!

Última edición por benti; 01/07/2004 a las 13:16
  #4 (permalink)  
Antiguo 02/07/2004, 01:44
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 6 meses
Puntos: 0
He cambiado el titulo a ver si así me podéis ayudar, ya que ahora es otro el problema.
Gracias
__________________
Seguro que ahora me sale mejor!
  #5 (permalink)  
Antiguo 02/07/2004, 03:11
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
jeje ése es un error que me ha pasado a mi cienes de veces.. y es por el despiste qu ellevo siempre encima :) que no veo ni lo más óbvio y que tienes que hacer un query para seleccionar el contenido de la tabla....


Código PHP:
$sql_fechamysql_query ("SELECT fecha FROM dr_anuncio WHERE DATE_SUB('fecha', INTERVAL {$row['contra']} DAY) AND id='$id'"); 
$res_fecha mysql_query ($sql_fecha) or die (mysql_Error()); 
luego ya puedes extraer los registros como prefieras con mysql_fetch_row($res_fecha) o mysql_fetch_array($res_fecha)

Un saludo!!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #6 (permalink)  
Antiguo 02/07/2004, 04:51
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 6 meses
Puntos: 0
Pues no aparece nada.
gracias de todas formas
Código PHP:
$sql_fecha= "SELECT fecha FROM dr_anuncio WHERE DATE_SUB('fecha', INTERVAL {$row['contra']} DAY) AND id='$id'";
$res_fecha = mysql_query ($sql_fecha) or die (mysql_Error());
$fecha_fin = mysql_fetch_row ($res_fecha);
// dentro de una tabla por la web esta esto otro
Anuncio: <b><? echo $id ?></b> - valido desde <b><? echo fecha($row['fecha'])
?></b> hasta <b><? echo $fecha_fin['fecha'?></b>
__________________
Seguro que ahora me sale mejor!
  #7 (permalink)  
Antiguo 02/07/2004, 05:06
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
a ver.. pueba con esto:

Código PHP:
$sql_fecha = mysql_query ("SELECT fecha FROM dr_anuncio WHERE DATE_SUB('fecha', INTERVAL {$row['contra']} DAY) AND id='$id'"); 
$res_fecha = mysql_query ($sql_fecha) or die (mysql_Error()); 
$fecha_fin = mysql_fetch_array ($res_fecha); 
// dentro de una tabla por la web esta esto otro 
Anuncio: <b><? echo $id ?></b> - valido desde <b><? echo fecha($row['fecha']) 
?></b> hasta <b><? echo $fecha_fin['fecha'?></b>
He añadido "mysql_query" en $sql_fecha y he cambiado mysql_fetch_row por mysql_fetch_array para que los datos de metan en $fecha_fin['fecha']

suerte!!!!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #8 (permalink)  
Antiguo 02/07/2004, 05:16
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 6 meses
Puntos: 0
You have an error in your SQL syntax near 'Resource id #3' at line 1
Ahora me sale eso ;)
__________________
Seguro que ahora me sale mejor!
  #9 (permalink)  
Antiguo 02/07/2004, 05:22
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
cómo has obtenido $row['contra'] y $row['fecha']??? para poder ponerlo de esa forma recuerda que es mysql_fetch_array

te vendría bien mostrar esos valores con un "echo" para ver si las variables contienen lo que esperas;)

+suerteeeeeeeeeeeeee
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #10 (permalink)  
Antiguo 02/07/2004, 05:30
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 6 meses
Puntos: 0
los saco de esta consulta que esta un poco mas arriba
Código PHP:
$sql "SELECT * from dr_anuncio WHERE id='$id'";
$res mysql_query ($sql) or die (mysql_Error());

if (
mysql_num_rows($res) == 1){ 
   
// Si hay datos 
    
$row=mysql_fetch_array ($res); 
Tiene un echo y salen bien
__________________
Seguro que ahora me sale mejor!
  #11 (permalink)  
Antiguo 02/07/2004, 05:32
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
cambia esta línea:

$sql = "SELECT * from dr_anuncio WHERE id='$id'";

por esta

$sql = mysql_query ("SELECT * from dr_anuncio WHERE id='$id'");

y pueba :)
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #12 (permalink)  
Antiguo 02/07/2004, 05:45
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 6 meses
Puntos: 0
You have an error in your SQL syntax near 'Resource id #2' at line 1
__________________
Seguro que ahora me sale mejor!
  #13 (permalink)  
Antiguo 02/07/2004, 05:54
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 6 meses
Puntos: 0
Lo que no me da nada es el valor $fecha_fin['fecha'] he kitado los quieris y funciona, pero ese valor esta carente de contenido
__________________
Seguro que ahora me sale mejor!
  #14 (permalink)  
Antiguo 02/07/2004, 05:55
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
pues... haz lo que te comento de los echo o mejor, printf (para las matrices) a ver qué resultados obtienes...

Lo siento, pero hasta el lunes ya no tendré conexíon me piro del curroooooooooooooooooooooooooooooooooo

Buen finde!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #15 (permalink)  
Antiguo 02/07/2004, 06:07
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 6 meses
Puntos: 0
Gracias y buen finde, ahora tengo el codigo este que no me da errores pero tampoco me muetras el contenido de $fecha_fin['fecha']
Código PHP:
//vemos las fechas
$sql_fecha = "SELECT fecha FROM dr_anuncio WHERE DATE_SUB('fecha', INTERVAL {$row['contra']} DAY) AND id='$id'";
$res_fecha = mysql_query ($sql_fecha) or die (mysql_Error());
$fecha_fin = mysql_fetch_array($res_fecha); 

<? echo $fecha_fin['fecha'?> // no ale nada
__________________
Seguro que ahora me sale mejor!
  #16 (permalink)  
Antiguo 05/07/2004, 01:21
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
yo sigo R que R... cambia

$sql_fecha = "SELECT fecha FROM dr_anuncio WHERE DATE_SUB('fecha', INTERVAL {$row['contra']} DAY) AND id='$id'";


por

$sql_fecha = mysql_query ("SELECT fecha FROM dr_anuncio WHERE DATE_SUB('fecha', INTERVAL {$row['contra']} DAY) AND id='$id'");
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #17 (permalink)  
Antiguo 05/07/2004, 03:08
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
X3mdesign:
No entiendo adónde quieres llegar con lo que propones.
En un post anterior pones una llamada a la función mysql_query() dos veces... además intentas pasarle como parámetro un resultset la segunda vez (¿!!!?).

benti:
Lo que haces está bien. Es mejor tener la sentencia sql en una variable y luego pasar esa variable como parámetro a mysql_query(), porque eso te permitirá imprimir la cadena para verificar que se esté creando bien. Prueba así:
Código PHP:
$sql_fecha "SELECT fecha FROM dr_anuncio WHERE DATE_SUB('fecha', INTERVAL {$row['contra']} DAY) AND id='$id'"
$res_fecha mysql_query ($sql_fecha) or die ("error en $sql_fecha :".mysql_error()); 
$fecha_fin mysql_fetch_array($res_fecha); 
echo 
$fecha_fin['fecha']; 
Es raro que no te dé errores... sobretodo si pones la función mysql_Error(), que debería ser mysql_error().

Prueba poner al comienzo de tu script esta línea:
Código PHP:
error_reporting(E_ALL); 
Para poder ver cualquier error que puedas tener.

Saludos
  #18 (permalink)  
Antiguo 05/07/2004, 03:12
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Ah... algo que estaba olvidando es que probablemente la consulta no te devuelva ningún registro (porque ninguno cumple la condición del WHERE). A veces nos complicamos mucho y la respuesta puede ser muy sencilla.
Prueba contar los registros:
Código PHP:
$sql_fecha "SELECT fecha FROM dr_anuncio WHERE DATE_SUB('fecha', INTERVAL {$row['contra']} DAY) AND id='$id'"
$res_fecha mysql_query ($sql_fecha) or die ("error en $sql_fecha :".mysql_error());
if(
mysql_num_rows($res_fecha)>0){ 
   
$fecha_fin mysql_fetch_array($res_fecha);
}else{
   die(
"La consulta no devolvió registros");

Saludos
  #19 (permalink)  
Antiguo 05/07/2004, 03:53
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
hola jpinedo, no soy ningún gurú del PHP como habrás podido observar ... pero a mí también me ha ocurrido en varias ocasiones lo que a benti y al poner el mysql_query() con el texto del select me ha funcionado ... en otros post, también le he comentado que comprobase, que las variables que usa, tienen el dato que se espera de llevas con "echo" y "printf"....

Gracias por ayudar a ver si tu das en el clavo
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #20 (permalink)  
Antiguo 05/07/2004, 04:09
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
x3Mdesign:
Bueno... no tiene nada que ver poner la cadena directamente en la función o en una variable.
Lo que digo que estás planteando mal es lo siguiente:
Código PHP:
//Aquí haces la consulta a la base de datos. Y obtienes
//el resultado (resultset) en la variable $sql_fecha
$sql_fecha mysql_query ("SELECT fecha FROM dr_anuncio WHERE DATE_SUB('fecha', INTERVAL {$row['contra']} DAY) AND id='$id'");
//Hasta aquí todo bien.

//El problema es que en la línea siguiente pasas ese resultset
//como parámetro nuevamente a la función mysql_query().
//Eso te dará un error sí o sí. 
$res_fecha mysql_query ($sql_fecha) or die (mysql_Error()); 
Saludos
  #21 (permalink)  
Antiguo 05/07/2004, 04:49
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 6 meses
Puntos: 0
Gracias por interesaros ambos, bueno este fin de semana he mirado esto un poco y conseguido que contenga información las variables y que me de un resultado, pero... no lo suma correctamente, ahi el código:
Código PHP:
// Como anteriormente hago un SqlQuery recojo estos valores de esa llamada
$dia_contra $row['contra']; // tiempo contratado en dias
$fecha_db $row['fecha']; // fecha con formato aaaa-mm-dd en mi DB

// Aqui esta el tema añadimos los dias a la fecha
$sql_fecha "SELECT fecha FROM dr_anuncio WHERE ADDDATE('$fecha_db', INTERVAL $dia_contra DAY)";
$res_fecha mysql_query ($sql_fecha) or die (mysql_Error());
$fecha_fin mysql_fetch_array($res_fecha); 

// Si hago un echo de las variables anteriores aparecen sus datos correctos
echo "$dia_contra"// 30
echo "$fecha_db"// 2004/06/29

// aqui imprimimos el resultado
echo $fecha_fin['fecha']; 
El fallo es que si la fecha es 2004/06/29 + 30 dias, me da 2004/06/30, y si le sumo 150 dias (o lo que sea) me da el mismo resultado. :(
De nuevo gracas a los 2
__________________
Seguro que ahora me sale mejor!
  #22 (permalink)  
Antiguo 05/07/2004, 05:09
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Creo que recién voy entendiendo. la sintaxis correcta seria más o menos así:
Código PHP:
$sql_fecha "SELECT ADDDATE('$fecha_db', INTERVAL '$dia_contra' DAY) AS fecha FROM dr_anuncio"
Saludos

Última edición por jpinedo; 05/07/2004 a las 05:28
  #23 (permalink)  
Antiguo 05/07/2004, 05:19
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 6 meses
Puntos: 0
Gracias, sigue sin restarlo ahora me da el mismo resultado 2004/06/29. :(

Estoy habierto a otro método de restar dias porque llevo toda la semana con estas funciones y nada.
__________________
Seguro que ahora me sale mejor!
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 08:40.