[GastForen Programmierung/Entwicklung PHP und MySQL DB nach Excel exportieren

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

DB nach Excel exportieren

Catzenjaeger
Beiträge gesamt: 23

30. Mär 2011, 17:44
Beitrag # 1 von 11
Bewertung:
(17491 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Einzelne Tabellen nach Excel exportieren ist kein Problem aber kann man auch alle Tabellen auf einmal nach Excel exportieren am besten jede Tabelle in ein einzelnes sheet?
X

DB nach Excel exportieren

Tömsken
Beiträge gesamt: 720

31. Mär 2011, 19:59
Beitrag # 2 von 11
Beitrag ID: #468125
Bewertung:
(17466 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du brauchst also nur ein Script, das alle Tabellen einer Datenbank ausliest...
Dann sollte das hier klappen:

Code
// Verbindung zur Datenbank aufbauen 

$db_con_id = mysql_connect($db_hostname, $db_user, $db_password) or die (mysql_error());
mysql_select_db($db_database) or die (mysql_error());


// Alle Tabellen der Datenbank ermitteln

$resTables = mysql_list_tables($db_database, $db_con_id);
if (!$resTables) {
echo "DB Fehler, Tabellen koennen nicht ermittelt werden: " . mysql_error();
exit;
}


// Alle Tabellen der Datenbank sequentiell durchlaufen

while ($tables = mysql_fetch_row($resTables)) {
echo 'Tabelle gefunden: '.$tables[0];
// Hier die Export-Routine für die Tabelle aufrufen
}

mysql_close($db_con_id);


bb Tom


als Antwort auf: [#468007]

DB nach Excel exportieren

Catzenjaeger
Beiträge gesamt: 23

31. Mär 2011, 20:25
Beitrag # 3 von 11
Beitrag ID: #468130
Bewertung:
(17457 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

danke für deine antwort. Könntest du mir auch die exportfunktion mal zeigen? Ich bekomms nicht hin :(

Hier meines was ich zum exportieren einer tabelle nutze

Code
<?php 

$host = 'xxx';
$user = 'xxx';
$pass = 'xxx';
$db = 'xxx';
$table = 'xxx';
$file = 'xxx';

$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("Can not connect.");

$result = mysql_query("SHOW COLUMNS FROM ".$table."");
$i = 0;
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
$csv_output .= $row['Field']."; ";
$i++;
}
}
$csv_output .= "\n";

$values = mysql_query("SELECT * FROM ".$table."");
while ($rowr = mysql_fetch_row($values)) {
for ($j=0;$j<$i;$j++) {
$csv_output .= $rowr[$j]."; ";
}
$csv_output .= "\n";
}

$filename = $file."_".date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;
?>



als Antwort auf: [#468125]
(Dieser Beitrag wurde von Catzenjaeger am 31. Mär 2011, 20:27 geändert)

DB nach Excel exportieren

Catzenjaeger
Beiträge gesamt: 23

9. Jun 2011, 09:55
Beitrag # 4 von 11
Beitrag ID: #473344
Bewertung:
(17197 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

habe es leider noch nicht geschaft eine komplette DB nach Excel zu exportieren.

Eine einzelne Tabelle nach Excel bekomme ich hin aber wie gesagt ich würde gerne alle 10 Tabellen nach Excel holen wenn es geht jede Tabelle auf ein Sheet

Könnt ihr mir helfen?

Danke schon einmal


als Antwort auf: [#468007]

DB nach Excel exportieren

Pozor
Beiträge gesamt: 892

9. Jun 2011, 15:14
Beitrag # 5 von 11
Beitrag ID: #473383
Bewertung:
(17178 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

Hier ein Link der Dich interessieren könnte:

http://pear.php.net/package/Spreadsheet_Excel_Writer/

Mit der Klasse kannst Du Excelfiles erstellen, mit mehreren
Worksheets.


als Antwort auf: [#473344]

DB nach Excel exportieren

Catzenjaeger
Beiträge gesamt: 23

9. Jun 2011, 16:11
Beitrag # 6 von 11
Beitrag ID: #473391
Bewertung:
(17165 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Tömsken hat ja oben einen Anstoß gegeben aber ich raffe das nicht

es muss ja auch mit einen einfachen snipplet/script gehen

mit einer Tabelle gehts ja auch :) nur nalle auf einmal nach excel laden bekomme ich nicht hin


als Antwort auf: [#473383]

DB nach Excel exportieren

Intermedia
Beiträge gesamt: 1287

9. Jun 2011, 17:58
Beitrag # 7 von 11
Beitrag ID: #473396
Bewertung:
(17150 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

Antwort auf [ Catzenjaeger ]
es muss ja auch mit einen einfachen snipplet/script gehen


.... klar geht das......es muß aber erstmal geschrieben werden und da sieht man wie einfach es wirklich ist.

Die Lösung mit den Tabellen steht oben, die kannst du in ein Array schreiben.

Das Array durchläufst du und liest von den Tabellen die Felder aus und machst wieder ein Array, dann kommt die Query und liest die Datensätze aus, schreibst sie in eine Datei.
Die Feldnamen hast du ja in einem Array stehen und damit bist du dynamisch und es ist egal wie die Tabellen und Felder aussehen.


Gruß Sven

P.S. ich muß sowas demnächst machen dann werde ich es in dieser Art umsetzen.


als Antwort auf: [#473391]

DB nach Excel exportieren

crisies
  
Beiträge gesamt: 136

13. Jun 2011, 18:48
Beitrag # 8 von 11
Beitrag ID: #473539
Bewertung:
(17094 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi,

PHPMyAdmin sollte eine solche Exportfunktion besitzen. Einfach in der Datenbanken übersicht auf den Exportreiter klicken und dann die gewünschte DB + Format auswählen.

Weiss jetzt nicht ob es versch. Sheets anlegt. Vermutlich eher pro Tabelle eine Datei.

gruss
chris.w.


als Antwort auf: [#473396]

DB nach Excel exportieren

macmac
Beiträge gesamt: 394

13. Jun 2011, 23:22
Beitrag # 9 von 11
Beitrag ID: #473544
Bewertung:
(17070 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
genau diese frage hatte ich auch zu lösen.

meine einfache variante: ich gebe alle tabelleinhalte getrennt aus in einer nackten php-seite, trenne sie durch ; &row[aa];&row[bb] und sichere sie in eine textdatei, die du dann in zellen getrennten inhalten in excel importierst.

nun: die funktion, erst noch alles einzelne sheets zu erstellen, wirkt sehr komplex. habe mich da schlau gemacht, da ist ein microsoft server im vorteil.

wohl aber kaum das, was du wirklich suchst, oder?

macmac


als Antwort auf: [#473391]

DB nach Excel exportieren

Catzenjaeger
Beiträge gesamt: 23

14. Jun 2011, 08:11
Beitrag # 10 von 11
Beitrag ID: #473547
Bewertung:
(17048 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ich suche eingentlich nur eine Lösung anstatt einer alle tabellen zu exportieren. Oben habe ich ja schon den Code gepostet den ich nutze um eine tabelle zu exporteiren - diese müsste angepasst werden das man alle exportert. Kann das jemand ? Hat da jemand Ahnung davon?

Ich bin noch nicht soweit - leider ;)


als Antwort auf: [#473544]

DB nach Excel exportieren

ganesh
Beiträge gesamt: 1981

14. Jun 2011, 11:03
Beitrag # 11 von 11
Beitrag ID: #473562
Bewertung:
(17030 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hast du dir Pozor's Link überhaupt mal angeschaut? Das ist genau was du suchst.

http://pear.php.net/...eet-excel-writer.php

Einfach alle Tabellen durchrattern und für jede ein neues Worksheet erstellen:

$worksheet =& $workbook->addWorksheet('Erstes Worksheet');
// Daten rein via PHP / mySQL bzw. $worksheet->write()
$worksheet =& $workbook->addWorksheet('Zweites Worksheet');
usw.

Erst ganz am Schluss das File schliessen: $workbook->close();

Du musst halt die Struktur jeder Tabelle zuerst abfragen für die Feldnamen / Excel Headers. Vermutlich wirst du DESCRIBE oder SHOW COLUMNS benötigen dafür. Dass dir jemand ein fixfertiges Script auf dem Silbertablett präsentiert, ist wohl ein wenig zu viel verlangt...

Und sonst musst du wohl nach einem kommerziellen Tool Ausschau halten (zur Info: HeidiSQL + dbEdit können keine ganzen DBs exportieren, nur einz. Tabellen).


als Antwort auf: [#473547]
X