Array?

cypher4

Grünschnabel
Hallo Freunde!
Ich hab da ein kleines Problem...
Folgender Sachverhalt!
Ich habe einen Kunden mit mehreren Autos.
Die Daten der Autos und die Namen der Bilder sind in einer DB hinterlegt!
Nun will ich über ein Skript die Daten der Fahrzeuge in einer csv datei haben
und die Bilder (die ich dann aus dem serververzeichnis lese) auch.beides dann zusammen in ein zip zum download!
Es funktioniert auch wunderbar, aber ich bekomme nur die 3 Bilder von dem ersten Fahrzeug!(Schleifen bedingung?)

Ich weiss, dass ich mit Arrays arbeiten muss und das ich eventl. bei der Schleife aufpassen muss.
Leider komm ich aber nicht weiter!!

Desweiteren gibt er mir die Bilder im zip in komischen unterordner..kann man nicht nur die bilder direkt ausgeben?

Bitte helft mir weiter!
Anbei das skript !

PHP:
<?php
require("zip.lib.php");
$DatabaseHost = "****";
$DatabaseUser = "web0";
$DatabasePassword = "****";
$Database = "usr_web0_1";
$Table = "fahrzeugart";
//$kdnr = $HTTP_POST_VARS["kdnr"];
$test = "/home/htdocs/web0/public/files/";

header('Content-Type: text/x-csv');
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Content-Disposition: attachment; filename=nl_export.csv');
header('Pragma: no-cache');

$zipfile = new zipfile("archive.zip");
$verz=opendir('/home/htdocs/web0/public/files/');

$DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword);
mysql_select_db($Database, $DatabasePointer);

  $ResultPointer = mysql_query("SELECT
  kdnr                          ,
  f_type                        ,
  plz_lkw                       ,
  hersteller_txt                ,
  hersteller_kran               ,
  typ                           ,
  erstzulassung_monat           ,
  erstzulassung_jahr            ,
  tuev_monat                    ,
  tuev_jahr                     ,
  laufleistung                  ,
  briefeintraege                ,
  motorenschadstoffklasse       ,
  zul_gesamtgewicht             ,
  leergewicht                   ,
  nutzlast                      ,
  aufbau                        ,
  aufbau_id                     ,
  varianten_id                  ,
  fahrerhaus                    ,
  uvv                           ,
  bemerkung                     ,
  insertion                     ,
  preis                         ,
  foto1                         ,
  foto2                         ,
  foto3                         
  FROM $Table
  WHERE kdnr = '$kdnr'  and public = '2' ");
                                                   
for($i=0, $Export=""; $i<mysql_num_rows($ResultPointer); $i++)
{
	$Daten = mysql_fetch_object($ResultPointer);

  $Spalte[1]  = str_replace("\"", "\"\"", $Daten->f_type);
  $Spalte[2]  = str_replace("\"", "\"\"", $Daten->plz_lkw);
  $Spalte[3]  = str_replace("\"", "\"\"", $Daten->hersteller_txt);
  $Spalte[4]  = str_replace("\"", "\"\"", $Daten->hersteller_kran);
  $Spalte[5]  = str_replace("\"", "\"\"", $Daten->typ);
  $Spalte[6]  = str_replace("\"", "\"\"", $Daten->erstzulassung_monat);
  $Spalte[7]  = str_replace("\"", "\"\"", $Daten->erstzulassung_jahr);
  $Spalte[8]  = str_replace("\"", "\"\"", $Daten->tuev_monat);
  $Spalte[9]  = str_replace("\"", "\"\"", $Daten->tuev_jahr);
  $Spalte[10]  = str_replace("\"", "\"\"", $Daten->laufleistung);
  $Spalte[11]  = str_replace("\"", "\"\"", $Daten->briefeintraege);
  $Spalte[12]  = str_replace("\"", "\"\"", $Daten->motorenschadstoffklasse);
  $Spalte[13]  = str_replace("\"", "\"\"", $Daten->zul_gesamtgewicht);
  $Spalte[14]  = str_replace("\"", "\"\"", $Daten->leergewicht);
  $Spalte[15]  = str_replace("\"", "\"\"", $Daten->nutzlast);
  $Spalte[16]  = str_replace("\"", "\"\"", $Daten->aufbau);
  $Spalte[17]  = str_replace("\"", "\"\"", $Daten->aufbau_id);
  $Spalte[18]  = str_replace("\"", "\"\"", $Daten->varianten_id);
  $Spalte[19]  = str_replace("\"", "\"\"", $Daten->fahrerhaus);
  $Spalte[20]  = str_replace("\"", "\"\"", $Daten->uvv);
  $Spalte[21]  = str_replace("\"", "\"\"", $Daten->bemerkung);
  $Spalte[22]  = str_replace("\"", "\"\"", $Daten->insertion);
  $Spalte[23]  = str_replace("\"", "\"\"", $Daten->preis);
  $Spalte[24]  = str_replace("\"", "\"\"", $Daten->foto1);
  $Spalte[25]  = str_replace("\"", "\"\"", $Daten->foto2);
  $Spalte[26]  = str_replace("\"", "\"\"", $Daten->foto3);

 	for($j=0; $j<count($Spalte); $j++)
	{
		$Export .= "\"" . $Spalte[$j] . "\"";
		$Bilderpfad1 = str_replace("\"", "\"\"", $Daten->foto1);
                               $Bilderpfad2 = str_replace("\"", "\"\"", $Daten->foto2);
                               $Bilderpfad3 = str_replace("\"", "\"\"", $Daten->foto3);
                             if($j!=count($Spalte)-1)
		{
			$Export .= ";";

                         while($file = readdir($verz)){

                                    if($file != '.' && $file != '..')

                                             if (substr($file,-3) == "jpg") {

                                             $test0 = "/home/htdocs/web0/public/files/$Bilderpfad1";
                                             $test1 = "/home/htdocs/web0/public/files/$Bilderpfad2";
                                             $test2 = "/home/htdocs/web0/public/files/$Bilderpfad3";
                                             $zipfile->addFileAndRead($test0);
                                             $zipfile->addFileAndRead($test1);
                                             $zipfile->addFileAndRead($test2);
                                    //  $zipfile->addFileAndRead($verz.$Bilderpfad[0], $Bilderpfad[0]);

                                             }
                                             }
                }
	}

	$Export .= "\r\n";
	$Spalte = "";

}
$zipfile->addFile($Export, "nl_export.csv");
echo $zipfile->file();
closedir($verz);
?>
 
Hi,

Ich weiß zwar nicht, ob es daran liegt (gehe mal davon aus), aber ersetzte die for-Schleife doch mal durch eine while-Schleif

PHP:
for($i=0, $Export=""; $i<mysql_num_rows($ResultPointer); $i++) 
{
   $Daten = mysql_fetch_object($ResultPointer);
   #...
}

in

PHP:
$Export="";

while($Daten = mysql_fetch_object($ResultPointer))
{
  #...
}

Zu den Bildern kann ich nichts sagen, da ich die Klasse nicht kenne. Was für komische Unterordner werden denn erstellt? Kommen diese Ordner auch auf deinem Webspace vor, also da, wo die Bilder gespeichert sind?

Gruß fanste
 
Zuletzt bearbeitet:
DAs mit der Schleife hab ich hinbekommen aber das mit den Ordnern nicht...
die Bilder liegen auf dem Server im Verzeichnis
/home/htdocs/web0/public/files/
und so sind sie dann auch in der zip hinterlegt
Kann man nicht nur die Bilder lesen ohne die ganze Ordnerstruktur?
 
Die Bilder kommen also aus dem Verzeichnisse /home/htdocs/web0/public/files/ und in deinem ZIP Archiv sind dann genau diese 5 Verzeichnisse vorhanden?

Kannst du da keinen Parameter bei der Funktion angeben, der das verhindert? Oder kannst du mal die Klasse hochladen oder einen Link nennen? Dann kann man dir bestimmt besser helfen.

EDIT:
Diese Zeile
$zipfile->addFile($Export, "nl_export.csv");
speichert doch den Inhalt der Variable $Export in der Datei nl_export.csv. Diese liegt ja dann direkt im Hauptverzeichnis des Archives. Wenn ja, kanst du ja die Bilderdatei per fopen() öffnen und auslesen und dann mit genau dieser Funktion neu erstellen um sie im Hauptverzeichnis des Archives zu haben.
 
Zuletzt bearbeitet:
Zurück