Seite 1 von 1
mysql-abfrage -> html table
Verfasst: 13.01.2006, 18:40
von nerd
hallo;
kämpfe hier gerade mit einem cms welches angepasst werden muss ("nur noch 2 spalten mehr in die db und anzeigen lassen, dann passt es...").
also es geht darum das ich eine abfrage habe, und deren inhalt nun angezeigt werden soll. bevor ich nochmal ewig lang den code zusammensuche (wird aus mind. 3 includes zusammengesetzt, geht noch diverse abfragen durch um die settings für die darstellung einzulesen usw. - und ich dachte schon mein code wäre nicht besonders performant...).
ich glaub es ist praktischer wenn ich das ganze neu schreibe. hat zufällig jemand eine funktion die aus einem sql-string eine tabelle zaubert? irgendwie komme ich nicht dahinter wie ich aus dem recordset die spaltentitel auslesen kann...
mysql-abfrage -> html table
Verfasst: 13.01.2006, 22:40
von Cole
Verstehe ich dich richtig und du willst nicht einfach nur das Ergebnis einer SQL-Abfrage
in Form einer Tabelle ausgeben sondern auch die Spaltentitel der SQL-Tabelle automatisch
als Spaltentitel der HTML-Tabelle?
In dem Fall könntest du das Ergebnis des Query ja per mysql_fetch_array()
in einen Array umwandeln und die Keys des Arrays wären dann die
Spaltentitel. Fertiges Script hab ich dafür grad nicht auf Lager, aber mit
einem bisschen Hilfe von php.net sollte das eigentlich kein Problem sein
Wobei man die Spaltentitel in der DB ja eher selten so benennt wie man sie
nachher auch ausgeben will, wäre also imho viel einfacher die erst manuell
auszugeben und dann nur noch die Inhalte.
Verfasst: 16.01.2006, 00:42
von nerd
falls jemand dafür verwendung hat, wars nett mich anzuschreiben und ihr platziert dann einen link für mich - danke!
Code: Alles auswählen
function hyperlink($text) {
$text = ereg_replace("[a-zA-Z]+://([-]*[.]?[a-zA-Z0-9_/-?&%])*", "<a href=\"\\0\">\\0</a>", $text);
$text = ereg_replace("(^| )(www([-]*[.]?[a-zA-Z0-9_/-?&%])*)", "\\1<a href=\"http://\\2\">\\2</a>", $text);
return $text;
}
function sql2table($sql) {
global $db;
$out = "";
$th = "";
$th = "";
$thset=0;
$erg = $db->query($sql);
while ($res = $db->getdata($erg)) {
$td .= "<tr>"."\n";
foreach($res as $key => $value) {
if($thset==0) {
$th .= '<td class="productListing-heading">'.$key.'</td>'."\n";
}
$td .='<td class="productListing-data">'.$value.'</td>'."\n";
}
$td .= "</tr>"."\n";
$thset=1;
}
$th = "<tr>".$th."</tr>"."\n";
$out = '<table class="productListing" width="100%">'.$th.$td.'</table>'."\n";
$out = hyperlink($out);
return $out;
}
//beispiel:
$db = new database();
$sql = "SELECT artikel_name AS Name, artikel_preis as Einzelpreis FROM tbl_artikel ";
echo sql2table($sql);
statt auf $db zuzugreifen einfach auf eurer eigene db-resource zugreifen; oder schreibt mich an und ich schick euch den rest.
falls jemand verbesserungsvorschläge hat: immer her damit, bin ja lernfähig
