2015-03-27 2 views
-1

Я некоторое время пытался изо всех сил пытаться выяснить, как связать следующий запрос с формой поиска HTML.Поиск базы данных MySQL через HTML-форму через PHP

Запрос:

<?php 
    include_once("mysqli_connection.php"); 

    // startpage 
    $page = 0; 
    //items pr page 
    $per_page= 8; 
    //smileyscore 
    $smiley_score=''; 

    // perform database query 
    $query = "SELECT * "; 
    $query .="FROM smile AS a, smiley_detail AS b "; 
    $query .= "WHERE a.smiley_id = b.smiley_id AND b.smiley >= 1 "; 
    $query .= "ORDER BY b.date "; 
    $query .= "LIMIT ". $page.', '. $per_page . ";"; 

    $result = mysqli_query($connnetion, $query); 

    $row = mysqli_fetch_row($result); 

    $rows = $row[0]; 

    if (!$result){ 
     die("database query failed."); 
    } 
?> 

Форма:

<div class="row"> 
      <div class="col-xs-12"> 
       <form class="menu" action="<?=$PHP_SELF?>" id="searchfor" method="post"> 
       <select type="value" name="smiley_score" placeholder="s"> 
        <option value="0">Alle stikprøver (0)</option> 
        <option value="1">Ingen anmærkninger (1)</option> 
        <option value="2">Indskærpelse (2)</option> 
        <option value="3">Påbud eller forbud (3)</option> 
        <option value="4">Bødeforlæg, politianmeldelse, autorisation eller registrering frataget (4)</option> 
       </select> 

       <select type="text" name="city"> 
        <option value="">By</option> 
        <option value="København">København</option> 
        <option value="Århus">Århus</option> 
        <option value="Odense">Odense</option> 
        <option value="Alle de andre">Alle de andre</option> 
       </select> 

       <select type="value" name="year"> 
        <option value="">År</option> 
        <option value="2001">2001</option> 
        <option value="2002">2002</option> 
        <option value="2003">2003</option> 
        <option value="2004">2004</option> 
        <option value="2005">2005</option> 
        <option value="2006">2006</option> 
        <option value="2007">2007</option> 
        <option value="2008">2008</option> 
        <option value="2009">2009</option> 
        <option value="2010">2010</option> 
        <option value="2011">2011</option> 
        <option value="2012">2012</option> 
        <option value="2013">2013</option> 
        <option value="2014">2014</option> 
        <option value="2015">2015</option> 
       </select> 

       <input type="text" name="searchcriteria" class="form-control" placeholder="Indtast søgekriterier"> </input> 
       <button class="btn" id="submit_button" type="submit" name="submit" value="Submit"> Søg</button> 
      </form> 

     </div> 
    </div> 

Echo:

<div class="container"> 
     <div class="row"> 
      <?php 
       while($row = mysqli_fetch_assoc($result)){ 
        // output data from each row 
        echo '<div class="col-md-12">'; 
         echo '<div class="overskrift">'; 
          echo '<h3>'; 
           echo $row["organisation"] . "<br/>"; 
          echo '</h3>'; 
          echo 'Branche: '.$row["type"] . " - "; 
          echo 'Dato: '. $row["date"] . " <br /> "; 
         echo '</div >'; 
         echo '<p class="adress">';      
          echo $row["adresse1"] . "<br /> "; 
          echo $row["zip"] . " "; 
          echo $row["postby"] . " "; 
          echo '<img class="score" src="img/'.$row["smiley"] .'.gif">'; 
         echo '</p> '; 
         echo '<div class="textfield" >'; 
          echo $row["text"] . "<br />"; 
         echo '</div>'; 
        echo '</div>'; 
       } 
       // release data 
       mysqli_free_result($result);   
      ?>  
     </div> 
+0

что вы пытаетесь сделать точно? – Choxx

+0

где вы получили код? – HTTP

+0

Можете ли вы уточнить, что не работает? Где вы застреваете? – halfer

ответ

0

Есть несколько способов, вы могли бы сделать это. На странице, содержащей форму, может быть ответ на псевдоструктуру, подобную следующей.

<html> 
    <head><title>Searches and results....</title><head> 
    <body> 
    <?php 
     if($_SERVER['REQUEST_METHOD']=='GET'){ 
      /* Display the form here */ 
     } elseif($_SERVER['REQUEST_METHOD']=='POST') { 
      /* Construct and run the sql query */ 

      /* Display the results here */ 

     } else { 
      /* Wrong method - warn user or redirect or whatever */ 
     } 
    ?> 
    </body> 
</html> 
0

Вы должны обрабатывать данные, вы можете получить данные по занесена форме путем добавления логики, которая использует $ _POST ассоциативный массив в файл $ PHP_SELF, имя элемента формы является то, что используется в массиве.

Например, если у вас есть элемент с именем data, PHP для доступа к нему будет $ _POST ['data'].

0

Составьте условие в виде массива. Измените метод как метод get. Настроить ваш запрос следующим образом

$sql = mysql_query("SELECT * FROM smile WHERE smiley_id LIKE '%$_GET[term]%' LIMIT $page,$_GET[results]"); 
+0

Спасибо, ты чемпион! абсолютно решена моя проблема. – Rohleder