try {
$dbh = new PDO('mysql:host=localhost;dbname=wqposts', 'root', '');
$query = "SELECT wqpid FROM threads WHERE posted ='0'";
$randomids = '';
foreach ($dbh->query($query) AS $row) {
$randomids[] .= $row['wqpid'];
}
} catch (PDOException $exception) {
echo "Connection error: " . $exception->getMessage();
}
$post = array_rand($randomids, 1);
try {
$dbh = new PDO('mysql:host=localhost;dbname=wqposts', 'root', '');
$stmt = $dbh->prepare("SELECT * FROM threads WHERE wqpid = :wqpid");
$stmt->bindParam(':wqpid', $post, PDO::PARAM_INT);
$stmt->execute();
while ($row = $stmt->fetch()) {
//output html
}
Как-то WHERE опубликовано = '0' в первом утверждении не работает, потому что результаты во втором выражении, где отправлено = 1, отображаются.php mysql где статья
Если я запустил select * from threads where posted=0;
в mysql, я вижу 400-500 результатов, которые являются правильными. В случае, если это необходимо Размещенное TinyInt с длиной 1.
Не уверен, что вы пытаетесь сделать с линией '$ randomids [] = $ строки [ 'wqpid'];', но '[]' означает, что вы добавляете значение в массив, поэтому вы просто превратили $ randomids в массив после инициализации его как пустой строки. Затем вы используете оператор '. =', Который является конкатенатором строк. Я не знаю, каков конечный результат, но я не думаю, что это то, что вы пытаетесь сделать. – Travesty3