2015-10-15 5 views
-6

У меня есть форма результатов поиска, представленная ниже, которая дает результаты, такие как изображенные ниже. Что нужно изменить в форме, если я хочу показать только результат для , а не для других CustomerId?php расширенный поиск начинающих

Форма поиска содержит поля ввода для всех перечисленных столбцов (CustomerId, ComplaintId, Company, ...).

<table class="table table-striped" > 
    <p> 

     <tr> 
      <th>CustomerID</th> 
      <th>ComplaintID</th> 
      <th>Company</th> 
      <th>Lastname</th> 
      <th>Firstname</th> 
      <th>Street</th> 
      <th>Nr</th> 
      <th>Postalcode</th> 
      <th>City</th> 
      <th>Phone</th> 
      <th>Mail</th> 
     <tr> 


    <?php 
    error_reporting(-1); 
    ini_set('display_errors', true); 

    include "config.php"; 




    $customerid = mysqli_real_escape_string($mysqli, $_GET['customerid']); 
    $complaintid = mysqli_real_escape_string($mysqli, $_GET['complaintid']); 
    $company = mysqli_real_escape_string($mysqli, $_GET['company']); 
    $lastname = mysqli_real_escape_string($mysqli, $_GET['lastname']); 
    $firstname = mysqli_real_escape_string($mysqli, $_GET['firstname']); 
    $street = mysqli_real_escape_string($mysqli, $_GET['street']); 
    $housenr = mysqli_real_escape_string($mysqli, $_GET['housenr']); 
    $postalcode = mysqli_real_escape_string($mysqli, $_GET['postalcode']); 
    $city = mysqli_real_escape_string($mysqli, $_GET['city']); 
    $phone = mysqli_real_escape_string($mysqli, $_GET['phone']); 
    $mail = mysqli_real_escape_string($mysqli, $_GET['mail']); 

    $result = $mysqli->query("SELECT customerid, complaintid, company, lastname, firstname, street, housenr, postalcode, city, phone , mail 
            FROM customer 
            WHERE 
            customerid = '".$customerid."' OR 
            complaintid = '".$complaintid."' OR 
            company = '".$company."' OR 
            lastname = '".$lastname."' OR 
            firstname = '".$firstname."' OR 
            street = '".$street."' OR 
            housenr = '".$housenr."' OR 
            postalcode = '".$postalcode."' OR 
            city = '".$city."' OR 
            phone = '".$phone."' OR 
            mail = '".$mail."' "); 


    while ($row = $result->fetch_assoc()): 
    ?> 

    <tr> 
     <td><?php echo $row['customerid']; ?></td> 
     <td><?php echo $row['complaintid']; ?></td> 
     <td><?php echo $row['company']; ?></td> 
     <td><?php echo $row['lastname']; ?></td> 
     <td><?php echo $row['firstname']; ?></td> 
     <td><?php echo $row['street']; ?></td> 
     <td><?php echo $row['housenr']; ?></td> 
     <td><?php echo $row['postalcode']; ?></td> 
     <td><?php echo $row['city']; ?></td> 
     <td><?php echo $row['phone']; ?></td> 
     <td><?php echo $row['mail']; ?></td> 
    </tr> 

    <?php 
    endwhile; 
    ?> 



     <table> 
     <tr> 
      <th><a class="btn btn-info" href="index.php" role="button">zurück zur Suche</a></th> 
     </tr> 
     </table> 

Результат теперь это: sample

+5

SO не является услугой конвертации кода. Прочитали ли вы [учебники] (http://jayblanchard.net/demystifying_php_pdo.html) на PDO? Поскольку вы используете MySQLi API и спрашиваете, что не так с кодом, вопрос, который вы задаете, не соответствует названию вашего сообщения. –

+1

Вы, очевидно, не знаете PDO, если задаете этот вопрос, так почему бы не просто придерживаться mysqli? – Mike

+0

Мы не можем здесь написать код. Есть много ресурсов для PDO уже в Интернете, и это может занять некоторое время, но вам просто нужно изучить PDO. Попробуйте [поиск] (https://duckduckgo.com/?q=php+pdo). Но, суть: создайте объект PDO. Вызов '$ stmt = $ pdo-> prepare (" SELECT ... ");', затем ['$ stmt-> bindParam (...)'] (http://php.net/manual/en/pdostatement .bindparam.php), затем '$ stmt-> execute()'. – Jakar

ответ

2

Ваш запрос SELECT, является неправильным для получения только желаемый результат, основанный на CUSTOMERID.

$result = $mysqli->query("SELECT kdnr, complaintid, company, lastname, firstname, street, housenr, postalcode, city, phone , mail 
           FROM customer 
           WHERE 
           kdnr = '".$kdnr."' OR 
           complaintid = '".$complaintid."' OR 
           company = '".$company."' OR 
           lastname = '".$lastname."' OR 
           firstname = '".$firstname."' OR 
           street = '".$street."' OR 
           housenr = '".$housenr."' OR 
           postalcode = '".$postalcode."' OR 
           city = '".$city."' OR 
           phone = '".$phone."' OR 
           mail = '".$mail."' "); 

должен быть просто

$result = $mysqli->query("SELECT kdnr, complaintid, company, lastname, firstname, street, housenr, postalcode, city, phone , mail 
           FROM customer 
           WHERE 
           kdnr = '".$kdnr."'"); 

Я предполагаю, что $kdnr является CUSTOMERID переменной. Операторы OR получают другие записи, поскольку они соответствуют одному из критериев OR.

+0

Ох спасибо за этот ответ, у меня есть переведите код с немецкого на английский, прежде чем я опубликую его здесь ^^ – devando

+0

Ваш прием. Я знаю некоторых немцев, но сомневаюсь, что этого будет достаточно, чтобы помочь. – jagler

Смежные вопросы