PHP-搜索框不起作用


PHP - Search box doesnt work

我试图创建一个带有类的搜索框,我总是使用特定的代码,而不是使用类。

但现在,我正在学习如何使用类,我需要将我的旧代码转移到一个类中,我尝试了这个功能:

function verGaleria() {
    $sql = "SELECT * FROM `cds`";
    if(($rs=$this->bd->executarSQL($sql))){
      if(isset($_GET['buscar'])){
        $sql = mysql_query("SELECT * FROM `cds` where name like '%".$_GET['buscar']."%'");
      }
      while ($row = mysql_fetch_array($rs)) {                   
              $imagem = $row['imagem'];
              $ID = $row['ID'];
              $artista = $row['artista'];
              $preco = $row['preco'];
              $titulo = $row['titulo'];
        echo '      
                <style>
                .teste{
                text-align:center; display: inline-block; width:300px; margin: 0 0 40px 30px;   float:left; color:white;
                }
                </style>
          <div class="teste">
                  <h1>'.$titulo.'</h1>
                      <h2><img class="cd" src="CDs/'.$imagem.'" width="102" height="126" alt="'.$artista.'"/></h2>
                        <h3>'.$preco.'€</h3>
          </div>
            ';
    }   
  } else {
    return false;
    }
}

我的发件人代码:

<form method="GET" name="buscar" >
 <label><a class="utilizador">Procurar</a>
 <br />
   <input type="text" name="buscar" id="prc" placeholder="Ex: Rock"/></label>
    <input type="submit" class="submitprc" value="Pesquisar" />
</form>

您正在执行初始SQL查询$sql = "SELECT * FROM cds ";,它获取所有产品并将所有结果存储在$rs中,就像$rs=$this->bd->executarSQL($sql) 一样

然后检查搜索查询是否存在isset($_GET['buscar']),如果存在,则形成新的sql语句$sql = mysql_query("SELECT * FROMwhere name like '%".$_GET['buscar']."%'");,但从不执行它。

然后使用$rs显示结果。。

while ($row = mysql_fetch_array($rs)) {
    $imagem = $row['imagem'];
    $ID = $row['ID'];
    $artista = $row['artista'];
    $preco = $row['preco'];
    $titulo = $row['titulo'];
//code
}

你应该做的是:

<?php
isset($_GET['buscar']) ?
    $sql = "SELECT * FROM `cds` where name like '%".$_GET['buscar']."%'" :
    $sql = "SELECT * FROM `cds`";
$result = mysql_query("SELECT * FROM `cds` where name like '%".$_GET['buscar']."%'", $conn); // pass in your connection object
 if(! $result )
 {
    die('Could not get data: ' . mysql_error());
 }
 while ($row = mysql_fetch_array($result)) {
    $imagem = $row['imagem'];
    $ID = $row['ID'];
    $artista = $row['artista'];
    $preco = $row['preco'];
    $titulo = $row['titulo'];
   //code
}