Я пытаюсь создать систему для отображения информации из пользовательской базы данных, и она отобразит ее в таблице, однако проблема у меня есть pageload, и мне понадобятся три из них и Я думаю, что у меня был самый длинный путь. страница должна будет отображать получателя и тип, теперь в моей базе данных у меня есть 5 типов информации, и она в настоящее время подсчитывает их каждый, а затем отображает их как неплохие и помеченные. я могу использовать меньше MySQLИспользовать меньше запросов MySQLi
<?php
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$result = mysqli_query($conn,"SELECT *
FROM `user_flags`
ORDER BY user_flags.timestamp DESC
LIMIT 15");
?>
<tbody>
<?php
while($row = mysqli_fetch_assoc($result)) {
$GoodRepSql = mysqli_query($conn, "SELECT COUNT(*)
FROM user_flags
WHERE user_flags.recipient = {$row['recipient']}
AND type = 'Good Rep' ");
if ($GoodRepSql->num_rows > 0) {
while($goodrow = $GoodRepSql->fetch_assoc()) {
$GoodRep = $goodrow["COUNT(*)"] ;
}
} else {
$GoodRep = $goodrow["COUNT(*)"] ;
}
$BadRepSql = mysqli_query($conn, "SELECT COUNT(*)
FROM user_flags
WHERE user_flags.recipient = {$row['recipient']}
AND type = 'Bad Rep' ");
if ($BadRepSql->num_rows > 0) {
while($badrow = $BadRepSql->fetch_assoc()) {
$BadRep = $badrow["COUNT(*)"] ;
}
} else {
$BadRep = $badrow["COUNT(*)"] ;
}
$FlagSql = mysqli_query($conn, "SELECT COUNT(*)
FROM user_flags
WHERE user_flags.recipient = {$row['recipient']}
AND type IN ('Smurfing', 'Griefing', 'Suspicious')");
if ($FlagSql->num_rows > 0) {
while($flagrow = $FlagSql->fetch_assoc()) {
$Flags = $flagrow["COUNT(*)"] ;
}
} else {
$Flags = $flagrow["COUNT(*)"] ;
}
echo
"<tr onclick=\"document.location = '{$url}/{$row['recipient']}';\">
<td>{$Recipient->players->player->personaname}</td>
<td>{$BadRep}</td>
<td>{$GoodRep}</td>
<td>{$Flags}</td>
</tr>\n";
}
?>
добавить индекс в столбцы 'user_flags.recipient' и' user_flags.type', чтобы ускорить ваши запросы. –
Ваш отпечаток стиля может быть желательным ... Не возражаете, если я отредактирую ваш вопрос? – Mike
'if ($ GoodRepSql-> num_rows> 0) {' * et al * - Это не имеет смысла для запроса SELECT COUNT (*) '. У него никогда не будет 0 строк. Также в ваших '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''' '' '' ' – Mike