Autor |
Nachricht |
JaDeKi
Threadersteller
Dabei seit: 08.09.2010
Ort: -
Alter: 35
Geschlecht:
|
Verfasst Mi 03.11.2010 12:46
Titel Dynamische MySql daten abfrage |
|
|
Hallo zusammen,
ich habe ein kleines Problem. Vor ab es geht nicht darum wie ich eine Verbindung zu MySql via PHP herstelle oder präzise abfragen von Daten mache.
Wobei letzteres mit ins Thema gehört.
Ich habe ein Daten Array das ich aus der Datenbank heraus lesen lasse per while schleife. Das ist alles schön und gut.
Es kann jetzt daran liegen, dass ich mich gedanklich irgendwie verirrt habe
Beispiel der Ausgabe:
[NAME ] [KATEGORIE]
[Sven] [Groß]
[Dirkt] [klein]
[bernd] [Mittel]
Ich wollte es so machen das wenn man als Beispiel, auf "klein" Klickt per <a herf=""> oder was man da noch benutzen kann. Die Seite neu lädt und nur alle Datensätze "klein" heraus gegeben werden.
Ich weiß, dass dies mit einer neuen php Seite Funktioniert wo die Datenabfrage dementsprechend ist.
Beispiel
Anfrage 1.php
SELECT Name,Kategorie WHERE kategorie ="$Variabel"
Anfrage 2.php
SELECT Name,Kategorie WHERE Name ="$Variabel2"
Doch wird das ganze sehr umfangreich wenn es nicht nur um 2 Spaltenhandelt. Gibt es dafür nicht auch irgendeine andere Möglichkeit. Mit einer Funktion oder irgendetwas in der art was das ganze vielleicht in eine Datei zusammen fassen kann.
Klingt wahrscheinlich jetzt etwas konfus, vielleicht hat jemand ein Beispiel oder einen Rat.
Danke im Vorraus
*Sorry für die Rechtschreibfehler*
|
|
|
|
|
fyll
Dabei seit: 20.09.2003
Ort: Augsburg
Alter: 39
Geschlecht:
|
Verfasst Mi 03.11.2010 12:52
Titel Re: Dynamische MySql daten abfrage |
|
|
JaDeKi hat geschrieben: |
Anfrage 1.php
SELECT Name,Kategorie WHERE kategorie ="$Variabel"
Anfrage 2.php
SELECT Name,Kategorie WHERE Name ="$Variabel2"
|
Was hindert dich daran, etwas wie Code: | if(isset($_GET['kategorie'])).... | abzufragen, und somit den SQL-String dynamisch zu generieren:
Code: | $sql_string.= 'WHERE kategorie ="'.mysql_real_escape_string($Variabel).'"'; .... | ?
|
|
|
|
|
Anzeige
|
|
|
escaPe
Dabei seit: 10.09.2007
Ort: <? include("home.htm") ?>
Alter: 112
Geschlecht:
|
Verfasst Mi 03.11.2010 13:35
Titel
|
|
|
meine variante:
<a href='anfrage.php?wert=$inhalt_vom_feld_kategorie&wert2=$sonst_ein_inhalt'>
SELECT * FROM tabelle WHERE '$wert' LIKE '$wert2'
du verweist per Link auf die aktuelle Seite jedoch wird nach dem Klick nach einem anderen Wert sortiert.
musst natürlich auch beim ersten Besuch einen standart Wert vor der eigentlichen Abfrage reinschreiben.
if ($wert=="") {$wert = whatever}
Diese variante niemals in verknüpfung mit login password oder änlichen sensiblen Daten nutzen.
Durch eine einfachen URL ersatz könnte man sonst alle Daten ausspähen.
Zuletzt bearbeitet von escaPe am Mi 03.11.2010 13:37, insgesamt 1-mal bearbeitet
|
|
|
|
|
fyll
Dabei seit: 20.09.2003
Ort: Augsburg
Alter: 39
Geschlecht:
|
Verfasst Mi 03.11.2010 13:52
Titel
|
|
|
escaPe hat geschrieben: | ...
Diese variante niemals in verknüpfung mit login password oder änlichen sensiblen Daten nutzen.
Durch eine einfachen URL ersatz könnte man sonst alle Daten ausspähen. |
.. oder eher generell nie.
Du öffnest damit Tür und Tor für alle neugierigen Leute.
Ersetz ich zB beide deiner get-variablen durch ne 1, hab ich _alle_ Werte der Tabelle.
Solche Möglichkeiten sollte man dem User generell niemals bieten.
Sowas wie include $_GET['bla'].".php" bekommt man auch ab und zu zu sehen - das geht gar nich ^^
Schreib da lieber 20 Zeilen Code mehr und weiß genau, dass der User nur da ist, wo er sein soll.
btw - warum benutzt du "like"? Das ist ur langsam und an der Stelle ja völlig unnötig.
Hier mal bisschen was zu lesen.
|
|
|
|
|
escaPe
Dabei seit: 10.09.2007
Ort: <? include("home.htm") ?>
Alter: 112
Geschlecht:
|
Verfasst Mi 03.11.2010 14:18
Titel
|
|
|
fyll hat geschrieben: | escaPe hat geschrieben: | ...
Diese variante niemals in verknüpfung mit login password oder änlichen sensiblen Daten nutzen.
Durch eine einfachen URL ersatz könnte man sonst alle Daten ausspähen. |
.. oder eher generell nie.
Du öffnest damit Tür und Tor für alle neugierigen Leute.
Ersetz ich zB beide deiner get-variablen durch ne 1, hab ich _alle_ Werte der Tabelle.
Solche Möglichkeiten sollte man dem User generell niemals bieten.
Sowas wie include $_GET['bla'].".php" bekommt man auch ab und zu zu sehen - das geht gar nich ^^
Schreib da lieber 20 Zeilen Code mehr und weiß genau, dass der User nur da ist, wo er sein soll.
btw - warum benutzt du "like"? Das ist ur langsam und an der Stelle ja völlig unnötig.
Hier mal bisschen was zu lesen. |
Ich hab einfach den Wert = Wert auf ein maximum von 8 Zeichen begrenzt wenn größer = Abfrage erst garnicht starten.
Ist aber wie du schon erwähnt hast nur eine mangelhafte Lösung.
Werde mich mal mit dem Thema befassen. Danke
|
|
|
|
|
JaDeKi
Threadersteller
Dabei seit: 08.09.2010
Ort: -
Alter: 35
Geschlecht:
|
Verfasst Mi 03.11.2010 16:46
Titel
|
|
|
Danke für die Antworten die erste Variante ist genau was mir gedanklich fehlte, doch stellt sich mir eine neue Frage Isset stellt doch nur unwahr oder wahr fest.
und mit einem <a href=""> kann man ja nicht übermitteln was man gerade angeklickt hat Sprich das bedeutet das man mehrere diese Formulare erstellen müsste.
|
|
|
|
|
fyll
Dabei seit: 20.09.2003
Ort: Augsburg
Alter: 39
Geschlecht:
|
Verfasst Mi 03.11.2010 16:54
Titel
|
|
|
mh?
der Link sieht dann doch so aus:
Code: | <a href="./?kategorie=123&klein=1 |
dann reichts doch zu fragen, ob die Variable "klein" deklariert ist, oder nicht.
Alternativ kannst auch
Code: | <a href="./?kategorie=123&gr=klein
<a href="./?kategorie=123&gr=gross |
machen und dann so abfragen:
Code: | if(isset($_GET['gr']))
{
if($_GET['gr']) == "klein")
{
$sql.......
elseif ..... |
|
|
|
|
|
JaDeKi
Threadersteller
Dabei seit: 08.09.2010
Ort: -
Alter: 35
Geschlecht:
|
Verfasst Mi 03.11.2010 17:02
Titel
|
|
|
Achso gut, werde das gleich mal umsetzen und dann Feedback geben.
|
|
|
|
|
|
|
|
Ähnliche Themen |
(php-mysql) übergabe von formulardaten und abfrage m. mysql
PHP - dynamische ArrayNamen in switch abfrage
MySql abfrage
[php+mysql] abfrage von x bis y
MySQL Abfrage
[php / mysql] Mysql Daten in php als Link ausgeben
|
|