Bilder direkt aus Ordner in Datenbank speichern --> Problem!!

disear

Erfahrenes Mitglied
Hallo zusammen:
Ich habe wieder mal ein kleines Problem und dies Betrifft eine Bildergallerie. Ich habe einen Ordner mit Bildern und möchte diese nun in die Datenbank speichern lassen, ohne das ich Manuell alles eintippe
Ich habe nun folgenden Code:
Code:
<?php 
$dir = "pics/site/"; 
$d = dir($dir); 
while ($file = $d->read()) { 
if ($file != "." AND $file != ".."){ 
$array[] = $file; 
} 
} 
$picanz = count($array); 
for($i=0; $i<=$picanz; $i++) { 
$pic = $array[$i]; 
include('connect.php')
mysql_query("INSERT INTO bilder (bildname, id) VALUES ('$pic', '')"); 
} 
?>
Doch nun teste ich dieses File und ich erhalte immer folgende Fehlermeldungen. Ich habe schon X-Skripte versucht doch will nicht so recht...
Code:
Parse error: parse error in filename.php on line 4
Doch ich erkenne bei der Line 4 keine Fehler...
hat mein Webserver eine Einstellung nicht oder weshalb?
 
Ganz von deinem Parse-Problem abgesehen, sehe ich im query einen Fehler:

PHP:
mysql_query("INSERT INTO bilder (bildname, id) VALUES ('$pic', '')");

muss heissen

PHP:
mysql_query("INSERT INTO bilder (bildname, id) VALUES ('".$pic."', '')");

Wobei, wenn Du dem Feld 'ID' einen autoincrement zugewiesen hast, brauchst den auch nicht zu Inserten! Also:

PHP:
mysql_query("INSERT INTO bilder (bildname) VALUES ('".$pic."'')");

Ansonsten habe ich dein Skript bei mir ausprobiert, ohne Probleme!
 
mmh... sch***** danach wird es wohl doch am Webserver liegen
gibt es irgendeine Möglichkeit dies zu verändern oder weiss jemand ne andere Funktion?

Grüsse disear
 
Mir fällt nur ein fehlendes Semikolon hinter der include-Anweisung auf.
Probier mal Folgendes:
PHP:
<?php

	include 'connect.php';

	$dir = 'pics/site/';
	$d = dir($dir);
	while( $file = $d->read() ) {

		if( $file == '.' || $file == '..' ) {
			continue;
		}
		$query = "
			INSERT INTO
			        `bilder`
			  SET
			        `bildname` = '".mysql_real_escape_string($file)."'
			";
		mysql_query($query)
			or die(mysql_error());   // or-die-Zusatz zur Fehlerdiagnose

	}

?>
 
Wieso will das nicht klappen
mano!
Ich habe nicht Lust alle Bilder manuell in die Datenbank zu speichern. :mad:
Tjaaa, aber woran kann das wohl liegen?
Ich habe jetzt mal das File auf meinem Webserver getestet: da erhalte ich folgende Fehlermeldung:

Code:
Parse error: parse error, unexpected T_VARIABLE in /var/www/schmidi/test.php on line 2
Was bedeutet T_Variable?

Grüss
Disear
 
ja das mit dem Parse Error weiss ich schon, aber das Skript hat ja keine erkennbare Fehler...!
tjaa! Kann es irgendwie an der Konfiguration des Apache-Servers liegen

Grüsse disear
 
Problem gelöst

BIG THX to dsturm

disear

Lösung:
Code:
<html> 
<head> 
<title>Test</title> 
</head> 
<body> 

<?php 
$dir = "pics/site"; 

if (!is_dir($dir)) { echo 'Kein g&uuml;tiges Verzeichniss'; } 

else { 

$d = dir($dir); 
while( $file = $d->read() ) { 

if( $file == '.' || $file == '..' ) { 
    continue; 
} 
$query = "INSERT INTO `bilder` SET `bildname` = '".mysql_real_escape_string($file)."'";
#mysql_query($query) or die(mysql_error());// or-die-Zusatz zur Fehlerdiagnose
echo mysql_real_escape_string($file).'<br />'; 

} 

} 

?> 
</body> 
</html>
 
Was bedeutet T_Variable?
Vor der Interpretation eines PHP-Quellcodes überprüft der Parser, ob der Quellcode überhaupt den Regeln der Syntax von PHP genügt. Dazu wird der Quellcode in so genannte Tokens – beispielsweise Variablen (T_VARIABLE), Zeichenketten (T_STRING, etc. – zerlegt, die mit den Satzbausteinen eines deutschen Satzes verglichen werden können. Anhand der Reihenfolge der Tokens wird nun die Grammatik des Quellcodes überprüft. Ist sie valide, wird der Quellcode interpretiert, sonst gibt es eine Fehlermeldung.
 
Zurück