我已经在代码上创建了一个表格订单,我的想法是为每个用户生成一个唯一订单ID。
在我的控制器上,我有一个带有MYSQL请求的代码,以及一个返回结果的函数(在其他SQL请求中起作用)。
所以我对MySQL请求的想法是计算具有相同编号的订单数量,如果结果为= 1,则必须生成一个新的订单编号。在我的订单类上,我具有以下功能:
public static function getCountOrderIfExist($bdd, $order_number) {
$requete = "SELECT * FROM Order WHERE order_number='$order_number'";
$commandes = getResultatRequete($bdd, $requete);
return !empty($commandes) ? $commandes : null;
}
然后在控制器上调用它:
$count = Order::getCountOrderIfExist($bdd, $order_number);
while ($count >= 1) {
$order_number= $user_role."_".$user->getUtilisateurId().rand(1,99999)."_".$user->getEntreprise()->getId().rand(1,999999);
}
这是我的getResultatRequete
的代码:
function getResultatsRequete(PDO $bdd, $requete) {
$reponse_requete = $bdd->query($requete);
if ($reponse_requete != false) {
$resultat_requete = $reponse_requete->fetchAll();
return str_replace("\\", "", $resultat_requete);
} else {
printErrorInfo($bdd, $requete, true);
return array();
}
}
当我在调试模式下运行代码时,SQL请求返回NULL,但我不明白为什么,因为当我在终端上运行Request时,它运行良好。有什么想法吗?
答案 0 :(得分:0)
从我们在注释中的对应关系来看,问题似乎出在return语句上:
return !empty($commandes) ? $commandes : null;
该语句返回所有找到的记录,如果找不到记录,则返回null。但是,似乎控制器希望该函数返回匹配记录的数量(如果没有找到,则返回0)。
为了返回一个供您使用的数字,您需要对返回的记录进行计数:
return count($commandes);
这应该为您提供所需的结果。