Suchfunktion problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Suchfunktion problem

    hallo leute !

    hab eine tabelle in der sind kurse eingetragen! tabelle hatte diese felder!

    v_id
    k_id
    d_id
    o_id
    v_beginn
    v_ende
    v_eintrag
    v_bemerkung

    jetzt hab ich eine php seite (Quelltext siehe unten) in der sind drei drop down menus und der submit button eben! suchen kann man nach dem kursnamen der als value eine zahl hat in der db und das ist das feld k_id, nach dem ort der auch nur als zahl existiert und in der db in dem feld o_id stehtk, und nach dem anfangsdatum (format in der db 2003-08-22) bessergesagt nur nach dem monat das reicht! wenn eins der drop down felder auf bitte auswählen stehen bleibt soll das nicht berücksichtig werden!

    datei mit den suchoptionen
    PHP-Code:

    <?

    require_once("../conn.php");
       
    $dbh = verbindung(); 
    ?>

    <form action="suchergebnis.php" method="post" name="formular"> 
    <div align="center"> 
    <table width='700px' border='0'> 
      <tr> 
        <td><div align='center'><select name="data[o_id]"> 
              <option value='0' selected>Bitte wählen</option> 
              <? 
                if (mysql_link){ 
                $result = mysql_query("select o_id, o_name from ort order by o_name") or die ("Datenbankfehler versuchen Sie es später wieder"); 
                while ($row= mysql_fetch_array($result)) 
                { 
                echo "<OPTION VALUE=\"".$row["o_id"]."\">".$row["o_name"]; 
                } 
                } 
                ?> 
            </select></div></td> 
        
       <td><div align='center'><select name='data[v_beginn]'> 
              <option value='%'>Bitte wählen</option> 
              <option value='2003-01-%'>Januar</option> 
              <option value='2003-02-%'>Februar</option> 
              <option value='2003-03-%'>März</option> 
              <option value='2003-04-%'>April</option> 
              <option value='2003-05-%'>Mai</option> 
              <option value='2003-06-%'>Juni</option> 
              <option value='2003-07-%'>Juli</option> 
              <option value='2003-08-%'>August</option> 
              <option value='2003-09-%'>September</option> 
              <option value='2003-10-%'>Oktober</option> 
              <option value='2003-11-%'>November</option> 
              <option value='2003-12-%'>Dezember</option> 
            </select></div></td> 
            
       <td><div align='left'><select name='data[k_id]'> 
              <option value='0' selected>Bitte wählen</option> 
    <?            if (mysql_link){ 
                $result = mysql_query("select k_id, k_name from kurs order by k_name") or die ("Datenbankfehler versuchen Sie es später wieder"); 
                while ($row= mysql_fetch_array($result)) 
                { 
                echo "<OPTION VALUE=\"".$row["k_id"]."\">".$row["k_name"]; 
                } 
                } 
                ?> 
            </select> </div></td> 
      </tr> 
      
      <tr> 
      <td colspan=3>&nbsp;</td> 
      </td> 
      
      </tr> 
      
      <tr> 
      <td colspan=3 align='center'><input type="image" src="images/kurs_suchen.gif"></td> 
      
      </tr> 
    </table> 
    </div> 
    </form>
    und dann noch die datei die die suchergebnisse anzeigen soll!

    PHP-Code:

    <?
    require_once("../conn.php");
    $dbh = verbindung(); 
    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <html>
    <head>
        <title>Unbenannt</title>
    </head>

    <body>

    <table width="800px" border="0" align="center">
    <tr> 
        <td>&nbsp;</td>
    </tr>

    <tr> 
        <td colspan='3'><hr align='center' width='100%' size='1' noshade></td>
      </tr>

    <?

    $sql_criteria=array(); 
    foreach ($_POST["data"] as $k=>$f) { 
        if ($f) 
            $sql_criteria[]="(".$k." LIKE '".$f."')"; 
        } 
    $where=implode(" AND ",$sql_criteria); 
    $sql="SELECT * FROM veranstaltung WHERE $where"; 
    $result=mysql_query($sql) or die(mysql_error());
    //$row=mysql_fetch_array($result);
    print "$sql <br><br>";

    while ($row=mysql_fetch_array($result)) 
    {
                $v_id = $row["v_id"];
                $k_id = $row["k_id"];
                $o_id = $row["o_id"];
                $beginn = $row["v_beginn"];
                $ende = $row["v_ende"];    
                
                $sql2="select * from ort where o_id='$o_id'";
                    $result=mysql_query($sql2);# or die(mysql_error());
                    $row=mysql_fetch_array($result);
                    $ort = $row["o_name"];
                
                $sql3="select * from kurs where k_id='$k_id'";
                    $result=mysql_query($sql3);# or die(mysql_error());
                    $row=mysql_fetch_array($result);
                    $kursthema = $row["k_name"];
                
                print" <tr> 
        <td width='82%'><div align='left' class='textfett'>$kursthema vom $beginn bis $ende in $ort</div></td>
        <td width='4%'>&nbsp;</td>
        <td width='14%'> <a href='kurs_details.php?v_id=$v_id' target='main'><img src='images/details.gif' width='100' height='22' border='0'></a></td>
      </tr>
      <tr> 
        <td colspan='3'><hr align='center' width='100%' size='1' noshade></td>
      </tr>";

    }


    ?>

    </table>

    </body>
    </html>
    bekomme aber immer nur ein ergebniss obwohl ich genau weiss das mehrere rauskommen müssten! hoffe es kann mir jemand zur hand gehen!

    greetz fraylman

  • #2
    1. *VERSCHIEB* nach sql

    2. lasse dir mal $sql ausgeben

    3. teste sql im phpmyadmin
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar

    Lädt...
    X