Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为每个ISSET计算SQL查询?_Php_Mysql_Post_Pagination_Get - Fatal编程技术网

Php 为每个ISSET计算SQL查询?

Php 为每个ISSET计算SQL查询?,php,mysql,post,pagination,get,Php,Mysql,Post,Pagination,Get,大家好,我有点不知所措,我需要你们的帮助。我想更改每个$\u GET参数的SQL查询。我用这个: <? if (isset($_GET['page']) ) { $pageno = $_GET['page']; } else { $pageno = 1; } // if $query = mysql_query("SELECT count(id) FROM m3_music_mp3"); $query_data = mysql_fetch_row($query); $numro

大家好,我有点不知所措,我需要你们的帮助。我想更改每个$\u GET参数的SQL查询。我用这个:

<?
if (isset($_GET['page']) ) {
   $pageno = $_GET['page'];
} else {
   $pageno = 1;
} // if
$query = mysql_query("SELECT count(id) FROM m3_music_mp3");
$query_data = mysql_fetch_row($query);
$numrows = $query_data[0];
$rows_per_page = 30;
$lastpage      = ceil($numrows/$rows_per_page);
$pageno = (int)$pageno;
if ($pageno > $lastpage) {
   $pageno = $lastpage;
} // if
if ($pageno < 1) {
   $pageno = 1;
} // if
$limit = 'ORDER BY id DESC LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = mysql_query("SELECT * FROM m3_music_mp3 $limit");
?>
类似于但不起作用。非常感谢。对不起,我的英语很差,php知识也很差,应该是:

if(isset($_GET['word'])) {
  $word = mysql_real_escape_string($_GET['word']);

  $limit = " WHERE title LIKE '%$word%' ORDER BY id DESC LIMIT " .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
}
else
{
  $limit = " ORDER BY id DESC LIMIT " .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
}

$query = mysql_query("SELECT * FROM m3_music_mp3 $limit") or die(mysql_error());

您的解决方案应该可以正常工作,也许您只需要在WHERE之前留出一个空间,例如。。。打印出最终的查询字符串,看看哪里出错。

基本上sAc是正确的。但是你可以减少你的代码。原因限制不是可选的,这可以正常工作: 编辑将代码位更改为可复制和可测试

<?
if (isset($_GET['page']) ) {
   $pageno = $_GET['page'];
} else {
   $pageno = 1;
} // if
$limit = "";
    if(isset($_GET['word'])) {
      $word = mysql_real_escape_string($_GET['word']);

      $limit = " WHERE title LIKE '%$word%'"
    }
$query = mysql_query("SELECT count(id) FROM m3_music_mp3" . $limit);
$query_data = mysql_fetch_row($query);
$numrows = $query_data[0];
$rows_per_page = 30;
$lastpage      = ceil($numrows/$rows_per_page);
$pageno = (int)$pageno;
if ($pageno > $lastpage) {
   $pageno = $lastpage;
} // if
if ($pageno < 1) {
   $pageno = 1;
} // if
$limit .= ' ORDER BY id DESC LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = mysql_query("SELECT * FROM m3_music_mp3 $limit");
?>

谢谢你的评论。它很好用。但是我怎样才能增加美元呢?使用elseif是不是应该有用?好的。这也行得通。非常感谢。但是现在分页无法正常工作分页仍然可以处理所有数据,而不是多少标题行:设置isset字位并将其放在$query=mysql\u querySELECT countid FROM m3\u music\u mp3之前;change$query=mysql\u query从m3\u music\u mp3中选择countid;to$query=mysql\u query从m3\u music\u mp3中选择countid$限度
<?
if (isset($_GET['page']) ) {
   $pageno = $_GET['page'];
} else {
   $pageno = 1;
} // if
$limit = "";
    if(isset($_GET['word'])) {
      $word = mysql_real_escape_string($_GET['word']);

      $limit = " WHERE title LIKE '%$word%'"
    }
$query = mysql_query("SELECT count(id) FROM m3_music_mp3" . $limit);
$query_data = mysql_fetch_row($query);
$numrows = $query_data[0];
$rows_per_page = 30;
$lastpage      = ceil($numrows/$rows_per_page);
$pageno = (int)$pageno;
if ($pageno > $lastpage) {
   $pageno = $lastpage;
} // if
if ($pageno < 1) {
   $pageno = 1;
} // if
$limit .= ' ORDER BY id DESC LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = mysql_query("SELECT * FROM m3_music_mp3 $limit");
?>