Foros del Web » Programando para Internet » PHP »

Solicito ayuda con If...Else

Estas en el tema de Solicito ayuda con If...Else en el foro de PHP en Foros del Web. Hola: Tengo un listado de CATEGORIAS que al hacer click sobre alguna de ellas, me muestra en otra página las empresas que pertenecen a dicha ...
  #1 (permalink)  
Antiguo 13/01/2008, 17:16
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 17 años
Puntos: 0
Solicito ayuda con If...Else

Hola:

Tengo un listado de CATEGORIAS que al hacer click sobre alguna de ellas, me muestra en otra página las empresas que pertenecen a dicha categoria.

Encima de los resultados se muestra una lista desplegable con las SUBCATEGORIAS pertenecientes a la categoria seleccionada, si es que las tiene.

La idea es que, tanto si la categoria no arroja resultados como si la categoria no tiene subcategorias, no deberia mostrase la lista desplegable vacia.

Estoy intentando con IF y Else pero no me sale. Les pongo los codigos a ver si alguien da con mi error. Gracias

La pagina consult_cat.php que muestra los resultados tiene dos includes (por cuestion de diseño), cada uno en una celda, subcategorias arriba y los resultados abajo:
Código PHP:
<? include("subcategorias.php"); ?>
<? 
include("resultados_cat.php"); ?>
resultados_cat.php
Código PHP:
<?
include ("connect.php");

