Foros del Web » Programando para Internet » PHP »

Saber si no hay resultados

Estas en el tema de Saber si no hay resultados en el foro de PHP en Foros del Web. Necesito saber la sentencia para saber si una conulta a una base de datos no tuvo resultados; y si es asi decirle al usuario que ...
  #1 (permalink)  
Antiguo 04/07/2005, 20:51
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 14 años, 6 meses
Puntos: 1
Saber si no hay resultados

Necesito saber la sentencia para saber si una conulta a una base de datos no tuvo resultados; y si es asi decirle al usuario que vuela a intenter de nuevo.
gracias.
  #2 (permalink)  
Antiguo 04/07/2005, 21:43
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
Código PHP:
<? $consultar="SELECT * FROM tabla"// Tu consulta
$consultando=mysql_query($consultar);
$num_registros=mysql_num_rows($consultando);
// mysql_num_rows te da los resultados, acá puedes hacer bien la consulta
// y lograr las condiciones que quieras
 
?>
  #3 (permalink)  
Antiguo 04/07/2005, 22:04
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 14 años, 6 meses
Puntos: 2
otra forma:

Código PHP:
<?php
//conexion a DB
$var 0;
$SQL mysql_query("SELECT * FROM name WHERE campo = 'hola mundo' ORDER BY id DESC");
while(
$ROW=mysql_fetch_array($SQL)) {
$var++;
echo 
$row["campo"].'<br>';
}
if (
$var == 0) { echo 'no hubo resultados'; }
?>
O tambien

Código PHP:
<?php
//conexion a DB
$var "";
$SQL mysql_query("SELECT * FROM name WHERE campo = 'hola mundo' ORDER BY id DESC");
while(
$ROW=mysql_fetch_array($SQL)) {
$var .= $row["campo"].'<br>';
}
if (
$var ) { echo $var; } else { echo 'no hubo coincidencias'; }
?>

En fin.. hay mil maneras de hacerlo, depende de como lo necesites...

PD: todo esto es obviamente si estas usando WHILE(), ya que si el campo es "exacto" (es decir que puede haber 1 resultado o ninguno), solo tenes que usar un else...

Código PHP:
<?php
//conexion a DB
$var "";
$SQL mysql_query("SELECT * FROM name WHERE id = 3456");
if (
$ROW=mysql_fetch_array($SQL)) { echo $row["campo"]; }
else { echo 
'no hubo coincidencias'; }
?>
__________________
I Love Programming...
  #4 (permalink)  
Antiguo 04/07/2005, 22:25
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... técnicamente lo que mencionas Fulano es un error; el hacer un mysql_fetch_XXXX() cuándo no hubo resultados está mal, de hecho te debería aparecer un mensaje de advertencia, que podemos hacer que no se muestre... pero el error está ahí.

Es correcto lo que mencionas y es, como bien dices, una(s) alternativa en a que se "demuestra" que con imaginación (pensandole) podemos encontrar solución, más para eso hay funciones específicas que te permiten un mejor control y te ahorra el usar variables auxiliares traduciendose en eficiencia... en este caso. como lo menciona lado2, tenemos mysql_num_rows().

www.php.net/mysql_num_rows

Solo comentarios... Saludos!

Edito:
Pareciera me contradigo en el primer y segundo párrafo... más lo que quise decir esque lo que propone Fulano es, efectivamente, una solución... es correcto, sirve!... más lo que sería un error es el emplear una función cuando no debería pués no habría manera --mysql_fetch_XXXX()--. Espero quede claro eso...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 13:03.