Foros del Web » Programando para Internet » PHP »

Mostrar ficheros que no están en la base de datos

Estas en el tema de Mostrar ficheros que no están en la base de datos en el foro de PHP en Foros del Web. Hice las dos partes por separadao t ahora no sé como unirlas :(, tengo la parte que lee la base de datos osea sus registro ...
  #1 (permalink)  
Antiguo 29/01/2010, 07:02
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 3 meses
Puntos: 14
Mostrar ficheros que no están en la base de datos

Hice las dos partes por separadao t ahora no sé como unirlas :(, tengo la parte que lee la base de datos osea sus registro y la que muestra los directorios...pero quiero hacer que sólo muestre los que no están en la base de datos :( alguien me puede ayudar?

Código PHP:
<?php


#Recogemos la ruta indicada por el usuario
$link=$_POST['ruta'];

#Comprobamos si estan en la base de datos

$servidor "localhost";
$usuario "Alberto";
$clave "placton";
$basedatos "diarios";

$conexion=mysql_connect ($servidor$usuario$clave) or die ('problema conectando porque :' mysql_error());
mysql_select_db ($basedatos,$conexion);
$cadena ="SELECT texto FROM informe";
$tabla mysql_query($cadena$conexion) or die ("problema con cadena de conexion<br><b>" mysql_error()."</b>");
$registrosencontrados mysql_num_rows($tabla);

$registro mysql_fetch_array($tabla);



#Mostramos todos los archivos con extensión pdf del servidor
    
if ($dh opendir($link)) {
        
$files = array();
        while ((
$file readdir($dh)) !== false) {
            if (
substr($filestrlen($file) - 4) == '.pdf') {
                
array_push($files$file);
            }
        }
        
closedir($dh);
    }

sort($files);
    echo 
"<ul>\n";
    foreach (
$files as $file) {
        
$title $file;
        echo 
"<li><a href=\"$file\" title=\"$title\">$title</a></li>\n";
    }
    echo 
"</ul>\n";




?>
  #2 (permalink)  
Antiguo 29/01/2010, 07:10
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Mostrar ficheros que no están en la base de datos

Desde la base de datos, tendrías que obtener todos los nombres de los archivos, y guardarlos en un arreglo. Luego, dentro del if, que a su vez se encuentra dentro del while, preguntar si el archivo $file se encuentra dentro del arreglo con los nombres de los archivos que sacaste de la bd.

Un ejemplo para que quede más claro.

Código PHP:
Ver original
  1. $query = mysql_query("SELECT archivos FROM tabla");
  2. $archivos = array();
  3. $archivos = mysql_fetch_array($query);
  4.  
  5. // Luego...
  6.  
  7. while (($file = readdir($dh)) !== false) {
  8.             if (substr($file, strlen($file) - 4) == '.pdf') {
  9.                 # Si $file no se encuentra en $archivos, lo guardamos en el arreglo $files
  10.                if(!in_array($file, $archivos))   {
  11.                        array_push($files, $file);
  12.                 }
  13.             }
  14.         }

http://cl.php.net/manual/en/function.in-array.php

Espero te haya quedado claro

Nos vemos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.

Etiquetas: ficheros
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 13:22.