Hallo,
eine Datenbankabfrage in index.php liefert ein Ergebnis anhand
von:
$Result = mysql_query("SELECT EMail FROM tabelle WHERE Email
LIKE ‚%$Email%‘ AND Name LIKE ‚%$Name%‘…
wobei $Email u. $Name von einem HTML-Formular übergeben
wurden. Bei erneutem Aufruf der gesamten Seite wird $Result
neu berechnet, allerdings wurden die Variablen $Email und
$Name nicht gespeichert, sodaß alle Datensätze angezeigt
werden.
nimm bitte in Zukunft nur Variablen und Datenbankspalten mit kleinbuchstaben. Ich verweise mal auf Dein Query. Einmal EMail, das anderemal Email. mysql ist da vielleicht grosszügig - php aber nicht.
Eine Lösung ist sicherlich, die Variablen bei erneutem Aufruf
der Seite zu übergeben (index.php?email=tzt&name=…). Nun
möchte ich aber die Auswahlkriterien (WHERE) um weitere
Parameter, die über ein HTML-Formular abgefragt werden,
ausbauen. Daher würde ich alle Variablen gerne in einem Array
speichern, das sich allerdings nicht bei erneutem Aufruf von
index.php übergeben lässt (index.php?array=$array…),
zumindest nach meinem Kenntnisstand.
das ist auch mein Kenntnisstand. Hab das aber auch noch nie weiter recherchiert bzw gebraucht. Wenn ich die Variablen brauche stehen mir mehrere Möglichkeiten zur Verfügung…
Die erste: In Session-Variablen speichern falls der Server das zulässt (Nachteil: Abhängigkeit vom Server)
Die zweite: In Cookies speichern, falls der Client das zulässt (Nachteil: Abhängigkeit vom Client, nicht beliebige Mengen nutzbar)
Die dritte: Die Ergebnisse in eine Datei oder in einer Datenbank zwischenspeichern (Nachteil: Datenbank oder Datei muss angelegt/definiert werden und erlaubt dann evtl nicht alle möglichen Eingabeformate oder wandelt Eingaben um (zum Beispiel ))
Die vierte: Die Variablen erneut übergeben. (Nachteil: Muss an alle relevanten Links angehängt werden, erlaubt auch nicht unbegrenzte Übergaben (wenn GET verwendet wird))
Die letzte ist vom Code her vmtl die schwierigste, aber vmtl trotzdem die beste…
Ein Beispiel aus einem meiner Scripte dazu:
$sorter = "$PHP\_SELF?layout=print";
if (count($\_POST)\>0) while (list($key,$val)=each($\_POST))
{
if ($key != "layout") $sorter .= "&$key=$val";
}
else while (list($key,$val)=each($\_GET))
{
if ($key != "layout") $sorter .= "&$key=$val";
}
damit erstelle ich einen String den ich einfach an meinen Link dranhänge und an dem ich nur die Variable layout=print hinzufüge…
HTH
Munich