Foros del Web » Programando para Internet » PHP »

isset no me funciona

Estas en el tema de isset no me funciona en el foro de PHP en Foros del Web. Hola, colegas, a ver si me pueden dar una mano. Soy un muy novato estudiante de php con mysql y apenas me encuentro haciendo mis ...
  #1 (permalink)  
Antiguo 30/08/2004, 15:43
 
Fecha de Ingreso: noviembre-2003
Mensajes: 68
Antigüedad: 21 años
Puntos: 0
Pregunta isset no me funciona

Hola, colegas, a ver si me pueden dar una mano.
Soy un muy novato estudiante de php con mysql y apenas me encuentro haciendo mis primeros scripts, basándome en lo que leo en algunos tutoriales.
Estoy probando un buscador que busca elnombre (o fragmento de él) del típico ejemplo de libro de la base de datos "agenda".
Paso el valor de la variable de búsqueda (ingresada desde una caja de texto, y enviada por método post a un script de php, en el que, lo primero que hago es verificar que el valor exista, a través de isset:

el formulario html:

<form action="http://localhost/buscador.php" method="POST">
<input type="text" class="form" name="buscar"/>&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" value="buscar" class="form"/>

y el script php:

<?php
if (!isset($buscar)) {
echo "Debe especificar una palabra clave";
echo "</body> \n </html>";
exit;
}
include_once ("configprueba.php");
$link = mysql_connect($host,$user,$pwd) or die ("No se puede conectar la base de datos.");
mysql_select_db("prueba",$link) or die ("No se puede selecciobar la base de datos.");
$result = mysql_query("SELECT * FROM agenda WHERE nombre LIKE '%$buscar%' ORDER BY idagenda", $link) or die ("Consulta fallada.");
if ($row = mysql_fetch_array($result)){
echo "<table class = 'contenedor'> \n";
echo "<tr> \n";
$i = 0;
while ($i < mysql_num_fields($result)) {
$meta = mysql_fetch_field($result,$i);
echo "<td>$meta->name</td> \n";
$i++;
}
echo "</tr> \n";
do {
echo "<tr> \n";
echo "<td>".$row["idagenda"]."</td> \n";
echo "<td>".$row["nombre"]."</td> \n";
echo "<td>".$row["direccion"]."</td> \n";
echo "<td>".$row["telefono"]."</td> \n";
echo "<td><a href='mailto:".$row["email"]."'>".$row["email"]."</a></td> \n";
echo "</tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}

El punto es que cuando dejo en blanco el campo de texto y presiono el boton submit me muestra todos los registros dela base de datos, en lugar de imprimir la cadena correspondiente y finalizar el script.

Alguna idea de qué puede estar mal por favor?
Gracias!
__________________
[|_4 (0|\/|U|\|1(4(10|\| 35 |_4 FU3RZ4]
  #2 (permalink)  
Antiguo 30/08/2004, 15:49
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 2 meses
Puntos: 41
Lo que debes hacer es, siempre que tengas alguna duda con una función específica, revisar lo que diga el manual.
http://www.php.net/manual/es/function.isset.php

La función isset() devuelve true si una variable está definida, en tu caso la variable viene desde el formulario y está definida como una cadena vacía.

Lo que en tu caso conviene es utilizar otra función como empty()
http://www.php.net/manual/es/function.empty.php

Saludos
  #3 (permalink)  
Antiguo 30/08/2004, 16:08
 
Fecha de Ingreso: noviembre-2003
Mensajes: 68
Antigüedad: 21 años
Puntos: 0
Muchas gracias jpinedo.
Tiene toda la lógica!
Por otra parte estaba leyendo un post acá cerquita en el que desaconsejabas el uso de variables globales y hablabas de algo que ignoro por completo que es el uso de ¿Matrices superglobales $_GET, $POST?
¿Dónde puedo encontrar información sobre esto?
Gracias de nuevo!
__________________
[|_4 (0|\/|U|\|1(4(10|\| 35 |_4 FU3RZ4]
  #4 (permalink)  
Antiguo 30/08/2004, 16:11
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 2 meses
Puntos: 41
Cita:
Iniciado por 5H1V4
¿Matrices superglobales $_GET, $POST?
¿Dónde puedo encontrar información sobre esto?
Pues en el mismísimo manual del que te puse algunas referencias arriba:
http://www.php.net/manual/es/security.globals.php

Saludos
  #5 (permalink)  
Antiguo 30/08/2004, 16:14
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 2 meses
Puntos: 41
Y en las FAQ's de este foro (el primer post de la lista), puedes encontrar alguna otra referencia como esta de Cluster:
http://www.forosdelweb.com/showthrea...989#post238989

Saludos
  #6 (permalink)  
Antiguo 30/08/2004, 16:17
 
Fecha de Ingreso: noviembre-2003
Mensajes: 68
Antigüedad: 21 años
Puntos: 0
DE nuevo mil gracias jpinedo!
__________________
[|_4 (0|\/|U|\|1(4(10|\| 35 |_4 FU3RZ4]
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 14:44.