Komplette DB auslesen und ausgeben (inkl. Feldnamen)

PreludeBA4

Mitglied
Hi leute.

Wie ich mein Glück kennen bekomm ich sicher als Antwort einen Link zur Suchfunktion oder zu Google aber ich suche mich bereits schon dumm und dusselig. Folgendes Problem müsste gelöst werden:

Aus einer DB-Tabelle sollen alle Werte inklusive der Feldnamen abgerufen und ausgegeben werden. Das sollte dann wiefolgt aussehen:

Code:
id,Feldname1,Feldname2,etc.
1,Apfel,Grün,etc.
2,Banane,Gelb,etc.
Ich finde keinen passenden mysql-befehl dafür, der mir ein passendes Array erstellt.
Mein Code bisher sieht wiefolgt aus:

PHP:
$daten = mysql_fetch_array(mysql_query("SELECT * FROM tabelle"));

echo "<pre>";
print_r($daten);
echo "</pre>";
und das gibt mir folgendes aus:

Code:
Array
(
    [0] => 1
    [id] => 1
    [1] => Apfel
    [Feld2] => Apfel
    [2] => Grün
    [Feld3] => Grün
)
Kann mir da irgendjemand helfen und evtl. den richtigen Befehl oder Code posten? Wäre wirklich cool.

MFG Pre
 
Moin,

hole die Ergebnisse per mysql_fetch_assoc() , dann kannst du vor der Ausgabe der Daten die Feldnamen per array_keys() aus einem der Ergebnis-Datensätze ermitteln und ausgeben.
 
Tach, versuchs mal damit:
PHP:
$db = new mysqli("localhost", "mysqluser", "mysqlpassword", "database");
$result = $db->query("SELECT * FROM tabelle");

$tmp = tmpfile();
while ($row = $result->fetch_assoc()) {
if (ftell($tmp) == 0) {
  fwrite($tmp, b"\xEF\xBB\xBF"); //write BOM 
  fputcsv($tmp, array_flip($row)); // write table header
}
fputcsv($tmp, $row);
}

rewind($tmp);
echo stream_get_contents($tmp);

fclose($tmp);

So bekommst du ne korrekte CSV-Ausgabe. Bin übrigens offen für Verbesserungen!

Viele Grüße
 
Zuletzt bearbeitet:
Ok danke für die schnelle Antwort. Ich werd es versuchen und mich nochmal melden ob ichs hinbekommen hab :)


Edit: Oh danke Bullja.
Werd ich mal testen :)
 
Zuletzt bearbeitet:
Also bei dem Script funktioniert iwie nix O_o weder ein fehler noch eine Datei die er schreibt. :/


Ich versuchs mal mit dem mysql_fetch_assoc()
 
Ich nochmal.

Also mit dem mysql_fetch_assoc() bin ich jetzt soweit, dass ich Feldname und die 1. Zeile raus bekomm aber keine weiteren Zeilen. Irgendwie steh ich gerade aufm Schlauch... So ne Simple Sache bekomm ich nicht hin :( -.- Ich glaub ich mach erstmal ne Pause danach klappts vielleicht wieder mit dem Gehirn :-)
 
So sollte es gehen:
PHP:
$sql=mysql_query("SELECT * FROM tabelle");
$out='';
while($daten = mysql_fetch_assoc($sql))
{
  if(empty($out))$out.=implode(',',array_keys($daten)).'<br/>';
  $out.=implode(',',$daten).'<br/>';
}
echo $out;
 
Zurück