Foros del Web » Programando para Internet » PHP »

no consigo hacer un IF

Estas en el tema de no consigo hacer un IF en el foro de PHP en Foros del Web. Hola, necesito un poco de ayuda, tengo el suguiente codigo: Código PHP: <?php  require_once( 'Connections/seleccion.php' ); mysql_select_db ( $database_seleccion ,  $seleccion ) or die( mysql_error ()); $hoy ...
  #1 (permalink)  
Antiguo 24/04/2008, 19:25
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 9 meses
Puntos: 0
no consigo hacer un IF

Hola, necesito un poco de ayuda, tengo el suguiente codigo:

Código PHP:
<?php require_once('Connections/seleccion.php');
mysql_select_db($database_seleccion$seleccion) or die(mysql_error());
$hoy=date("Y-m-j h:i:s");
$sql=mysql_query("SELECT*FROM registro WHERE DATEDIFF('$hoy',fecha) <=1",$seleccion);?>

<?php if (!empty($sql)) {while ($row=mysql_fetch_array($sql)) {?>
<table><tr>
<td width="74">Nombre:</td>
<td width="198"><?php echo $row['nombre'];?></td>
</tr>
<tr><td>Fecha:</td><td><?php echo $row['fecha'];?></td></tr>
<tr><td>Mail:</td><td><?php echo $row['mail'];?></td></tr>
<tr>
  <td valign="top" bgcolor="#CCFFCC">Comentario:</td>
  <td bgcolor="#CCFFCC"><?php echo $row['comentarios'];?></td>
</tr>
<tr>
  <td colspan="2" valign="top"><hr size="3"></td>
  </tr>
</table>

<?php }}
else {echo
'no existen nuevos registros';}

?>
quiero hacer el siguiente if

si $sql no produce ningun resultado, me muestre lo que dice en ELSE, pero si produce un resultado me muestre lo que sale en la tabla .

he intentado con isset, empty, $sql!="" etc, pero no me resulta. Si la consulta no produce resultados, simplemente no me muestra nada, y yo quiero que me muestre lo que dice en ELSE.

no se donde esta el error, ¿alguna idea?
  #2 (permalink)  
Antiguo 24/04/2008, 19:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: no consigo hacer un IF

Debes de usar mysql_num_rows para obtener el numero de filas, si es 0, es que no hay filas en la consulta.

Saludos.
  #3 (permalink)  
Antiguo 24/04/2008, 19:57
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: no consigo hacer un IF

hola, con mysql_num_rows me pasan dos cosas:

- Solo me muestra el NUMERO de las columnas (yo quiero los datos)

-O me muestra un cantidad interminable de campos, pero sin datos (si uso el where).

Lo que quiero hacer yo, es recuperar los registros de la tabla que cumplan la condicion DATEDIFF es decir que hayan sido ingresados hace menos de un dia. y que si no existe ningun registro ingresado en esa fecha, me muestre un ELSE que diga, 'no se han ingresado registros'.

alguna idea?

Última edición por Ruben_C; 24/04/2008 a las 20:21
  #4 (permalink)  
Antiguo 24/04/2008, 21:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: no consigo hacer un IF

Hola Ruben_C,

Muestra el código de tu consulta, puede que ahí este el problema.

Saludos.
  #5 (permalink)  
Antiguo 24/04/2008, 21:07
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: no consigo hacer un IF

Esta es la consulta:
Código PHP:
$sql=mysql_query("SELECT*FROM registro WHERE DATEDIFF('$hoy',fecha) <=1",$seleccion); 
.

aqui lo que hace es mostrar solo los registros ingresado hace menos de un dia.

y lo que quiero es, que si no se han ingresado registros, me salga 'no se han ingresado registros'.

obviamente haciendo el if, bueno, eso esta arriba, al principio de l mensaje.

saludos!
  #6 (permalink)  
Antiguo 24/04/2008, 21:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: no consigo hacer un IF

Prueba así:
Código PHP:
<?php require_once('Connections/seleccion.php');
mysql_select_db($database_seleccion$seleccion) or die(mysql_error());
$hoy=date("Y-m-j h:i:s");
$sql=mysql_query("SELECT * FROM registro WHERE DATEDIFF('$hoy',fecha) <=1",$seleccion) or die( mysql_error() );
$num mysql_num_rows$sql );
if (
$num ) {while ($row=mysql_fetch_array($sql)) {?>
<table><tr>
<td width="74">Nombre:</td>
<td width="198"><?php echo $row['nombre'];?></td>
</tr>
<tr><td>Fecha:</td><td><?php echo $row['fecha'];?></td></tr>
<tr><td>Mail:</td><td><?php echo $row['mail'];?></td></tr>
<tr>
  <td valign="top" bgcolor="#CCFFCC">Comentario:</td>
  <td bgcolor="#CCFFCC"><?php echo $row['comentarios'];?></td>
</tr>
<tr>
  <td colspan="2" valign="top"><hr size="3"></td>
  </tr>
</table>

<?php }}
else {echo
'no existen nuevos registros';}

?>
Saludos.
  #7 (permalink)  
Antiguo 24/04/2008, 21:38
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: no consigo hacer un IF

si, asi funciona, peeeero, no me muestra los registros insertados antes de que se cumpla un dia, por ejemplo, si se ingreso hace 23 horas arggg
  #8 (permalink)  
Antiguo 24/04/2008, 22:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: no consigo hacer un IF

El problema en ese caso esta en tu consulta, prueba usar otro intervalo.

Saludos.
  #9 (permalink)  
Antiguo 25/04/2008, 09:48
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: no consigo hacer un IF

Tenias razon GatorV, el intervalo tiene que ser asi:

Código PHP:
("SELECT * FROM registro WHERE DATEDIFF('$hoy',fecha) >0 AND DATEDIFF('$hoy',fecha) <=1" ,$seleccion
Gracias de nuevo!!!!
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 21:59.