Mysql
 sql >> база данни >  >> RDS >> Mysql

Търсене в mysqli таблица с формуляр и показване на резултати

Не, вие създадохте подготвено изявление, след което сте използвали нормалната заявка, която има заместители, затова не работи. Изпълнете подготвения оператор, след което извлечете резултата от този подготвен оператор.

$query = "SELECT * FROM photos WHERE cata=? OR catb=? OR catc=?";
$conn = $db->prepare($query);
$conn->bind_param("sss", $cata, $catb, $catc);
$conn->execute();
$conn->bind_result($cata, $catb, $catc);
?>
<table border="1">
<tr>
    <th>cata</th>
    <th>catb</th>
    <th>catc</th>
</tr>
<?php
while ($conn->fetch()) {

    echo '<tr>';
    echo '<td>' . $cata . '</td>';
    echo '<td>' . $catb . '</td>';
    echo '<td>' . $catc . '</td>';
    echo '</tr>';
}

Или ако имате mysqlnd (роден драйвер на mysql / или няма да имате тази недефинирана функция), можете също да използвате get_result() :

$query = "SELECT * FROM photos WHERE cata=? OR catb=? OR catc=?";
$conn = $db->prepare($query);
$conn->bind_param("sss", $cata, $catb, $catc);
$conn->execute();
$results = $conn->get_result(); // i like this better
?>
<table border="1">
<tr>
    <th>cata</th>
    <th>catb</th>
    <th>catc</th>
</tr>
<?php
while ($row = $results->fetch_assoc()) {

    echo '<tr>';
    echo '<td>' . $row['cata'] . '</td>';
    echo '<td>' . $row['catb'] . '</td>';
    echo '<td>' . $row['catc'] . '</td>';
    echo '</tr>';
}

?>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Това ли е най-добрият подход за създаване на одитна пътека?

  2. Как да получите последното поле в Mysql база данни с PHP?

  3. Има ли смисъл да използвате MySQL LIMIT 1 при запитване към индексирано/уникално поле?

  4. Django admin MySQL бавно INNER JOIN

  5. Каква е най-добрата производителност за извличане на MySQL EAV резултати като релационна таблица