🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #16427

Problemas novato php

#16427
From: Oscar Manuel
Date: Sun, 23 Apr 2000 00:00
138 lines
3514 bytes
Pues estoy siguiendo un tutorial de php3 en el cual se hace un buscador
en una base de datos. Tengo instalado apache, php3 y mysql. Este es
"buscador.html":

<html> 
<body> 
<form method="POST"
action="http://www.omgs.es/~oscar/php/buscador.php3"> 
<strong>Nombre a buscar:</strong> <input type="text" name="T1"
size="20"><br><br> 
<input type="submit" value="Buscar" name="buscar"> 
</form> 
</body> 
</html>

Y éste es "buscador.php3":

<html> 
<body> 

<?php 
if (!isset($buscar)){ 
        echo "Debe especificar una cadena a bucar"; 
        echo "</html></body> \n"; 
        exit; 
} 
$link = mysql_connect("localhost", "nobody"); 
mysql_select_db("mybd", $link); 
$result = mysql_query("SELECT * FROM agenda WHERE nombre LIKE
'%$buscar%' ORDER BY nombre", $link); 
if ($row = mysql_fetch_array($result)){ 
        echo "<table border = '1'> \n"; 
//Mostramos los nombres de las tablas 
echo "<tr> \n"; 
while ($field = mysql_fetch_field($result)){ 
        echo "<td>$field->name</td> \n"; 
} 
        echo "</tr> \n"; 
do { 
        echo "<tr> \n"; 
        echo "<td>".$row["id"]."</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 !"; 
} 
?> 

</body> 
</html> 


Pues lo que ocurre es que, ponga lo que ponga en la caja, se va siempre
a "No se ha encontrado ningún registro". Luego, he descubierto que si
cambio $nombre y pongo $T1, funciona mejor, pero falla en la primera
comprobación, donde se supone que si dejo la caja vacía, debería salir
el mensaje "Debe especificar una cadena a buscar", pero en vez de eso me
salen todos los registros de la base de datos, ya que pasa la cadena
vacía al LIKE del SELECT. He probado

if ( $T1 = "" ) {

en vez de 

if (!isset($T1)){ 

pero nada.

Seguro que estoy fallando en cosas básicas, pero esto es lo único que
tengo de momento, así que si alguien conoce algún tutorial mejor, que lo
diga ahora o calle para siempre ;-).

-- 
http://counter.li.org registration info:
----------------------------------------
Linux user: 92390 - Linux machine: 39301

|--------------------------------------|
|     Oscar Manuel Gómez Senovilla     |
|  mailto:oscarsen@BORRARmicorreo.net  |
|    (quita "BORRAR" después de @)     |
|      (remove "BORRAR" after @)       |
|           Madrid (España)            |
|--------------------------------------|
Technical Details
Message-ID: <3902EE00.6B17302E@omgs.es>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,8f26923e7805e4d2,start
X-Google-Attributes: gidf86c8,public
From: Oscar Manuel <oscar@omgs.es>
Subject: Problemas novato php
Date: 2000/04/23
Message-ID: <3902EE00.6B17302E@omgs.es>
X-Deja-AN: 614719887
Content-Transfer-Encoding: quoted-printable
X-Accept-Language: es
Content-Type: text/plain; charset=iso-8859-1
X-Trace: oscar.omgs.es 956493312 1188 192.168.0.10 (23 Apr 2000 12:35:12 GMT)
Organization: Estoy harto de spammers
Mime-Version: 1.0
Newsgroups: es.comp.os.linux.programacion