2017-08-10 4 views
0

Ich schrieb diesen Code erstellen:Wie Suchfunktion in PHP/MySQL

<div class="container mx-auto"> 
    <!--Add class table-responsive for responsive table --> 
    <div class="row"> 
     <div class="col-md-6"> 
      <form method="post"> 
      <div class="input-group"> 
       <input size='14' type="text" class="form-control" placeholder="Search for..." name="searchValue"> 
       <span class="input-group-btn"> 
        <button class="btn btn-secondary" name='search' type="submit"><i class="fa fa-search"></i></button> 
       </span> 
      </div> 
      </form> 
     </div> 
    </div> 

    <table class="table mx-auto" id="'table"> 
     <thead> 
     <tr> 
      <th>Name</th> 
      <th>Surname</th> 
      <th>Email</th> 
      <th>Phone</th> 
      <th>Company</th> 
      <th>More</th> 

     </tr> 
     </thead> 
     <tbody> 
     <?php 
     $pagination = new Pagination(7); 

     $page_max = $pagination->getPageMax(); 



     $start = $pagination->getStart(); 

     if(!isset($_POST['search'])) { 
      $numberOfPages = $pagination->numberOfPages($database->getData("SELECT count(id) FROM customers")); 
      $customers = $database->getDataAsArray("SELECT * FROM customers LIMIT $start, $page_max"); 
     } 
     else{ 
      $searchValue = '%'. $_POST['searchValue'] . '%'; 
      $numberOfPages = $pagination->numberOfPages($database->getData("SELECT count(id) FROM customers WHERE name LIKE '$searchValue' ")); 
      $customers = $database->getDataAsArray("SELECT * FROM customers WHERE name LIKE '$searchValue' LIMIT $start, $page_max"); 
     } 


     foreach($customers as $customer){ 
      $name = $customer ['name']; 
      $surname = $customer['surname']; 
      $email = $customer['email']; 
      $phone = $customer['phone']; 
      $company = $customer['company']; 
      $id = $customer['id']; 
      echo "<tr> 
        <td>$name</td> 
        <td>$surname</td> 
        <td>$email</td> 
        <td>$phone</td> 
        <td>$company</td> 
        <td><a href='customerInfo.php?id=$id' class='btn btn-sm btn-info'><i class='fa fa-info'></i></a></td> 



        </tr>"; 
     } 
     ?> 
</tbody> 
</table> 
    <ul class="pagination"> 
     <?php 

     echo $pagination->previous($numberOfPages); 


     for($i = 0; $i < $numberOfPages; $i++){ 
      echo '<li class="page-item"><a class="page-link" href="?page='. $i . '">'. $i. '</a></li>'; 
     } 

     echo $pagination->next($numberOfPages); 
     ?> 

    </ul> 
</div> 

Ich möchte in meiner Tabelle suchen, funktioniert dies aber so weit in Ordnung, wenn ich auf A zum Beispiel zu suchen und ich meine Paginierung klicken Seite 1 Es baut die Seite mit allen Te Records aus der Datenbank neu auf.

Ich habe versucht, einen Parameter der URL auf Knopfdruck hinzuzufügen, aber beim Erstellen dieser Schaltfläche mit Link ist der searchValue immer noch null.

Diese Frage bezieht sich nicht auf meine SQL-Abfrage. Es geht um die Suche mit Paginierung

Konnte mir jemand helfen, dies zu beheben?

+0

Sie müssen AJAX verwenden, damit die Seite nicht aktualisiert wird. Dafür gibt es eine Menge Tutorials. Aber was passiert, ist, dass Ihre Seite vollständig neu geladen wird und das Skript von Grund auf neu erstellt wird. – Difster

+1

'$ searchValue' muss in Ihrer SQL-Zeichenfolge oder noch besser in einer vorbereiteten Anweisung angegeben werden. Es sollte auch einige Platzhalterzeichen enthalten, um mit 'LIKE' nützlich zu sein. –

+0

Entschuldigung, ich bin mit dieser Doppelwahl gesprungen und habe sie zurückgezogen. Ich glaube jedoch, dass mein vorheriger Kommentar immer noch etwas ist, was Sie ansprechen sollten, unabhängig davon, ob es das Problem verursacht, um das Sie hier bitten. –

Antwort

-1

Verwenden Sie die $ _GET-Methode. Oder Ajax.