2016-10-07 4 views
1

Ich möchte mehrere Daten in xls exportieren. Der Benutzer kann eine ID eingeben (13,42,192) und das Skript schreibt xls.PHP xls export von mysql mit mehreren eingang und ausgang

if(isset($_POST['download_xls'])) { 

$filename = 'id_'.$id.'_'.$db_tabel.'_'.date('d-m-Y_H-i',time()); 

$id_suche = explode(",", str_replace(" ", "", $_POST['id_suche'])); 

header("Content-Type: application/xls; charset=utf-8");  
header("Content-Disposition: attachment; filename=".$filename.".xls"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 

print("id\tlayout\tmenge\tname\tvorname\tlieferadresse\tbesteller_name\tbesteller_email\tmitteilung"); 
print("\n"); 

foreach ($id_suche as $tmp_id) { 

    $query = "SELECT id, layout, menge, name, vorname, lieferadresse, besteller_name, besteller_email, mitteilung FROM be_bestellungen WHERE id = ".$tmp_id; 

    $result = mysql_query($query, $db); 

    $sep = "\t"; 

    while($row = mysql_fetch_row($result)) { 

     $schema_insert = ""; 

     for($j=0; $j < mysql_num_fields($result); $j++) { 
      if(!isset($row[$j])) 
       $schema_insert .= "NULL".$sep; 
      elseif ($row[$j] != "") 
       $schema_insert .= "$row[$j]".$sep; 
      else 
       $schema_insert .= "".$sep; 
     }   


     $schema_insert = str_replace($sep."$", "", $schema_insert); 
     $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert); 
     $schema_insert .= "\t"; 


     print(trim($schema_insert)); 

     die; 

    } 
} 

}

das Skript schreiben nur 1 Daten in xls. wenn ich eine ID in das Eingabefeld no resulte schreibe. dank

Antwort

0

aller Zuerst verwenden Sie die mysli_* Klasse

Und die Antwort auf Ihre Frage:

Entfernen Sie die die(); in Ihrer while-Schleife

Wenn Sie in der auf die nächste Iteration hinwollen Schleife verwenden continue;

Wenn Sie die Schleife brechen möchten, verwenden Sie break;

php.net ist dein bester Freund (link)