首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mysqli oop返回空

mysqli oop返回空
EN

Stack Overflow用户
提问于 2015-12-16 19:19:43
回答 1查看 69关注 0票数 0

有人能告诉我我的密码出了什么问题吗?

代码语言:javascript
运行
复制
class sub_category
{
    private $con;
    function __construct()
    {
        $this->con = new mysqli("localhost", "root", "", "whatever");
    }

    function show_all()
    {
        $per_page=5;
        if(isset($_GET['page']))
        {
            $page = $_GET['page'];
        }
        else
        {
            $page = 1;
        }

        $start_from = ($page-1)*$per_page;

        $sql = "SELECT sub_kategori.id_sub_kategori, kategori.nama_kategori, sub_kategori.nama_sub_kategori FROM sub_kategori INNER JOIN kategori ON kategori.id_kategori = sub_kategori.id_kategori ORDER BY sub_kategori.id_sub_kategori LIMIT ?, ?";
        $stmt = $this->con->prepare($sql);
        $stmt->bind_param('ii', $start_from, $per_page);
        $stmt->execute();
        $stmt->bind_result($id, $namecat, $cat);
        while($stmt->fetch())
        {
            echo "<tr>";
            echo "<td>$id</td>";
            echo "<td>$namecat</td>";
            echo "<td>$cat</td>";
            echo "<td><a href='javascript:'>Update</a></td>";
            echo "<td><a href='sub_category.php?ghgfh=$id'>Delete</a></td>";
            echo "<td><a href=''>Report</a></td>";
            echo "</tr>";
        };
        $stmt->close();
        $page_sql = "SELECT sub_kategori.id_sub_kategori, kategori.nama_kategori, sub_kategori.nama_sub_kategori FROM sub_kategori INNER JOIN kategori ON kategori.id_kategori = sub_kategori.id_kategori ORDER BY sub_kategori.id_sub_kategori";
        $stmt_page = $this->con->query($page_sql);
        $total_record = $stmt_page->num_rows;
        $total_page = ceil($total_record/$per_page);
        echo "</tbody>";
        echo "</table>";
        echo "<center>";
        echo "<ul class='pagination'>";
        echo "<li><a href=sub_category.php?page=1>First Page</a></li>";
        for($i=1;$i<=$total_page;$i++)
        {
            if(isset($_GET['page']))
            {
                if($i==$_GET['page'])
                {   
                    echo "<li class='active'><a href=sub_category.php?page=$i>$i</a></li>";
                }
                else
                {
                    echo "<li><a href=sub_category.php?page=$i>$i</a></li>";
                }
            }
            else
            {
                echo "<li><a href=sub_category.php?page=$i>$i</a></li>";
            }
        }
        echo "<li><a href=sub_category.php?page=$total_page>Last Page</a></li>";
        echo "</ul>";
        echo "</center>";
        $stmt_page->close();
    }

    function show($nama_sub_kategori)
    {

        $per_page=5;
        if(isset($_GET['page']))
        {
            $page = $_GET['page'];
        }
        else
        {
            $page = 1;
        }

        $start_from = ($page-1)*$per_page;

        $nama_sub_kategori = "%$nama_sub_kategori%";
        $sql = "SELECT sub_kategori.id_sub_kategori, kategori.nama_kategori, sub_kategori.nama_sub_kategori FROM sub_kategori INNER JOIN kategori ON kategori.id_kategori = sub_kategori.id_kategori WHERE sub_kategori.id_sub_kategori LIKE ? OR sub_kategori.nama_sub_kategori LIKE ? OR kategori.nama_kategori LIKE ? ORDER BY sub_kategori.id_sub_kategori LIMIT ?, ?";
        $stmt = $this->con->prepare($sql);
        $stmt->bind_param('sssii', $nama_sub_kategori, $nama_sub_kategori, $nama_sub_kategori, $start_from, $per_page);
        $stmt->execute();
        $stmt->bind_result($id, $namecat, $cat);
        while($stmt->fetch())
        {
            echo "<tr>";
            echo "<td>$id</td>";
            echo "<td>$namecat</td>";
            echo "<td>$cat</td>";
            echo "<td><a href=''>Update</a></td>";
            echo "<td><a href='sub_category.php?ghgfh=$id'>Delete</a></td>";
            echo "<td><a href=''>Report</a></td>";
            echo "</tr>";
        };
        $stmt->close();
        $page_sql = "SELECT count(*) as total FROM sub_kategori INNER JOIN kategori ON kategori.id_kategori = sub_kategori.id_kategori WHERE sub_kategori.id_sub_kategori LIKE ? OR sub_kategori.nama_sub_kategori LIKE ? OR kategori.nama_kategori LIKE ? ORDER BY sub_kategori.id_sub_kategori";
        $stmt_page = $this->con->prepare($page_sql);
        $stmt_page->bind_param('sss', $nama_sub_kategori, $nama_sub_kategori, $nama_sub_kategori);
        $stmt_page->execute();
        $stmt_page->bind_result($row);
        $total_record = $row;
        echo $total_record;
        $total_page = ceil($total_record/$per_page);
        echo "</tbody>";
        echo "</table>";
        echo "<center>";
        echo "<ul class='pagination'>";
        echo "<li><a href=sub_category.php?page=1>First Page</a></li>";
        for($i=1;$i<=$total_page;$i++)
        {
            if(isset($_GET['page']))
            {
                if($i==$_GET['page'])
                {   
                    echo "<li class='active'><a href=sub_category.php?page=$i>$i</a></li>";
                }
                else
                {
                    echo "<li><a href=sub_category.php?page=$i>$i</a></li>";
                }
            }
            else
            {
                echo "<li><a href=sub_category.php?page=$i>$i</a></li>";
            }
        }
        echo "<li><a href=sub_category.php?page=$total_page>Last Page</a></li>";
        echo "</ul>";
        echo "</center>";
        $stmt_page->close();
    }
 }

show_all()函数运行得非常好!它显示数据和分页没有问题!

show()函数显示数据--它也在工作!但是分页给我的结果是无效的!

我是说

回声$total记录;

它给了我无效的分页!我的密码有什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2015-12-16 19:50:31

也许我遗漏了一些显而易见的东西,因为我没有以这种方式在php中使用$this;也就是说,指定对特定类之外的全局变量的访问。当跨函数共享变量时,$global用于指定共享变量(在本例中为con)。

在您的showAll函数中,您设置了$total_record =$stmt_page->num_ $row;在第二个(显示)函数中,您设置了$total_record = $row;其中$row似乎没有初始化.因此NULL是正确的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34320324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档