[PHP / MySQL] Abfrageeditor basteln
Ich habe hier eine private Adressdatenbank. Da habe ich schon ein paar Abfragen erstellt, die über Links verfügbar sind. Jetzt wäre ich aber gerne noch etwas flexibel und würde gerne beliebige Abfragen formulieren können. Ich dachte da ein eine Eingabefeld für die Abfrage und an eine Schaltfläche zum Abschicken der Abfrage. Soweit kein Problem. Nur wie bekomme ich jetzt das Ergebnis der Abfrage gescheit formatiert ausgegeben? Ich kann ja keine Tabelle mit fest vorgegebenen Spalten, da die Spaltenanzahl ja nicht fest steht.
Wie löst man so ein Problem am besten? Eigentlich müsste ich ja nur wissen, welche Spalten in der Ergebnismenge enthalten sind. |
Re: [PHP / MySQL] Abfrageeditor basteln
Dann erstell doch einfach eine Tabelle mit dynamischer Spaltenanzahl?
je Eintrag/Row einen Block mit <tr> anfangen (am Ende natürlich mit </tr> wieder schließen) und dann einfach je Feld/Col einfach einen <td>...</td>-Eintrag dort rein :gruebel: [edit] Zitat:
[add] http://dev.mysql.com/doc/refman/5.1/de/describe.html http://dev.mysql.com/doc/refman/5.1/...w-columns.html |
Re: [PHP / MySQL] Abfrageeditor basteln
Zitat:
Zitat:
Zum Beispiel:
SQL-Code:
So, die Tabelle Adressen besteht natürlich aus wesentlich mehr Feldern, aber ich bräuchte jetzt nur eine Tabelle mit zwei Spalten. Stehen die betroffenen Spalten irgendwie in der Ergebnismenge drin?
SELECT name, vorname FROM adressen WHERE name='himitsu'
|
Re: [PHP / MySQL] Abfrageeditor basteln
Zitat:
|
Re: [PHP / MySQL] Abfrageeditor basteln
Zitat:
nja, wenn du z.B. über mysql_fetch_assoc eine Zeile ausließt, dann hast du doch im zurückgegebenen Array die Anzahl drinnen? = Anzahl der Felder im Array |
Re: [PHP / MySQL] Abfrageeditor basteln
Ah, danke, das wollte ich wissen. Nur leider scheint die verlinkte Seite nicht zu funktionieren, aber ich weiß ja jetzt wo nach ich suchen muss.
@himitsu: Bisher mache ich es so:
Code:
$query = "SELECT name, vorname, priv_gebdat FROM adressen WHERE (name <> '' OR vorname <> '') AND priv_gebdat <> '0000-00-00' ORDER BY priv_gebdat";
$resultset = mysql_query($query); echo "<tr><th>Name</th><th>Vorname</th><th>Geburtsdatum</th></th><th class=\"screenonly\">Aktionen</th></tr>\n"; while($row = mysql_fetch_object($resultset)) { echo "<tr> <td>".$row->name."</td> <td>".$row->vorname."</td> <td>".$row->priv_gebdat."</td> <td class=\"screenonly\">[url='./details.php?id=".$row->id."'][img]./images/view.jpg[/img][/url] [url='./form.php?id=".$row->id."'][img]./images/edit.jpg[/img][/url] [url='./delete.php?id=".$row->id."'][img]./images/delete.jpg[/img][/url] </td> </tr>"; } |
Re: [PHP / MySQL] Abfrageeditor basteln
Kommando zurück!
@chaosben: Das kann ich auch nicht brauchen:
Code:
Da muss ich ja sogar den Namen der Felder wissen, um an die Daten zu kommen. Aber gerade die weiß ich ja nicht, weil sie ja beliebig, in Abhängigkeit der Abfrage, sein können. Sie Beispiel oben.
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"]; echo $row["fullname"]; echo $row["userstatus"]; } |
Re: [PHP / MySQL] Abfrageeditor basteln
in kurz würde ich es wohl etwa so machen
Code:
und im Notfall könnte man aus dem ersten Datensatz noch die Feldnamen auslesen
while($row = mysql_fetch_assoc($resultset))
{ echo "<tr>"; foreach($row as $col) { echo "<td>".$col."</td> } echo "</tr>";
Code:
[add]
$b = true;
while($row = mysql_fetch_assoc($resultset)) { if ($b) { echo "<tr>"; foreach($row as $name => $value) { echo "<td>".$name."</td> } echo "</tr>"; $b = false; } echo "<tr>"; foreach($row as $col) { echo "<td>".$col."</td> } echo "</tr>"; bei mysql_fetch_object mußt du die Felder ja auch wissen und ob jetzt nun mysql_fetch_object mit $row->vorname oder mysql_fetch_assoc mit $row["vorname"], macht ja nun keinen großen unterschied. aber bei dem assoziativen Array kannst du ja Namen und Values auslesen (bei Object wüßte ich jetzt nicht, ob/wie das gehen könnte) |
Re: [PHP / MySQL] Abfrageeditor basteln
Zitat:
//edit: Noch schöner gehts natürlich mit einer Schleife von 0 bis mysql_num_fields - 1 und der Funktion mysql_field_name. Ein 3faches Wuppdi auf eine Referenz! :) |
Re: [PHP / MySQL] Abfrageeditor basteln
Ok, soweit funktioniert das. Nur wenn ich das Formular abschicke macht er mir so was:
Code:
also diese komischen Schrägstriche. Das führt natürlich zu einer ungültigen Abfrage. Gut, die bekomme ich mit str_replace weg, aber woher kommen die?
select name, vorname from adressen where name=\'puff\' order by name, vorname
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz