| Suchen | |
|
#1
|
|||
|
|||
|
ja guten morgen,
habe das gefühl, dass php nur komplizierter statt einfacher wird desto länger man damit arbeitet.... folgende frage: ich habe ein formular wo jemand einfach daten eintregen soll. z.b. grösse, alter geschlecht. in der action-seite werden die dinge dann genommen und in eine sql-abfrage gepackt. z.b.: select * from mensch where grösse = '$grösse' and geschlecht = '$geschlecht' and...... problem ist nun, dass jemand einen wert nicht angibt. also zb geschlecht weg lässt. bei meiner abfrage würde das heissen, dass er nach allen sucht wo kein geschlecht ist. select * from mensch where grösse = '$grösse' and geschlecht = '' and...... aber ich will in dem falle alle haben, also egal was für ein geschlecht. hoffe ihr versteht mein problem. und könnt mir helfen
|
|
#2
|
|||
|
|||
|
Hmm ... du könntest es zum Beispiel so machen :
Ich mach das immer so, dass ich ein bis 2 Felder mitgebe, die auf jeden Fall gefüllt sind. Kommt aber halt auch immer drauf an, wie umfangreich die DB/Tabelle ist ...
__________________
Greetings Infomatiker |
|
#3
|
|||
|
|||
|
na dat klingt nach einem sinnvollen lösungsansatz. habe dann zwar am ende evtl ein AND noch da stehen, aber das kann ich ja einfach lösen indem ich noch irgendeine sinnlose angabe hinten dran hänge. super, danke!
|
|
#4
|
|||
|
|||
|
"...indem ich noch irgendeine sinnlose angabe hinten dran hänge...."
Na, das ist dann aber nicht grade profesionell.... Ich würde es da lieber so machen: PHP Quellcode:
<?php
$bedingung=array(); $sql="select * from mensch"; if (!empty($grösse)) $bedingung[] = "grösse='$grösse'"; if (!empty($geschlecht)) $bedingung[] = "geschlecht='$geschlecht'"; if (!empty($alter)) $bedingung[] = "alter='$alter'"; if (count($bedingung)) { $where=implode(" and ",$bedingung); $sql .= " where " . $where; } echo $sql; ?>
__________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, dass er genug davon habe. René Descartes |
|
#5
|
|||
|
|||
|
Nuja .. du kannst das ja auch variieren .. und so sinnlos muss das zusätzliche Argument gar net sein, kommt ganz darauf an, was du alles in der Tabelle hast, und was sich lohnen könnte "auf jeden Fall" mit abzufragen.
PHP Quellcode:
![]() Edit : Das von Swiftnick ist natürlich die optimale Lösung ... cool .. wieder was gelernt! Diese empty()-Funktion kannte ich auch noch net! Man lernt halt nie aus ..
__________________
Greetings Infomatiker |
|
#6
|
|||
|
|||
|
swiftnick du hast ja recht. aber - ich muss eh noch die id´s von zwei verschiedenen tabellen am ende abgleich, von daher muss ich eine "sinnlose" abfrage dran hängen. dennoch, deine lösung ist optimal fürs nächste mal!
danke euch beiden zu so früher stunde |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| PHP Seite bleibt leer | Philosoph | PHP | 5 | 20.01.2007 14:02 |
| Seite bleibt weiß | djtorte | PHP | 6 | 18.01.2007 14:12 |
| $result bleibt leer? | hugo | Datenbanken | 8 | 05.12.2006 12:46 |
| session bleibt gültig? | coko-deluxe | PHP | 2 | 30.04.2004 00:49 |
| URL bleibt stehen | MorgothP | PHP | 1 | 06.07.2003 17:29 |