微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我的 php 代码循环并且不探索我的数据库

如何解决我的 php 代码循环并且不探索我的数据库

您好,我目前正在尝试基于 MysqL 下的数据库创建一个页面,该页面将为客户端更新自身。但是,当我希望它转到数据库中的另一个对象时,我每次尝试循环并不确定地返回数据库的第一个值。这是代码,我是初学者,所以错误可能是公然的,感谢您的帮助。 谢谢大家,解决了。

<?PHP
    
try
    {

        $db = new PDO('MysqL:host=localhost;dbname=labase','root','');
        $db->exec(" SET CHaraCTER SET utf8 ");
        $db->setAttribute(PDO::ATTR_CASE,PDO::CASE_LOWER);
        $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    }
    catch(Exception $e){
            
        echo'une erreur est survenue';
        die();
            
    }

    

for ($i = 1; $i < 10; $i++) {
    if ($i=1){
        $select = $db->prepare("Select profession from contact where affiliation='nord' group by profession"); // je récupère les professions de la bdd
        $select->execute();
    }
    $data = $select->fetch(PDO::FETCH_OBJ);
    $profess=$data->profession; // je prends la prochaine profession
    
    $selectionner = $db->prepare("Select nomcontact,count(*) as nbrcontact from contact where affiliation='nord' and profession='$profess'"); // je prends les contacts qui ont cette profession ainsi que leur nombre
    $selectionner->execute();
    
    $prendre = $selectionner->fetch(PDO::FETCH_OBJ);
    $nbrcontact=$prendre->nbrcontact;// je récupère leur nombre
echo $profess;
echo $nbrcontact;

}
    
    ?>

解决方法

我不是 PHP 专家并且从不使用 PDO,但是在 Msqli 中,有一个 fetch_array() 来获取多个结果(而不是获取单个结果),也许在 PDO 中您也有一个 fetch_array。然后,您可以在结果数组上循环

类似的东西(使用 msqli)

$sql = "SELECT... FROM ..";

        $result = $link->query($sql);

        while($row =mysqli_fetch_array($result))

{ }

,

if ($i=1) { // 这里应该是 =====

,

您通过声明 $i=1 导致无限循环

<?php
    
try
    {

        $db = new PDO('mysql:host=localhost;dbname=labase','root','');
        $db->exec(" SET CHARACTER SET utf8 ");
        $db->setAttribute(PDO::ATTR_CASE,PDO::CASE_LOWER);
        $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    }
    catch(Exception $e){
            
        echo'une erreur est survenue';
        die();
            
    }

    

for ($i = 1; $i < 10; $i++) {
    if ($i == 1){ // added code
        $select = $db->prepare("Select profession from contact where affiliation='nord' group by profession"); // je récupère les professions de la bdd
        $select->execute();
    }
    $data = $select->fetch(PDO::FETCH_OBJ);
    $profess=$data->profession; // je prends la prochaine profession
    
    $selectionner = $db->prepare("Select nomcontact,count(*) as nbrcontact from contact where affiliation='nord' and profession='$profess'"); // je prends les contacts qui ont cette profession ainsi que leur nombre
    $selectionner->execute();
    
    $prendre = $selectionner->fetch(PDO::FETCH_OBJ);
    $nbrcontact=$prendre->nbrcontact;// je récupère leur nombre
echo $profess;
echo $nbrcontact;

}
    
    ?>

使用 == 进行比较

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。