我在mysql查询中有错误请帮帮我

时间:2014-03-31 04:06:15

标签: php mysql pagination

我的mysql语句中有错误,我无法理解它的错误。 我收到了警告

警告:mysql_fetch_array()要求参数1为资源,布尔值在第166行的C:\ wamp \ www \ website-template-40 \ website-template-40 \ employ.php中给出 并在使用mysql_error之后

我收到以下错误: - 什么是错误你的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的'where designation ='used''附近使用正确的语法

 <?php

    $q="select count(*) \"total\"  from tblregistration where designation='employed'";
    $ros=mysql_query($q) or die('error1'.mysql_error());
    $row=(mysql_fetch_array($ros));
    $total=$row['total'];

    $dis=8;
    $total_page=ceil($total/$dis);

    $page_cur=(isset($_GET['page']))?$_GET['page']:1;
    $k=($page_cur-1)*$dis;
    $q11="select * from tblregistration limit $k,$dis where designation='employed'";

    $ros1=mysql_query($q11) or die('what a error'.mysql_error());

    $i=2;
    while($row1=mysql_fetch_array($ros1))
    {
        if($i==2)  
      { 
        echo '<tr>';
        $i=0;
      }

        ?>  <td><img src="upload/<?php echo $row1['image'];?>" width="100px" height="100px;" /></td>
            <td><?php echo $row1['name'];?><br />
                <?php echo $row1['designation'];?><br />
                <?php echo $row1['contactno'];?><br />
                <?php echo $row1['emailid'];?><br />

            </td>
     <?php  
       $i++;
       if($i==2)
       {
      echo '</tr>';
       } 
    }  ?>

2 个答案:

答案 0 :(得分:0)

LIMIT关键字应该在最后而不是WHERE子句之前。

正确的方式..

select * from `tblregistration` where `designation`='employed' LIMIT '$k','$dis'

mysql_*)扩展程序自PHP 5.5.0起已弃用,将来会被删除。相反,应使用MySQLiPDO_MySQL扩展名。切换到PreparedStatements甚至可以更好地抵御SQL注入攻击!

答案 1 :(得分:0)

1)sql查询结构:

SELECT field1 [,"field2",etc]
FROM table
[WHERE "condition"]
[LIMIT "limit"]

2)你不能在这一行的字符串赋值中使用die:

$q11="select * from tblregistration limit $k,$dis where designation='employed'" or die('what a error'.mysql_error());

更改这些行:

 $q11="select * from tblregistration limit $k,$dis where designation='employed'" or die('what a error'.mysql_error());

    $ros1=mysql_query($q11);

为:

   $q11="select * from tblregistration  where designation='employed' limit $k,$dis"; 
    $ros1=mysql_query($q11) or die('what a error'.mysql_error());