Хорошо, поэтому я не совсем понял, как сформулировать вопрос, но я работаю над проектом, и часть проекта должна отображать историю результатов для конкретного пользователя (пользователь является столбцом в таблице). Моя конечная цель: пользователь был несколько раз запрещен, и я хочу отобразить все запреты для этого конкретного пользователя. Но я не могу понять, как это сделать.
Это часть кода, где я хочу отображать результаты:
<?php
echo '<li>
<div>
<p>'.$row['banDate'].'</p>
<p>'.$row['banReason'].'</p>
<p>'.$row['banLength'].'</p>
</div>
</li>';
}
?>
И я хочу, чтобы результат этих строк был связан с. $ Row ['pName']. Вот мой запрос sql:
$db = new PDO("mysql:host=".DBHOST.";port=3306;dbname=".DBNAME, DBUSER, DBPASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = ('SELECT UUID, pName, isBanned, pRank FROM bans WHERE pName = :pName');
$stmt_1 = $db->prepare($query);
$stmt_1->execute(array(':pName' => $_GET['name']));
$row = $stmt_1->fetch();
Игнорируйте ГДЕ, чтобы просмотреть каждого пользователя.
Запреты будут храниться в базе данных SQL, подключенной к серверу Minecraft. Я пробовал все, но я все еще в тупике.
Ну, столбцы, которые вы пытаетесь использовать, у вас нет в вашем списке выбора, поэтому сначала вам нужно настроить свой запрос:
SELECT UUID, pName, isBanned, pRank, banLength, banReason, banDate FROM bans WHERE pName = :pName
Затем, чтобы вывести все строки, вам нужно выполнить петлю по вашим результатам или вызвать fetchAll и перебрать по массиву. Я бы зациклился на результатах stat, но, поскольку потенциально может быть много результатов, и у вас, похоже, нет причин для их извлечения:
<?php
$db = new PDO("mysql:host=".DBHOST.";port=3306;dbname=".DBNAME, DBUSER, DBPASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$stmt = $db->prepare('SELECT UUID, pName, isBanned, pRank, banLength, banReason, banDate FROM bans WHERE pName = :pName');
$stmt->execute(array(':pName' => $_GET['name']));
} catch (PDOException $e) {
// do something if you have an exception thrown
echo $e->getMessage();
exit();
}
?>
<?php if ($stmt->rowCount() < 1): ?>
<p>No bans for user</p>
<?php else: ?>
<ul>
<?php while (false !== ($row = $stmt->fetch(PDO::FETCH_ASSOC))): ?>
<li>
<div>
<p><?php echo $row['banDate'] ?></p>
<p><?php echo $row['banReason'] ?></p>
<p><?php echo $row['banLength'] ?></p>
</div>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
JOIN
как: SELECT b.UUID, b.pName, b.isBanned, b.pRank, d.banLength, d.banReason, d.banDate FROM bans b JOIN banDetails d ON (d.UUID = b.UUID) WHERE d.UUID - b.UUID AND b.pName = :pName
Вам просто нужен столбец, который связывает обе таблицы друг с другом, обычно через формальный FOREIGN KEY
ограничение
banLength
,banReason
иbanDate
в таблице или находятся в другой таблице?