2 Formulare in einem Select?

Cluster

Mitglied
Hi zusammen,

also ich habe einmal ein Texteingabefeld und einmal ein Selectfeld das ich gerne mit einem Query dann aus der DB mittels Select auswerten lassen möchte, frage ist nun wie genau geht das?

Meine beiden Formulare schaun so aus:

PHP:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
    <select name="search1">
      <option>=</option>
      <option><</option>
      <option>></option>
    </select>
</form>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
<input type="text" id="search" name="search">
<input type="submit" name="suchen" value="suchen">
</form>

so werte ich einen Wert aus was an sich auch passt denke ich.
PHP:
$search=$_POST["search"];
$res = mysql_query("SELECT * FROM `db` WHERE `time` LIKE '%$search%'"); 
while($row = mysql_fetch_array($res))
{
....
}
und ich würde gerne das SELECT so gestalten das immer nach beiden Formulareingaben gesucht wird in Kombination:

Es geht darum das das Select Formular gleich/größer/kleiner beinhaltet und im 2. Feld eine Zahl eingegeben wird und am Ende ebend dann alle entsprechenden Suchergebnisse ausgespuckt werden.

Für jedes einzelne Formular würd ichs auch so hinbekommen leider nur nicht in Kombination.
 
Zuletzt bearbeitet:
Du möchtest ein Datum > oder < oder = einem bestimmten Wert prüfen oder ?
 
Zuletzt bearbeitet:
So wie du es jetzt darstellst, ist in dem eine Formular/der einen Seite lediglich die Auswahlliste in der gewählt werden kann ob gleich, kleiner oder größer.

In dem zweiten Formular/der zweiten Seite wird dann lediglich der Suchbegriff bzw. bei dir die Zeitangabe eingegeben.

Warum machst du das nicht einfach in ein und das selbe Formular, dann ist es einfacher.

Ansonsten musst du den ersten Wert im zweiten Formular aufnehmen (z.B. in ein verstecktes Feld) und beim Absenden mitgeben.

Gruß Thomas
 
Geht es denn so?
PHP:
$search=$_POST["search"];
$size=$_POST["size"];
$res = mysql_query("SELECT * FROM `db` WHERE `time` " . $size . $search);

Der Name ist doppelt ;)
<select name="size" name="search1">
 
Zuletzt bearbeitet:
Ich denke nicht (mein allererster Post war falsch, hab die größer kleiner gleich übersehen). Das Problem wird sein, dass du Strings nicht auf < oder > vergleichen kannst.

In diesem Fall wäre es sinnvoll vielleicht den Typ des Feldes "time" nicht auf Varchar oder Text sondern auf Datetime zu setzen.

Angenommen time wird in deiner Datenbank im Format Datum/Uhrzeit gespeichert (DATETIME: Den Typ DATETIME verwenden Sie, wenn Sie Werte benötigen, die sowohl ein Datum als auch eine Uhrzeit enthalten. MySQL ruft DATETIME-Werte im Format 'YYYY-MM-DD HH:MM:SS' ab und zeigt sie auch so an. Der unterstützte Bereich liegt zwischen '1000-01-01 00:00:00' und '9999-12-31 23:59:59'.)

Der Wert deiner Textbox hat im $_POST['search'] z.B. den Wert "20.15". Wie erwähnt lassen sich Strings nicht auf </> vergleichen, du musst dir also zuerst von deiner Textbox das Timeformat erzeugen.
PHP:
$time = substr($_POST['search'],0,1).":".substr($_POST['search'],3,4).":00";
$date = date("Y-m-d",time()); //in diesem Fall wäre es heute

Jetzt hast du Datum und Uhrzeit. Nun kannst du mit deinem SQL-Query arbeiten

PHP:
$result = mysql_query("SELECT * FROM `db` WHERE `time` " .$_POST['size']."'".$date." ".$time."'");
 
Zuletzt bearbeitet:
Habs:

PHP:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
    <select name="size">
      <option>=</option>
      <option><</option>
      <option>></option>
    </select>
<input type="text" id="search" name="search">
<input type="submit" name="runtimesuchen" value="Runtime suchen">
</form>

und dann select so:

PHP:
$search=$_POST["search"];
$size=$_POST["size"];
$res = mysql_query("SELECT * FROM `db_video` WHERE `minutes` " . $size . $search);

meist ists doch der Wald vor lauter bäumen usw :D

Danke
 
Zuletzt bearbeitet:
Zurück