Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/11/2010, 10:49
motorinapronto
 
Fecha de Ingreso: noviembre-2010
Mensajes: 101
Antigüedad: 13 años, 5 meses
Puntos: 0
buscar en base datos

Hola! Estoy creando un buscador con php pero no consigue que me de los resultados y me tiene un poco desesperada!

Mi base de datos es "basedatos" y mi Tabla "peliculas". Dentro tengo solo dos columnas: "idpelicula" y "titulo" como se muestra:



La idea de mi buscador es que cuando se ponga "007" aparezcan todas las de 007 e incluso otras peliculas que tengan 007 en su titulo.

Lo he intentado mil veces y no lo consigo. Este es mi formulario creado:

Código HTML:
 <form id="form1" name="form1" method="post" action="http://localhost/buscarpelicula.php">
    <p>Search Profile:
      <label>
        <input type="text" name="buscar" id="buscar2" />
      </label>
    <input type="submit" name="search" id="search" value="Search" />
</form></div> 
y mi PHP "buscarpelicula.php" como marco es el siguiente:

Código PHP:
<?php

//"si $buscar no esta definida..."
if(!isset($buscar)) {
    echo 
"Debe especificar una cadena a buscar";
    echo 
"</html></body> \n";
    exit;
}

    
$link=mysql_connect("localhost","miusuario","micontraseña");
    
mysql_select_db("basedatos",$link);

    
$result=mysql_query("SELECT titulo FROM peliculas WHERE titulo LIKE '%$buscar%',$link);

   while ($row = mysql_fetch_array ($result))
   {
      print ("
<TR>");
      print ("
<TD>$row[idpelicula]</TD>n");
      print ("
<TD>$row[titulo]</TD>n"."<br>");
      print ("
</TR>");        
    }
    mysql_free_result($result);

?>
Con este primero me da este error:
Parse error: syntax error, unexpected '>' in C:\xampp\htdocs\buscarpelicula.php on line 18

Y es raro porque las lineas que señala las he usado antes para mostrar resultados (que no buscar) y me daba bien!

Y con este segundo, con el que tampoco me sale...

Código PHP:
<?php

//"si $buscar no esta definida..."
if(!isset($buscar)) {
    echo 
"Debe especificar una cadena a buscar";
    echo 
"</html></body> \n";
    exit;
}

    
$link=mysql_connect("localhost","miusuario","micontraseña");
    
mysql_select_db("basedatos",$link);


    
$result mysql_query("SELECT * FROM peliculas WHERE titulo LIKE '%$buscar%' ORDER BY titulo"$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["idpelicula"]."</td> \n"
            echo 
"<td>".$row["titulo"]."</td> \n"
            echo 
"</tr> \n"
      } while (
$row mysql_fetch_array($result)); 
            echo 
"</table> \n"
    } else { 
    echo 
"¡ No se ha encontrado ningún registro !"

?>
Con este me sale todo el rato y ponga lo que ponga "Debe especificar una cadena a buscar" (es como si no leyera lo de abajo...

Alguien sabe por que me pasa esto?

PD: una duda... debo poner "LIKE '%$buscar%'" o "LIKE '%$search%'" ?? el name o la id?