Php 从“表”中选择COUNT(`id`),其中merk类似“%$searchq%”
我想计算一下我使用搜索引擎时得到的结果Php 从“表”中选择COUNT(`id`),其中merk类似“%$searchq%”,php,mysql,search,Php,Mysql,Search,我想计算一下我使用搜索引擎时得到的结果 $searchq = $_GET['search']; $searchq = str_replace(' ','-',$searchq); $con = mysql_connect("localhost","root","****"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("register-log
$searchq = $_GET['search'];
$searchq = str_replace(' ','-',$searchq);
$con = mysql_connect("localhost","root","****");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("register-login", $con);
$result = mysql_query("SELECT COUNT(`car_id`)FROM `adver` WHERE merk LIKE '%$searchq%' OR titel LIKE '%$searchq%' OR model LIKE '%$searchq%'");
$row = mysql_fetch_array($result);
$total = $row[0];
$pages = new Paginator;
$pages->items_total = $total;
$pages->mid_range = 5;
$pages->paginate();
以下是我的html代码:
<form id="header-search" action="car-list.php" method="get">
<input type="text" name="search" id="text" placeholder="Zoek hier.." class="quick-search" > </form>
$searchq = $_GET['search'];
$searchq = str_replace(' ','-',$searchq);
$con = mysql_connect("localhost","root","****");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("register-login", $con);
$result = mysql_query("SELECT COUNT(`car_id`)FROM `adver` WHERE merk LIKE '%$searchq%' OR titel LIKE '%$searchq%' OR model LIKE '%$searchq%'");
$row = mysql_fetch_array($result);
$total = $row[0];
$pages = new Paginator;
$pages->items_total = $total;
$pages->mid_range = 5;
$pages->paginate();
我这样做是为了知道$pages->items\u total=$total;我的页码
$searchq = $_GET['search'];
$searchq = str_replace(' ','-',$searchq);
$con = mysql_connect("localhost","root","****");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("register-login", $con);
$result = mysql_query("SELECT COUNT(`car_id`)FROM `adver` WHERE merk LIKE '%$searchq%' OR titel LIKE '%$searchq%' OR model LIKE '%$searchq%'");
$row = mysql_fetch_array($result);
$total = $row[0];
$pages = new Paginator;
$pages->items_total = $total;
$pages->mid_range = 5;
$pages->paginate();
显示结果的代码:
$searchq = $_GET['search'];
$searchq = str_replace(' ','-',$searchq);
$con = mysql_connect("localhost","root","****");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("register-login", $con);
$result = mysql_query("SELECT COUNT(`car_id`)FROM `adver` WHERE merk LIKE '%$searchq%' OR titel LIKE '%$searchq%' OR model LIKE '%$searchq%'");
$row = mysql_fetch_array($result);
$total = $row[0];
$pages = new Paginator;
$pages->items_total = $total;
$pages->mid_range = 5;
$pages->paginate();
$searchq = htmlspecialchars($searchq);
$searchq = mysql_real_escape_string($searchq);
$photo=mysql_query("SELECT * FROM `adver` WHERE merk LIKE '%$searchq%' OR titel LIKE '%$searchq%' OR model LIKE '%$searchq%' ORDER BY car_id DESC $pages->limit")or die(mysql_error());
while($get_photo=mysql_fetch_array($photo)){
?>
<a href="<?php echo 'car-details.php?merk='.$get_photo['merk'] .'&car_id=' .$get_photo['car_id'] .'&titel=' .$get_photo['titel'] ;?>">
<img src="<?php echo $get_photo['path'] ; ?>" style="border:1px solid #021a40;" alt="<?php echo $get_photo['merk'] ;?>" }/>
在我搜索数据库中不存在的东西之前,一切都很正常。所以$result=0。然后我得到了fowlowing错误:
$searchq = $_GET['search'];
$searchq = str_replace(' ','-',$searchq);
$con = mysql_connect("localhost","root","****");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("register-login", $con);
$result = mysql_query("SELECT COUNT(`car_id`)FROM `adver` WHERE merk LIKE '%$searchq%' OR titel LIKE '%$searchq%' OR model LIKE '%$searchq%'");
$row = mysql_fetch_array($result);
$total = $row[0];
$pages = new Paginator;
$pages->items_total = $total;
$pages->mid_range = 5;
$pages->paginate();
您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第1行的'-10,10'附近使用的正确语法
$searchq = $_GET['search'];
$searchq = str_replace(' ','-',$searchq);
$con = mysql_connect("localhost","root","****");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("register-login", $con);
$result = mysql_query("SELECT COUNT(`car_id`)FROM `adver` WHERE merk LIKE '%$searchq%' OR titel LIKE '%$searchq%' OR model LIKE '%$searchq%'");
$row = mysql_fetch_array($result);
$total = $row[0];
$pages = new Paginator;
$pages->items_total = $total;
$pages->mid_range = 5;
$pages->paginate();
当我将$result=mysql\u查询更改为==>从adver选择COUNTcar\u idf时;
然后一切正常除了我的页码。。。因为不管我在找什么,我都会清点每一辆车的id。。例如,我得到了3张空白页
$searchq = $_GET['search'];
$searchq = str_replace(' ','-',$searchq);
$con = mysql_connect("localhost","root","****");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("register-login", $con);
$result = mysql_query("SELECT COUNT(`car_id`)FROM `adver` WHERE merk LIKE '%$searchq%' OR titel LIKE '%$searchq%' OR model LIKE '%$searchq%'");
$row = mysql_fetch_array($result);
$total = $row[0];
$pages = new Paginator;
$pages->items_total = $total;
$pages->mid_range = 5;
$pages->paginate();
我希望有人能帮我解决这个问题,谢谢您将获得COUNT*的别名,并在以下内容后获取此字段:
$searchq = $_GET['search'];
$searchq = str_replace(' ','-',$searchq);
$con = mysql_connect("localhost","root","****");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("register-login", $con);
$result = mysql_query("SELECT COUNT(`car_id`)FROM `adver` WHERE merk LIKE '%$searchq%' OR titel LIKE '%$searchq%' OR model LIKE '%$searchq%'");
$row = mysql_fetch_array($result);
$total = $row[0];
$pages = new Paginator;
$pages->items_total = $total;
$pages->mid_range = 5;
$pages->paginate();
$result = mysql_query("SELECT COUNT(*) AS total FROM `adver` WHERE merk LIKE '%$searchq%' OR title LIKE '%$searchq%' OR model LIKE '%$searchq%'") or die(mysql_error());
$row = mysql_fetch_array($result);
$total = $row['total']; //use alias
你有错误的域名,我想:titel将是title
$searchq = $_GET['search'];
$searchq = str_replace(' ','-',$searchq);
$con = mysql_connect("localhost","root","****");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("register-login", $con);
$result = mysql_query("SELECT COUNT(`car_id`)FROM `adver` WHERE merk LIKE '%$searchq%' OR titel LIKE '%$searchq%' OR model LIKE '%$searchq%'");
$row = mysql_fetch_array($result);
$total = $row[0];
$pages = new Paginator;
$pages->items_total = $total;
$pages->mid_range = 5;
$pages->paginate();
要调试您的查询,您将在mysql_查询调用后添加或删除mysql_错误请参见我的代码分页总是有限制的,似乎您指定了-10,10的限制,因此是一个负开始;可能在$pages->limit中,这似乎就是问题所在
$searchq = $_GET['search'];
$searchq = str_replace(' ','-',$searchq);
$con = mysql_connect("localhost","root","****");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("register-login", $con);
$result = mysql_query("SELECT COUNT(`car_id`)FROM `adver` WHERE merk LIKE '%$searchq%' OR titel LIKE '%$searchq%' OR model LIKE '%$searchq%'");
$row = mysql_fetch_array($result);
$total = $row[0];
$pages = new Paginator;
$pages->items_total = $total;
$pages->mid_range = 5;
$pages->paginate();
不使用SQL\u CALC\u FOUND\u行是否有性能方面的考虑?有了它,无论使用LIMIT子句,都可以得到结果的总计数。一个附加提示:使用mysqli而不是mysql函数,并阅读一些有关准备语句的信息!嗨,谢谢你的回复,但我还是有同样的错误。顺便说一句,字段名为“titel”在dutch中,您可以尝试删除COUNT*和total之间的AS关键字表名和列名到底是什么?表名=adver,列名是:model,titel,merkI应该看看$pages->limit,问题应该就在附近!谢谢如果我发现了什么,请告诉你。嗨,问题是你说的$pages->limit。我创建了一个simpel if语句来检查是否有一个零结果。类似这样的情况:如果$total>0{$photo=mysql\u querySELECT*来自adver,其中merk像“%$searchq%”或titel像“%$searchq%”或模型像“%$searchq%”按car\u id DESC$pages->limitor diemsql\u错误;如果mysql\u num\u rows$photo>0{而$get\u photo=mysql\u fetch assoc$photo{//my loop}否则{echo找不到任何记录;}!
$searchq = $_GET['search'];
$searchq = str_replace(' ','-',$searchq);
$con = mysql_connect("localhost","root","****");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("register-login", $con);
$result = mysql_query("SELECT COUNT(`car_id`)FROM `adver` WHERE merk LIKE '%$searchq%' OR titel LIKE '%$searchq%' OR model LIKE '%$searchq%'");
$row = mysql_fetch_array($result);
$total = $row[0];
$pages = new Paginator;
$pages->items_total = $total;
$pages->mid_range = 5;
$pages->paginate();