如何解决 Object of class stdClass could not be converted to string?
How can I solve Object of class stdClass could not be converted to string?
我在使用 JQuery 数据表的 php 项目中遇到了一个重大问题。我想从我的数据库中获取数据,但出现以下错误:可恢复的致命错误:class stdClass 的对象无法转换为第 47 行上的字符串。这是我的第 47 行:<th scope=\"row\"> $client -> ID_client </th>
(你可以看到下面的所有代码)。你知道是什么导致了这个问题或者我该如何解决这个问题吗?
[![错误][1]][1]
这是我的JS代码:
getClients();
function getClients(){
$.ajax({
url: 'process.php',
type: 'post',
data : {action : 'fetch'}, //on renvoie du json
success: function(response){
console.log(response);
$('#orderTable').html(response);
$('table').DataTable();
}
})
}
这是我的 php 代码:
//Récupérer tous les clients
//on créé une variable pour stocker l'affichage
$output = '';
//on vérifie que l'on a au moins un client
if ($db->countClients() > 0){
$clients = $db->read();
//entête du tableau
$output .= '
<table class="table">
<thead>
<tr>
<th scope="col">Id</th>
<th scope="col">Nom</th>
<th scope="col">Prénom</th>
<th scope="col">Email</th>
<th scope="col">Type client</th>
<th scope="col">Numéro de téléphone</th>
<th scope="col">Adresse</th>
<th scope="col">Ville</th>
<th scope="col">Pays</th>
<th scope="col">Nombre de réservation</th>
<th scope="col">Actions</th>
</tr>
</thead>
<tbody>
';```
foreach($clients as $client){
$output .= "
<tr>
<th scope=\"row\"> $client -> ID_client </th>
<td>$client -> Nom </td>
<td>$client -> Prenom </td>
<td>$client -> Email </td>
<td>$client -> Type_client</td>
<td>$client -> Num_tel </td>
<td>$client -> Adresse </td>
<td>$client -> Ville </td>
<td>$client -> Pays </td>
<td>$client -> Nb_reservation </td>
<td>
<!--Bouton détails-->
<a href=\"\" class=\"text-info me-2 infoBtn\" title=\"Voir détails\">
<i class=\"fas fa-info-circle\"></i></a>
<!--Bouton modifier-->
<a href=\"\" class=\"text-primary me-2 editBtn\" title=\"Modifier\">
<i class=\"fas fa-edit\"></i></a>
<!--Bouton supprimer-->
<a href=\"\" class=\"text-danger me-2 deleteBtn\" title=\"Supprimer\">
<i class=\"fas fa-trash-alt\"></i></a>
</td>
</tr> ";
}
$output .= "</tbody> </table>";
echo $output;
//print_r($output);
} else {
echo "<h2> Aucun client dans la base de données</h2>";
}
public function read(){
//fetchAll() permet de récupérer d'un coup l'ensemble du résultat d'une requête
return $this->getconnexion()->query("SELECT * FROM table_client ORDER BY ID_client")->fetchAll(PDO::FETCH_OBJ);
}
//fonction qui compte combien de clients sont présents dans la table
public function countClients(): int{
// [0] sera ce qui contiendra le count
return (int)$this->getconnexion()->query("SELECT COUNT(ID_client) as count FROM table_client")->fetch()[0];
}
[1]: https://i.stack.imgur.com/Uys7M.png
[2]: https://i.stack.imgur.com/pLoEL.png
这是我找到的解决方案:
<th scope=\"row\"> {$client->ID_client} </th>
<td> {$client -> Nom} </td>
<td>{$client -> Prenom} </td>
<td>{$client -> Email} </td>
<td>{$client -> Type_client}</td>
<td>{$client -> Num_tel} </td>
<td>{$client -> Adresse} </td>
<td>{$client -> Ville} </td>
<td>{$client -> Pays} </td>
<td>{$client -> Nb_reservation} </td>
我刚刚看到我期待收到一个 JSON 类型但试图显示一个字符串!!我添加了 {},它运行良好
我在使用 JQuery 数据表的 php 项目中遇到了一个重大问题。我想从我的数据库中获取数据,但出现以下错误:可恢复的致命错误:class stdClass 的对象无法转换为第 47 行上的字符串。这是我的第 47 行:<th scope=\"row\"> $client -> ID_client </th>
(你可以看到下面的所有代码)。你知道是什么导致了这个问题或者我该如何解决这个问题吗?
[![错误][1]][1]
这是我的JS代码:
getClients();
function getClients(){
$.ajax({
url: 'process.php',
type: 'post',
data : {action : 'fetch'}, //on renvoie du json
success: function(response){
console.log(response);
$('#orderTable').html(response);
$('table').DataTable();
}
})
}
这是我的 php 代码:
//Récupérer tous les clients
//on créé une variable pour stocker l'affichage
$output = '';
//on vérifie que l'on a au moins un client
if ($db->countClients() > 0){
$clients = $db->read();
//entête du tableau
$output .= '
<table class="table">
<thead>
<tr>
<th scope="col">Id</th>
<th scope="col">Nom</th>
<th scope="col">Prénom</th>
<th scope="col">Email</th>
<th scope="col">Type client</th>
<th scope="col">Numéro de téléphone</th>
<th scope="col">Adresse</th>
<th scope="col">Ville</th>
<th scope="col">Pays</th>
<th scope="col">Nombre de réservation</th>
<th scope="col">Actions</th>
</tr>
</thead>
<tbody>
';```
foreach($clients as $client){
$output .= "
<tr>
<th scope=\"row\"> $client -> ID_client </th>
<td>$client -> Nom </td>
<td>$client -> Prenom </td>
<td>$client -> Email </td>
<td>$client -> Type_client</td>
<td>$client -> Num_tel </td>
<td>$client -> Adresse </td>
<td>$client -> Ville </td>
<td>$client -> Pays </td>
<td>$client -> Nb_reservation </td>
<td>
<!--Bouton détails-->
<a href=\"\" class=\"text-info me-2 infoBtn\" title=\"Voir détails\">
<i class=\"fas fa-info-circle\"></i></a>
<!--Bouton modifier-->
<a href=\"\" class=\"text-primary me-2 editBtn\" title=\"Modifier\">
<i class=\"fas fa-edit\"></i></a>
<!--Bouton supprimer-->
<a href=\"\" class=\"text-danger me-2 deleteBtn\" title=\"Supprimer\">
<i class=\"fas fa-trash-alt\"></i></a>
</td>
</tr> ";
}
$output .= "</tbody> </table>";
echo $output;
//print_r($output);
} else {
echo "<h2> Aucun client dans la base de données</h2>";
}
public function read(){
//fetchAll() permet de récupérer d'un coup l'ensemble du résultat d'une requête
return $this->getconnexion()->query("SELECT * FROM table_client ORDER BY ID_client")->fetchAll(PDO::FETCH_OBJ);
}
//fonction qui compte combien de clients sont présents dans la table
public function countClients(): int{
// [0] sera ce qui contiendra le count
return (int)$this->getconnexion()->query("SELECT COUNT(ID_client) as count FROM table_client")->fetch()[0];
}
[1]: https://i.stack.imgur.com/Uys7M.png
[2]: https://i.stack.imgur.com/pLoEL.png
这是我找到的解决方案:
<th scope=\"row\"> {$client->ID_client} </th>
<td> {$client -> Nom} </td>
<td>{$client -> Prenom} </td>
<td>{$client -> Email} </td>
<td>{$client -> Type_client}</td>
<td>{$client -> Num_tel} </td>
<td>{$client -> Adresse} </td>
<td>{$client -> Ville} </td>
<td>{$client -> Pays} </td>
<td>{$client -> Nb_reservation} </td>
我刚刚看到我期待收到一个 JSON 类型但试图显示一个字符串!!我添加了 {},它运行良好