![]() |
[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] ![]() ![]() |
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 ![]() ![]() Ein 3faches Wuppdi auf eine ![]() |
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
|
Re: [PHP / MySQL] Abfrageeditor basteln
wo die jetzt genau herkommen, kann ich auch nicht sagen ... eventuell ja vom Browser
ich mach diese immer so weg
Code:
stripslashes($_POST['abfrage'])
|
Re: [PHP / MySQL] Abfrageeditor basteln
![]() Kannste Abfragen und dann ggf. die slashes mit addslahes / stripslashes wegmachen oder dazupacken (je nach Bedarf). |
Re: [PHP / MySQL] Abfrageeditor basteln
Zitat:
Zitat:
|
Re: [PHP / MySQL] Abfrageeditor basteln
Das heißt, dass es ab dann (PHP 6) nicht mehr gequoted wird. Solange aber noch keiner PHP 5.3 oder PHP 6 benutzt sollte man auch weiterhin die genannten Funktionen verwenden. In meinem Framework prüfe ich, ob magic_quotec_gpc oder magic_quotes_runtime aktiviert sind - wenn ja wird das Script abgebrochen, da das automatische maskieren, automatische entmaskieren und anschließend das manuelle (in meinem Code) wieder maskieren zu viel Rechenaufwand kostet. Also php.ini verändern. ;-)
Liebe Grüße, Valle |
Re: [PHP / MySQL] Abfrageeditor basteln
Zitat:
so, jetzt muß ich nur noch rausfinden, wie/ob man in PHP auch parameter als VAR-Parameter übergeben kann, um da etwas speichersparender arbeiten zu können :stupid: |
Re: [PHP / MySQL] Abfrageeditor basteln
Zitat:
![]()
Code:
// remove quotes added by php
if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) { PMA_arrayWalkRecursive($_GET, 'stripslashes', true); PMA_arrayWalkRecursive($_POST, 'stripslashes', true); PMA_arrayWalkRecursive($_COOKIE, 'stripslashes', true); PMA_arrayWalkRecursive($_REQUEST, 'stripslashes', true); } Zitat:
![]() Liebe Grüße, Valle |
Re: [PHP / MySQL] Abfrageeditor basteln
so, ich hab jetzt diese Funktion und sie scheint zu funktionieren :)
Code:
function RemoveMagicQuotes(&$Array) {
if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) foreach ($Array as $Key => $Value) if (is_string($Value)) { $Array[$Key] = stripslashes($Value); } elseif (is_array($Value)) RemoveMagicQuotes($Array[$Key]); } RemoveMagicQuotes($_GET); RemoveMagicQuotes($_POST); RemoveMagicQuotes($_COOKIE); RemoveMagicQuotes($_SERVER); Zitat:
hatte zwar 'ne ganze Weile im php.net rumgesucht, aber es nicht gefunden :cry: und nach VAR-Parameter braucht man nicht zu suchen ... da bin ich jedenfalls immer nur auf "variable Parameter" gekommen und das ist ja nun was ganz Anderes. |
Re: [PHP / MySQL] Abfrageeditor basteln
Zitat:
![]() Grüße Klaus |
Re: [PHP / MySQL] Abfrageeditor basteln
joar danke nochmal, aber hatte es ja nun schon gefunden ... bzw. Valle hatte es
Code:
.../a.php?Test=a'b
<?PHP
echo $_GET['Test'], ' '; function RemoveMagicQuotes(&$Array) { if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) foreach ($Array as $Key => $Value) if (is_string($Value)) { $Array[$Key] = stripslashes($Value); } elseif (is_array($Value)) RemoveMagicQuotes($Array[$Key]); } RemoveMagicQuotes($_GET); RemoveMagicQuotes($_POST); RemoveMagicQuotes($_COOKIE); RemoveMagicQuotes($_SERVER); echo $_GET['Test']; ?> Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz