Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/05/2006, 04:45
Reich
 
Fecha de Ingreso: mayo-2006
Mensajes: 2
Antigüedad: 17 años, 10 meses
Puntos: 0
Problemas con consultas y busquedas

Hola!!!

Soy muy principiante en esto del PHP y apenas se hacer gran cosa.Ahora estoy bloqueada con unas consultas,aver si podeis ayudarme y me se explicar.

Os comento:

Hace unos dias,hice una busqueda de tan solo un campo $buscar y no me dio ningun error con el siguiente codigo que ha sido cogido de una web que ahora no recuerdo.
Código PHP:
<?

if (!isset($buscar)){ 

echo 
"Debe especificar una cadena a buscar"

echo 
"<p>Debe especificar una cadena a buscar</p> \n";


echo 
"</html></body> \n"

exit; 



$link mysql_connect("localhost""",""); 

mysql_select_db("musica"$link); 

$sql "SELECT * FROM grupos WHERE nombre LIKE '%$buscar%' ORDER BY nombre"

$result mysql_query($sql$link); 

if (
$row mysql_fetch_array($result)){ 

echo 
"<table border = '1'> \n"

//Mostramos los nombres de las tablas 

mysql_field_seek($result,0); 

while (
$field mysql_fetch_field($result)){ 

echo 
"<td><b>$field->name</b></td> \n"



echo 
"</tr> \n"

do { 

echo 
"<tr> \n";

echo 
"<td>".$row["codigo"]."</td> \n";  

echo 
"<td>".$row["nombre"]."</td> \n"

echo 
"<td>".$row["componentes"]."</td> \n"

echo 
"<td>".$row["discos"]."</td> \n"

echo 
"<td>".$row["anno"]."</td> \n"

echo 
"<td>".$row["tipomusica"]."</td> \n"



} while (
$row mysql_fetch_array($result)); 


echo 
"</table> \n"

} else { 

echo 
"<p>¡No se ha encontrado ningún registro!</p>\n"



?>
El problema me surge ahora que quiero hacer la busqueda por varios campos,intento hacer una web de musica y quiero que mediante un formulario que contiene el nombre,estilo e integrantes del grupo puede hacer busquedas(si esta en blanco pues que muestre todos,si selecciono el estilo,que muestre todos los de ese estilo) pero no lo consigo :(

El codigo que tengo es el siguiente:
Código PHP:
<?
            conectaBD
();
            
seleccionaBD();
            
//$integrantes=$_POST["integrantes"];
            
$nombre=$_POST["nombre"];
            
$estilo=$_POST["estilo"];
            
$inte1=$_POST["inte1"];
            
$inte2=$_POST["inte2"];

$result=ejecutar_consulta($nombre,$estilo,$inte1,$inte2);
//$fila=mysql_fetch_array($result);

if ($row mysql_fetch_array($result)){

echo 
"<table border = '1'> \n"

//Mostramos los nombres de las tablas 

mysql_field_seek($result,0); 

while (
$field mysql_fetch_field($result)){ 

echo 
"<td><b>$field->name</b></td> \n"



echo 
"</tr> \n"

do { 

echo 
"<tr> \n";

echo 
"<td>".$row["codigo"]."</td> \n";  

echo 
"<td>".$row["nombre"]."</td> \n"

echo 
"<td>".$row["estilo"]."</td> \n"

echo 
"<td>".$row["anno"]."</td> \n"

echo 
"<td>".$row["integrantes"]."</td> \n"

echo 
"<td>".$row["albumes"]."</td> \n"

echo 
"<td>".$row["fotos"]."</td> \n"

echo 
"<td>".$row["historia"]."</td> \n"



} while (
$row mysql_fetch_array($result)); 


echo 
"</table> \n"

}else { 

echo 
"<p>¡No se ha encontrado ningún registro!</p>\n"

}

?>
donde ejecutar_consulta esta lo siguiente:
Código PHP:
 function ejecutar_consulta($nombre,$estilo,$inte1,$inte2)
       {
               
//global $link;
            //conectaBD();
            //seleccionaBD();
            //mysql_query("lock tables grupos read", $link) or $this->Error_mysql();
            
if('$nombre'=="" &&    '$estilo'=="todos" &&    '$inte1'=="" && '$inte2'=="")
            {
                
$sql "SELECT * FROM grupos WHERE nombre LIKE '$nombre' ORDER BY nombre"
                
$res=mysql_db_query(BASEDATOS,$sql);
            }
            else if(
estilo=='$estilo')
            {
                
$sql "SELECT * FROM grupos WHERE estilo LIKE '$estilo' ORDER BY nombre"
                
$res=mysql_db_query(BASEDATOS,$sql);    
            }
            
// mysql_query("unlock tables", $link) or $this->Error_mysql();
             //cierraBD();
             
return ($res);
        } 
Pero con todo esto tengo un error con el if ($row = mysql_fetch_array($result)){

Aver si me podeis ayudar,estoy desesperandome

Muchas gracias!!!

Última edición por jam1138; 31/05/2006 a las 04:56