Foros del Web » Programando para Internet » PHP »

Echo donde va?

Estas en el tema de Echo donde va? en el foro de PHP en Foros del Web. Hola amigos tengo una duda, quiero que si no se encuentran resultados aparezca el tipico mensaje no se han encontrado resultados, el tema es que ...
  #1 (permalink)  
Antiguo 17/05/2010, 11:44
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Echo donde va?

Hola amigos tengo una duda, quiero que si no se encuentran resultados aparezca el tipico mensaje no se han encontrado resultados, el tema es que lo pongo pero no pasa nada.

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4.  
  5.  
  6. $id=$_SESSION["id"];
  7. $usuario=$_SESSION["usuario"];
  8. $pag=$_REQUEST['pag'];
  9.  
  10.  
  11.  
  12.  
  13. include_once ("connect.php");
  14.  
  15.  
  16.  
  17.  
  18. $sexo = (!empty($_POST["sexo"])
  19.     ? " sexo='".trim($_POST["sexo"])."'"
  20.         : "");
  21.  
  22. $interestin = (!empty($_POST["interestin"])
  23.         ? (!empty($sexo)
  24.                 ? " AND interestin='".trim($_POST["interestin"])."'"
  25.                 : " interestin='".trim($_POST["interestin"])."'")
  26.         : "");
  27.  
  28. $pais = (!empty($_POST["pais"])
  29.         ? (!empty($sexo) || !empty($interestin)
  30.                 ? " AND pais='".trim($_POST["pais"])."'"
  31.                 : " pais='".trim($_POST["pais"])."'")
  32.         : "");
  33.  
  34. $estadocivil= (!empty($_POST["estadocivil"])
  35.         ? (!empty($sexo) || !empty($interestin) || !empty($pais)
  36.                 ? " AND estadocivil='".trim($_POST["estadocivil"])."'"
  37.                 : " estadocivil='".trim($_POST["estadocivil"])."'")
  38.         : "");
  39.  
  40.  
  41.  
  42. $where = (!empty($sexo) || !empty($interestin) || !empty($pais) || !empty($estadocivil)  
  43.         ? " WHERE "
  44.         : "");
  45.  
  46.  
  47.  
  48. if (!isset($pag)) $pag = 1; // Por defecto, pagina 1
  49. $result = mysql_query("SELECT COUNT(*) FROM members");
  50. list($total) = mysql_fetch_row($result);
  51. $tampag = 5;
  52. $reg1 = ($pag-1) * $tampag;
  53.  
  54. function paginar($actual, $total, $por_pagina, $enlace) {
  55.   $total_paginas = ceil($total/$por_pagina);
  56.   $anterior = $actual - 1;
  57.   $posterior = $actual + 1;
  58.   if ($actual>1)
  59.     $texto = "<a href=\"$enlace$anterior\">&laquo;</a> ";
  60.   else
  61.     $texto = "<b>&laquo;</b> ";
  62.   for ($i=1; $i<$actual; $i++)
  63.     $texto .= "<a href=\"$enlace$i\">$i</a> ";
  64.   $texto .= "<b>$actual</b> ";
  65.   for ($i=$actual+1; $i<=$total_paginas; $i++)
  66.     $texto .= "<a href=\"$enlace$i\">$i</a> ";
  67.   if ($actual<$total_paginas)
  68.     $texto .= "<a href=\"$enlace$posterior\">&raquo;</a>";
  69.   else
  70.     $texto .= "<b>&raquo;</b>";
  71.   return $texto;
  72. }
  73.  
  74.  
  75. $s = "SELECT * FROM members "
  76.         . $where
  77.         . $sexo
  78.         . $interestin
  79.         . $pais
  80.         . $estadocivil
  81.         ." LIMIT $reg1, $tampag";
  82.  
  83.  
  84.  
  85.  
  86. $query = mysql_query($s) or die(mysql_error());
  87.  
  88.  
  89.  
  90.  
  91.  
  92. while($row = mysql_fetch_array($query)) {
  93.  
  94.  
  95.        
  96.  
  97.            
  98.  
  99.  
  100. ?>

despues va el html
y al final cuando cierro el while , pongo :

Código PHP:
Ver original
  1. if( empty($sexo) || empty($interestin) || empty($pais) || empty($estadocivil)){
  2. echo "No se han encontrado resultados";
  3. }

Tengo que ponerlo mas arriba el codigo?
  #2 (permalink)  
Antiguo 17/05/2010, 12:00
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Respuesta: Echo donde va?

No el lugar no es el problema, mientras este despues del codigo para que se pueda ejecutar la condicion esta bien..

proba con:


Código PHP:
      if( empty($sexo) || empty($interestin) || empty($pais) || empty($estadocivil)){
      echo 
"No se han encontrado resultados";
      }else{
echo 
'otra cosa';

ahi te daras cuenta si es que esta mal hecha la condicion.. puede ser ese el error.

Saludos,
  #3 (permalink)  
Antiguo 17/05/2010, 12:13
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Echo donde va?

Hola McBlink, gracias por responder lo puse al final despues de cerrar el while, y cuando pongo criterios que sé que no va a encontrar nada, todo bien. Pero cuando pongo criterios que se que va a encontrar algo, me tira los resultados, y al final no se han encontrado resultados.

Cual puede ser el error?, y si lo pongo arriba de todo?
  #4 (permalink)  
Antiguo 17/05/2010, 14:16
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Respuesta: Echo donde va?

mira sigo insistiendo que el error lo tenes en la condicion..
para que se de que no hay resultados, tanto $sexo $pais y las demas tienen que estar vacias? o con solo una de ellas nula es sufienciente para que de el mensaje?
  #5 (permalink)  
Antiguo 17/05/2010, 15:44
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Echo donde va?

Le hice algunos retoques a tu codigo a ver que pasa
Te agregue algo que no se si te lo habias olvidado: "session_start();"
Debes ponerlo siempre en todo los script que desees que continue la sesion
Si mi codigo no funciona, agregale al tuyo session_start();


Cuentame que pasa asi lo sigo viendo...



<?php
session_start();

$id=$_SESSION["id"];

$usuario=$_SESSION["usuario"];
$pag=$_REQUEST['pag'];

include_once ("connect.php");

$sexo = (!empty($_POST["sexo"])
?
" sexo='".trim($_POST["sexo"])."'"
:
"");

$interestin = (!empty($_POST["interestin"])
?
(!empty($sexo)? " AND interestin='".trim($_POST["interestin"])."'": " interestin='".trim($_POST["interestin"])."'")
:
"");

$pais = (!empty($_POST["pais"])
?
(!empty($sexo) || !empty($interestin)? " AND pais='".trim($_POST["pais"])."'": " pais='".trim($_POST["pais"])."'")
:
"");

$estadocivil=(!empty($_POST["estadocivil"])
?
(
!empty($sexo) || !empty($interestin) || !empty($pais)
? " AND estadocivil='".trim($_POST["estadocivil"])."'"
: " estadocivil='".trim($_POST["estadocivil"])."'"
)
:
"");

$where = (!empty($sexo) || !empty($interestin) || !empty($pais) || !empty($estadocivil)
?
" WHERE "
:
"");





if (!isset($pag))
$pag = 1;

// Por defecto, pagina 1
$result = mysql_query("SELECT COUNT(*) FROM members;");

list($total) = mysql_fetch_row($result);

$tampag = 5;
$reg1 = ($pag-1) * $tampag;

function paginar($actual, $total, $por_pagina, $enlace) {

$total_paginas = ceil($total/$por_pagina);
$anterior = $actual - 1;
$posterior = $actual + 1;

if ($actual>1)
$texto = "<a href=".$enlace."".$anterior.">&laquo;</a> ";
else
$texto = "<b>&laquo;</b> ";

for ($i=1; $i<$actual; $i++)
$texto .= "<a href=".$enlace."".$i.">".$i."</a> ";
$texto .= "<b>".$actual."</b> ";

for ($i=($actual+1); $i<=$total_paginas; $i++)
$texto .= "<a href=".$enlace."".$i.">".$i."</a> ";

if ($actual<$total_paginas)
$texto .= "<a href=".$enlace."".$posterior.">&raquo;</a>";
else
$texto .= "<b>&raquo;</b>"; return $texto;


} //END function ...?


$s = "SELECT * FROM members ". $where. $sexo. $interestin. $pais. $estadocivil." LIMIT ".$reg1.", ".$tampag.";";
$query = mysql_query($s) or die(mysql_error());



while($row = mysql_fetch_array($query)) {

}


//no se exactamente donde va este if si fuera o dentro del while
if( empty($sexo) || empty($interestin) || empty($pais) || empty($estadocivil)){
echo "No se han encontrado resultados";
}
  #6 (permalink)  
Antiguo 17/05/2010, 16:24
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Echo donde va?

Hola, no, haciendo lo que me dijiste no aparece nada, yo lo pongo despues de que se cierra el while mas abajo despues del html.

No se cual puede ser el problema.
  #7 (permalink)  
Antiguo 17/05/2010, 17:57
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Echo donde va?

Y lo que hay dentro del while:

while($row = mysql_fetch_array($query)) {

}

No lo puedes postear a ver si haces bien los envios $_POST ...?

Si lo pones todo mejor.

Y pegalo directo, sobre la hoja blanca de la pagina, porque en la otra al pegar lo copiado en el editor queda sin saltos de linea y hay que hacerlo manualmente.


Y hay algo por ejemplo: $usuario=$_SESSION["usuario"]; esta variable $_SESSION["usuario"]; no tiene ningun valor, no hay nungun envio post que le de valor etc... Por lo que le da un valor vacio a $usuario



Postea mas si quieres, a ver que sale...

Última edición por wiwi74; 17/05/2010 a las 18:05

Etiquetas: echo
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 15:58.