В настоящее время я занимаюсь ИТ-курсом, в котором люди могут приносить свои компьютерные программы, а класс работает над ними, чтобы получить опыт. В настоящее время у инструктора есть клиенты, заполняющие листок бумаги с указанием их имени, номера телефона и компьютера (ов). Тем не менее, он хотел бы использовать страницу PHP, чтобы позволить студентам или самим оглянуться назад, чтобы узнать, что это за предыдущие предыдущие проблемы (если они есть). Я использую PDO и подготовленные инструкции для запроса базы данных, но мне трудно понять, как получить количество записей, возвращаемых подготовленным оператором. Я пробовал использовать stmt_num_rows, но он, похоже, не работает. Вот код, который у меня есть до сих пор:
$custID = $_GET["id"];
$compID = $_GET["compID"];
$stmtIssues = $db->prepare("SELECT IssueID, DateRequested, Issue, ActionsTaken FROM ISSUES WHERE ComputerID=:compID AND CustomerID=:custID ORDER BY DateRequested");
$stmtIssues->bindParam(":custID", $custID);
$stmtIssues->bindParam(":compID", $compID);
$stmtIssues->execute();
$numIssues = stmt_num_rows($stmtIssues);
Правильно ли я это делаю?
Всем приветствуется всяческая помощь.
Крис
Вы могли бы сделать несколько вещей:
Решение первое, если вы просто хотите подсчет, пусть база данных будет считаться для вас:
$stmtIssues = $db->prepare("SELECT COUNT(IssueID) FROM ISSUES WHERE ComputerID=:compID AND CustomerID=:custID ORDER BY DateRequested");
$stmtIssues->bindParam(":custID", $custID);
$stmtIssues->bindParam(":compID", $compID);
$stmtIssues->execute();
$numIssues = $stmtIssues->fetchColumn();
Решение второе, если вы собираетесь отображать результаты в дополнение к счету:
$stmtIssues = $db->prepare("SELECT IssueID, DateRequested, Issue, ActionsTaken FROM ISSUES WHERE ComputerID=:compID AND CustomerID=:custID ORDER BY DateRequested");
$stmtIssues->bindParam(":custID", $custID);
$stmtIssues->bindParam(":compID", $compID);
$stmtIssues->execute();
$rows = $db->fetchAll();
$numIssues = count($rows);
foreach ($rows as $row) {
echo $row['IssueID']; // you can add other columns and/or formatting here too.
}
Решение одно быстрее и возвращает только счет. Решение второе, с другой стороны, возвращает все детали, которые вы можете отобразить.