Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/05/2009, 09:21
noriyuki
 
Fecha de Ingreso: mayo-2009
Mensajes: 14
Antigüedad: 10 años, 9 meses
Puntos: 0
Problemas con UNION: mysql_fetch_array() y mysql_free_result()

Código PHP:
Hola a todos,

Acabo de descubrir la herramienta para pasar bases de datos de Access a MySql y he empezado a pasar un web que tenía con bastantes registros de ASP a PHP, el caso es que mientras he hecho búsquedas simples todo ha ido bien pero hay una parte de la web que tiene un menú desplegable para elegir el modo de búsqueda, se puede elegir entre buscar las películas por Director, Intérprete, Titulo o Todas.

El caso es que la búsqueda de todas la tengo hecha con UNION y como mi versión de MySql es la     5.0.51a entiendo que debería de funcionar, el caso es que la búsqueda parece funcionar bien ya que me encuentra los resultados que debería pero después me muestra estos errores justo de antes de ponerme la página y no me muestra los resultados:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\AppServ\www\videoclub_php\buscarmultiple.php on line 118

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in E:\AppServ\www\videoclub_php\buscarmultiple.php on line 137

No se que hacer para quitarlos ya que no consigo ver el error así que si pudieráis darme alguna pista os lo agradecería mucho, este es el código de la página:

<?php
    
include ("includes/funciones.php");
  
$idcnx conectar();
  
$tmultiple$_REQUEST[tmultiple];
  
$multiple$_REQUEST[multiple];

  switch(
$multiple){
    case 
1:
  
$sql "Select * from Peliculas where Interpretes like '%".$tmultiple."%' ";
  
$sql.= "ORDER by Titulo,Anio ";
  break;
   case 
2:
  
$sql "Select * from Peliculas where Director like '%".$tmultiple."%' ";
  
$sql.= "ORDER by Titulo,Anio ";
  break;
   case 
3:
  
$sql "Select * from Peliculas where Titulo like '%".$tmultiple."%' "
  
$sql.= "ORDER by Titulo,Anio ";
   break;
   case 
4:
$sql "(Select * from Peliculas where Interpretes like '%".$tmultiple."%' ";
$sql.= "ORDER by Titulo,Anio) UNION ";
$sql.= "(Select * from Peliculas where Director like '%".$tmultiple."%' ";
$sql.= "ORDER by Titulo,Anio) UNION ";
$sql.= "(Select * from Peliculas where Titulo like '%".$tmultiple."%' "
$sql.= "ORDER by Titulo,Anio) ";
   break;

}  


    
$resultados mysql_query($sql) or die(mysql_error());
    
$registros 10;
    if (!
$pagina) { 
        
$inicio 0
        
$pagina 1
    } 
    else { 
        
$inicio = ($pagina 1) * $registros
    }     
    
    
$resultados mysql_query($sql);
    
$total_registros mysql_num_rows($resultados); 
    
$sql.= " asc LIMIT $inicio, $registros";
    
$resultados mysql_query($sql);
    
$total_paginas ceil($total_registros $registros);
    
    if(
$total_registros) {
    
    echo 
'<div class="blanco">';
    echo 
'Se han encontrado <span class="negrita">'.$total_registros.' resultados</span>';

    
    while(
$fila mysql_fetch_array($resultados)) {
            
    echo 
'<div class="fila"><div class="lista1">';
    echo 
'<a href="detalle.php?id='.$fila['Id'].'" title="'.$fila['Titulo'].'" >';
    echo 
'<img class="imagen" src="miniaturas/'.$fila['Foto'].'" alt="Portada de "';
    echo 
''.$fila['Titulo'].'" /></a> </div><div class="lista">';
                
    echo 
'<ul><li><span class="negrita"><a href="detalle.php?id='.$fila['Titulo'].'"';
    echo 
' title="'.$fila['Titulo'].'" >'.$fila['Titulo'].'</a></span>';
    echo 
'<a href="buscaranio.php?anio='.$fila['Anio'].'" > ('.$fila['Anio'].')</a></li>';
    echo 
'<li><span class="gris"><a href="buscarpais.php?pais='.$fila['Pais'].'" >';
    echo 
''.$fila['Pais'].'</a></span></li><li><span class="lnegro"><a href="';
    echo 
'buscardirector.php?director='.$fila['Director'].'" >'.$fila['Director'].'</a>';
    echo 
'</span></li><li>'.$fila['Interpretes'].'</li></ul></div></div>';
        }
    } else{
    echo 
'No hay resultados</div>';
    }

mysql_free_result($resultados);                
mysql_close($idcnx);    
    if(
$total_registros) {
        
    echo 
'<div class="paginacion"><div class="pag2">Ir a la página: ';
        
    if((
$pagina 1) > 0) {
            echo 
'<a href="listado.php?id='.$id.'&pagina='.($pagina-1).'">< Anterior</a> ';
        }
        
        for (
$i=1$i<=$total_paginas$i++){ 
            if (
$pagina == $i
                echo 
"<span class='negrita'>".$pagina."</span> "
            else
                echo 
'<a href="listado.php?id='.$id.'&pagina='.$i.'">'.$i.'</a> '
        }
      
        if((
$pagina 1)<=$total_paginas) {
            echo 
'<a href="listado.php?id='.$id.'&pagina='.($pagina+1).'">Siguiente ></a>';
        }
        
        echo 
"</div></div>";
        
    }


?>