2017-06-17 1 views
-1

J'ai une image de travail du répertoire à l'insertion du script mysql.le problème est que je après chaque répertoire je dois changer le nom dans le script lui-même pour insérer les images suivantes d'un autre répertoire. chaque fichier et chaque répertoire avec des images est dans un répertoire prent appelé "images". Donc, ma question comment puis-je dire insérer tout dans le mysql db de ce répertoire et utiliser les noms du répertoire en tant que noms de catégorie pour les images en elle.Comment améliorer le mysql insert en vrac avec php pour récupérer tous les répertoires et les images du répertoire à la fois

<?php 
$server = 'xxxxx'; 
$dbuser = 'xxxxxx'; 
$dbpass = 'xxxxxx'; 
$dbname = 'xxxxxxx'; 

$connect = mysql_connect($server,$dbuser,$dbpass); 
mysql_select_db($dbname,$connect); 





$path = "images/thanks/"; 
$files = array_map('mysql_real_escape_string',array_filter(glob("{$path}*.*"),'is_file')); 

if(empty($files)){ 
    echo "There were no matching files to insert into the database."; 
} else {  
    $insertValues = array(); 
foreach($files as $file) 

{ 
$data = getimagesize($file); 
$width = $data[0]; 
$height = $data[1]; 
    $insertValues[] = "('Titel', 'thanks', '{$file}', '$width', '$height')"; 
}$query = "INSERT INTO `gbpics` (`gbpictitel`, `gbpiccat`, `gbpicurl`, `gbpicwidth`, `gbpicheight`) VALUES " . implode(', ', $insertValues); 
    if(!mysql_query($query)){ 
     echo "There was a problem inserting the data."; 
     trigger_error("Query failed: $query<br />Error: " . mysql_error()); 
    } else { 
     echo "The data was inserted successfully."; 
    } 
}?> 
+0

Je suggère fortement que vous postez sur ce code premier examen. – hakre

Répondre

0

essayez ceci:

<?php 
$server = 'xxxxx'; 
$dbuser = 'xxxxxx'; 
$dbpass = 'xxxxxx'; 
$dbname = 'xxxxxxx'; 

$connect = mysql_connect($server, $dbuser, $dbpass); 
mysql_select_db($dbname, $connect); 




$dirs = array_filter(glob('images/*'), 'is_dir'); 
foreach ($dirs as $dir) { 
    $path = "images/" . $dir . "/"; 
    $files = array_map('mysql_real_escape_string', array_filter(glob("{$path}*.*"), 'is_file')); 

    if (empty($files)) { 
     echo "There were no matching files to insert into the database."; 
    } else { 
     $insertValues = array(); 
     foreach ($files as $file) { 
      $data   = getimagesize($file); 
      $width   = $data[0]; 
      $height   = $data[1]; 
      $insertValues[] = "('Titel', {$dir}, '{$file}', '$width', '$height')"; 
     } 
     $query = "INSERT INTO `gbpics` (`gbpictitel`, `gbpiccat`, `gbpicurl`, `gbpicwidth`, `gbpicheight`) VALUES " . implode(', ', $insertValues); 
     if (!mysql_query($query)) { 
      echo "There was a problem inserting the data."; 
      trigger_error("Query failed: $query<br />Error: " . mysql_error()); 
     } else { 
      echo "The data was inserted successfully."; 
     } 
    } 
} 
?> 

BTW vous avez assez de code désapprouvée ici ... ne pas user mysql_ utilisation mysqli_

+0

Salut ami oui je vais suggérer que le script ne fonctionne pas, il me donne des milliers d'erreurs comme ceci "Il n'y avait pas de fichiers correspondants à insérer dans la base de données.". Eu une idée? mon fichier de téléchargement est dans la racine de mes dossiers de catégorie dans les images de dossier principal donc il devrait travailler ne peut pas comprendre pourquoi pas .. pls aider @RiazLaskar –