Я не уверен, делаю ли я это неправильно или нет, включая то, что я должен быть, но я использую rowCount()
чтобы попытаться подсчитать все строки в моей базе данных для результатов запроса, например так: $count_total_friend = $friend_stmt->rowCount();
, Результаты показывают 6, когда должно быть только 2. Кажется, что он считает все строки в моей базе данных, а не мои запрошенные результаты.
Что я делаю неправильно?
$friend_status = 2;
$friend_sql = "SELECT *
FROM friends
WHERE friend_one or friend_two = ?
AND status = ?
";
$friend_stmt = $con->prepare($friend_sql);
$friend_stmt->execute(array($user_id, $friend_status));
$friend_total_rows = $friend_stmt->fetchAll(PDO::FETCH_ASSOC);
$count_total_friend = $friend_stmt->rowCount();
foreach ($friend_total_rows as $friend_total_row) {
//$select_friend_1 = $friend_total_row['friend_one'];
//$select_friend_2 = $friend_total_row['friend_two'];
//$friend_status = $friend_total_row['status'];
//$friend_status_date = $friend_total_row['date'];
}
Возникла проблема с вашим запросом
SELECT *
FROM friends
WHERE friend_one or friend_two = ?
AND status = ?
Это должно быть что-то вроде
SELECT *
FROM friends
WHERE (friend_one = ? or friend_two = ?)
AND status = ?
Конечно, вам нужно будет связать правильные параметры
Других решений пока нет …