выводить несколько php результатов поиска на другую страницу? - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь вывести результаты поиска на другую страницу php с кнопкой ввода и отправки. Он работает, но отображает только один результат за раз, потому что для всех результатов есть только один заполнитель, есть ли способ вывести несколько релевантных результатов и дать каждому результату свой заполнитель?

Например, у меня три имена в базе данных выглядят следующим образом: поиск win10 должен привести к двум результатам, но выводит только первое.

win7-haystack
win10-iceland
win10-road

, вот поиск php:

<?php
$arr = [];
$searchq = "%{$_POST['search-input']}%";
$stmt = $pdo->prepare("SELECT wallname FROM walldb WHERE wallname LIKE ?");
$stmt->execute([$searchq]);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  $arr[] = $row;
}
foreach($arr as $value){
    $val = implode('', $value);
    //echo ($val);
    //echo("<br><br>");
  }
$stmt = $pdo->prepare('SELECT * FROM walldb WHERE wallname = :val');
$stmt->bindParam(':val', $val);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $mlink = $row['mainlink'];
    $tlink = $row['thumbnail'];
    $dlink = $row['download'];
    $info = $row['info'];
  }
  /*echo ($mlink);
  echo("<br>");
  echo ($tlink);
  echo("<br>");
  echo ($dlink);
  echo("<br>");
  echo ($info);  */
  $final = ("<li><a href="."$mlink"."data-lightbox='wallpaper1'><img class='searchicon' src="."$tlink"."></a><span>"."$val"."</span><img class='searchbutton1 s1'
  src='/images/info.png'><a id='wall1.download' href="."$dlink"."><img class='searchbutton2' src='/images/download.png'></a>
<ul class='searchmenu menu1'>
  <p>"."$info"."</p>
</ul>
</li>");
?>

вот результат php:

    <form action= "" method= "post">
      <a href="#"><img id="glass" src="/images/search.png" type= "submit" 
    name="submit-search"></a><input id="search" name="search-input" 
    type="search" placeholder="Search By Name" autocomplete="off"><a 
    href="#"><img id="cancle" src="/images/cancle.png"></a>
   </form>
     <section id="result"><?php echo $final; ?></section>

1 Ответ

1 голос
/ 09 января 2020

Вы дважды просматриваете один и тот же набор результатов запроса и оба раза отбрасываете все, кроме значений из последней итерации. Попробуйте что-то вроде этого:

$arr = [];
$searchq = "%{$_POST['search-input']}%";
$stmt = $pdo->prepare('SELECT * FROM walldb WHERE wallname LIKE ?');
$stmt->execute([$searchq]);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $mlink = $row['mainlink'];
    $tlink = $row['thumbnail'];
    $dlink = $row['download'];
    $info = $row['info'];

    // Generate the desired per-row output, saving it in an array for later use.
    // Not clear what that should be, so this is a guess. Modify as needed.
    $arr[] = '<li>' . $mlink . '<br>' . $tlink . '<br>' . $dlink . '<br>' . $info . '</li>';
}

$final = '<ul>' . implode('', $arr) . '</ul>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...