查询结果到对象集合

时间:2019-06-05 14:13:19

标签: php mysql

我有一个数据库phpmyadmin,我创建了一个类:

<?php

class Ticket
{
private $NumDossier = 0;
private $NomTicket ="";
private $Service = "" ;
private $Impact = 0;
private $Urgence = "";
private $DateOuverture = "";

public function __construct($p_NumDossier, $p_NomTicket,$p_Service,$p_Impact,$p_Urgence,$p_DateOuverture)
{
    $this->NumDossier = $p_NumDossier;
    $this->NomTicket = $p_NomTicket;
    $this->Service = $p_Service;
    $this->Impact = $p_Impact;
    $this->Urgence = $p_Urgence;
    $this->DateOuverture = $p_DateOuverture;
}
public function getNumDossier()
{
    return $this->NumDossier;
}
public function getNomTicket()
{
    return $this->NomTicket;
}
public function getService()
{
    return $this->Service;
}
public function getImpact()
{
    return $this->Impact;
}public function getUrgence()
{
    return $this->Urgence;
}
public function getDateOuverture()
{
    return $this->DateOuverture;
}
} 
?>

对于查询返回的所有行,我想创建一个对象并将其添加到集合中。

我的代码:

$connexion = cnx(); 

if($connexion) { 
    $requete="SELECT * FROM ticket '"; 
    $result = mysqli_query($connexion, $requete); 
    $result = mysqli_query($connexion, $requete); 
    $row = mysqli_fetch_assoc($result); 
 } 

$test = new Ticket(0,"","",0,"",""); 

while($row) { 
    //create object for each line and add it to an collection 
}

如果您有解决方案/请引导我解决这个问题。

感谢您的阅读!

1 个答案:

答案 0 :(得分:1)

我必须假设您代码的开头部分是正确的,所以我复制了它。但是我进一步更改了它。您想检索多行,因此我将mysqli_fetch_assoc放入了while循环中。在每一行中,我都会创建一个新票证,并将其放入“收藏”数组中。

$connection = cnx(); 

if ($connexion) { 
    $query ="SELECT * FROM ticket"; 
    $result = mysqli_query($connection, $query); 
    if ($result === false) die("The query [$query] could not be executed.");

    $collection = [];
    while($row = mysqli_fetch_assoc($result)) {
        $collection[] = new Ticket($row["NumDossier"],
                                   $row["NomTicket"],
                                   $row["Service"],
                                   $row["Impact"],
                                   $row["Urgence"],
                                   $row["DateOuverture"]); 
    }

    echo "<pre>";
    print_r($collection);
    echo "</pre>";
} 

因此,我为集合使用了一个简单的数组。我使用默认的数字数组索引,因为我不知道用什么替换它。 $row["NomTicket"]似乎是一个合理的选择。