if (isset(
$cat)){

$_pagi_sql "SELECT * FROM clientes WHERE categoria like '%" $cat "%' ORDER BY nombre";
// $result = mysql_query($sql) or die (mysql_error());

$_pagi_cuantos 10;

include(
"paginator.inc.php");

$registros mysql_num_rows($_pagi_result); 
if(
$registros<=0){ 

echo 
"<p class='copy'>No se encontraron resultados en $cat<br><br>";
echo 
"<a href='javascript:history.back();' class='copyright' title='Volver al listado de categorías'> volver atrás </a></p>";
}
else

while(
$row mysql_fetch_array($_pagi_result)){

echo 
"<br><br><font class='nombre_cliente'>".$row[nombre]."</font><br>";
echo 
"".$row[descripcion]."<br><br>";
echo 
"Ubicaci&oacute;n: ".$row[zona]."<br><br>";
echo 
"Direcci&oacute;n: ".$row[direccion]."";
if (!empty(
$row[telefono_dos])){
echo 
"<br>Tel&eacute;fonos: ".$row[telefono_uno]."&nbsp";
echo 
"- ".$row[telefono_dos]."";
}
else
echo 
"<br>Tel&eacute;fono: ".$row[telefono_uno]."";
echo 
"<br>Celular: ".$row[celular]."";
if (!empty(
$row[email_dos])){
echo 
"<br>e-Mail: <a href='mailto:".$row[email_uno]."' class='result'>".$row[email_uno]."</a>&nbsp";
echo 
"- <a href='mailto:".$row[email_dos]."' class='result'>".$row[email_dos]."</a>";
}
else
echo 
"<br>e-Mail: <a href='mailto:".$row[email_uno]."' class='result'>".$row[email_uno]."</a>";
if (!empty(
$row[url])){
echo 
"<br>Sitio Web: <a href=".$row[url]." target=_blank class='result'>".$row[url]."</a>";
}
if (!empty(
$row[subcategoria])){
echo 
"<br><br>Categor&iacute;a: ".$row[categoria]."&nbsp";
echo 
"(".$row[subcategoria].")<br><br><br>";
}
else
echo 
"<br><br>Categor&iacute;a: ".$row[categoria]."<br><br><br>";
echo 
"<hr noshade='noshade' color='#C5C5C5' size='1'>";
}
}
echo
"<p class='copy'>".$_pagi_navegacion."</p>";
?>
subcategorias.php (aqui uso If Else pero me muestra el mensaje y ademas la lista
Código PHP:
<?
include ("connect.php");

if (isset(
$cat)){

$sql "SELECT * FROM categorias WHERE categoria = '$cat' ORDER BY subcategoria";
$result mysql_query($sql) or die (mysql_error());

if(
$subcategoria<=0){

echo 
"No hay subcategorías asociadas a $cat";
}
else
?>
<form name="subcategorias" id="subcategorias" method="post" action="consult_subcat.php">
<?
echo '<select name="subcat">';
echo 
'<option value> -- Seleccione una subcategoria -- </option>';

while (
$row mysql_fetch_array($result)){

echo 
'<option>'.$row["subcategoria"];
}
?>
<input type="submit" name="submit" value="Filtrar Resultados">
</form>
<?
}
?>
La tabla en BD es categorias y contiene (id, categoria, subcategoria)

El enlace de cada categoria del listado en el index es consult_cat.php?cat=$row[categoria]
  #2 (permalink)  
Antiguo 13/01/2008, 18:51
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 13 años
Puntos: 2
Re: Solicito ayuda con If...Else

Hola, la verdad no probé el código, pero creo que estas usando mal las cosas.

Ejemplo:

Tu lo usas asi:
Código PHP:
if($prueba <=0) {
echo 
'no hay nada';
} else
echo 
'hay algo';

Pero tendria que ser asi:
Código PHP:
if($prueba <=0) {
echo 
'no hay nada';
} else {
echo 
'hay algo';


Porque digamos... pones todo ok. colocas if. Lo abris {. Pones un mensaje. Lo cerras } y le mandas else, pero tenes que volverlo a abrir.

Ejemplo:

if() {

} else {

}


Espero que te sirva de ayuda
  #3 (permalink)  
Antiguo 13/01/2008, 19:33
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 17 años
Puntos: 0
Re: Solicito ayuda con If...Else

Hola y gracias.

Al comienzo pense que podia ser algo asi pero no, mas bien si lo hago de esa manera me arroja error tipo:

Parse error: syntax error, unexpected '}' in C:\AppServ\www\xxxxxxxx\subcategorias.php on line 29
  #4 (permalink)  
Antiguo 13/01/2008, 22:42
 
Fecha de Ingreso: enero-2008
Mensajes: 27
Antigüedad: 11 años, 10 meses
Puntos: 0
Sonrisa Re: Solicito ayuda con If...Else

?>
<form name="subcategorias" id="subcategorias" method="post" action="consult_subcat.php">
<?

Por que no cambias esta parte por:

echo ('<form name="subcategorias" id="subcategorias" method="post" action="consult_subcat.php"> ')

posiblemente como se corta el else te de problemas por alguna razon.
  #5 (permalink)  
Antiguo 13/01/2008, 22:47
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 17 años
Puntos: 0
Re: Solicito ayuda con If...Else

Gracias, de hecho hace un rato lo hice pero igual no logro lo que necesito...

Código PHP:
<?
include ("connect.php");

if (isset(
$cat)){

$sql "SELECT subcategoria FROM categorias WHERE categoria = '$cat' ORDER BY subcategoria";
$result mysql_query($sql) or die (mysql_error());

$registros mysql_num_rows($result); 
if(
$registros<=0){

echo 
"No hay subcategorías relacionadas";
}
else

echo 
"<form method='post' action='consult_subcat.php'>";
echo 
"<select name='subcat'>";
echo 
"<option value='0'>&nbsp;--&nbsp;Seleccione una subcategoria&nbsp;--&nbsp;</option>";

while (
$row mysql_fetch_array($result)){

echo 
"<option value='".$row[subcategoria]."'>".$row[subcategoria]."</option>";
}
echo 
"<input type='submit' name='submit' value='Filtrar Resultados'>";
echo 
"</form>";
}
?>
He estado jugando con esta parte:
Código PHP:
$registros mysql_num_rows($result); 
if(
$registros<=0){

echo 
"No hay subcategorías relacionadas";
}
else 
Pero no he encontrado la combinacion correcta.

La logica que aplico me dice que haga la consulta y si no encuentra nada en el campo subcategoria, me muestre el mensaje de que no hay y sino entonces me cree y muestre el form con la lista. Sera que estoy mal con eso?
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 22:34.