AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP / MySQL] Abfrageeditor basteln
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP / MySQL] Abfrageeditor basteln

Ein Thema von Luckie · begonnen am 14. Okt 2009 · letzter Beitrag vom 14. Okt 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

[PHP / MySQL] Abfrageeditor basteln

  Alt 14. Okt 2009, 10:30
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: [PHP / MySQL] Abfrageeditor basteln

  Alt 14. Okt 2009, 10:37
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

[edit]
Zitat:
Eigentlich müsste ich ja nur wissen, welche Spalten in der Ergebnismenge enthalten sind.
du kannst natürlich auch den Aufbau der Tabelle abfragen

[add]
http://dev.mysql.com/doc/refman/5.1/de/describe.html
http://dev.mysql.com/doc/refman/5.1/...w-columns.html
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: [PHP / MySQL] Abfrageeditor basteln

  Alt 14. Okt 2009, 11:00
Zitat von himitsu:
Dann erstell doch einfach eine Tabelle mit dynamischer Spaltenanzahl?
Das muss ich ja sowieso. Nur wie komme ich an die betroffenen Spalten dran?

Zitat:
[edit]
Zitat:
Eigentlich müsste ich ja nur wissen, welche Spalten in der Ergebnismenge enthalten sind.
du kannst natürlich auch den Aufbau der Tabelle abfragen
Was will ich mit dem Aufbau der Tabelle? Ich brauche die vom Query betroffenen Felder.

Zum Beispiel:
SELECT name, vorname FROM adressen WHERE name='himitsu' 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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

Re: [PHP / MySQL] Abfrageeditor basteln

  Alt 14. Okt 2009, 11:13
Zitat von Luckie:
Stehen die betroffenen Spalten irgendwie in der Ergebnismenge drin?
Ja, wenn du die Ergebnisse z.B. mit mysql_fetch_assoc liest, bekommst du eine assoziatives Array. Dann nur noch schnell die Feldnamen auslesen (foreach (array as $Spaltenname => $Wert)) und fertig.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

Re: [PHP / MySQL] Abfrageeditor basteln

  Alt 14. Okt 2009, 11:15
Zitat:
Ich brauche die vom Query betroffenen Felder.
ok

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
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: [PHP / MySQL] Abfrageeditor basteln

  Alt 14. Okt 2009, 11:18
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>";
               }
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: [PHP / MySQL] Abfrageeditor basteln

  Alt 14. Okt 2009, 11:25
Kommando zurück!

@chaosben: Das kann ich auch nicht brauchen:
Code:
while ($row = mysql_fetch_assoc($result)) {
    echo $row["userid"];
    echo $row["fullname"];
    echo $row["userstatus"];
}
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

Re: [PHP / MySQL] Abfrageeditor basteln

  Alt 14. Okt 2009, 11:26
in kurz würde ich es wohl etwa so machen
Code:
while($row = mysql_fetch_assoc($resultset))

  echo "<tr>";
  foreach($row as $col)
  { 
    echo "<td>".$col."</td>
  }
  echo "</tr>";
und im Notfall könnte man aus dem ersten Datensatz noch die Feldnamen auslesen
Code:
$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>";
[add]
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)
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#9

Re: [PHP / MySQL] Abfrageeditor basteln

  Alt 14. Okt 2009, 11:30
Zitat von himitsu:
und im Notfall könnte man aus dem ersten Datensatz noch die Feldnamen auslesen
Nicht nur im Notfall ... genau das ist der tiefere Sinn. (foreach-Anweisungen sind sowas schönes)

//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!
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: [PHP / MySQL] Abfrageeditor basteln

  Alt 14. Okt 2009, 12:25
Ok, soweit funktioniert das. Nur wenn ich das Formular abschicke macht er mir so was:
Code:
select name, vorname from adressen where name=\'puff\' order by name, vorname
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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 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