[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Циклы в PHP
maax
Был вот такой код в одном файле index.php который брал из таблицы test записи и выводил их в цикле, в этой же таблице хранится ид юзера который оставил эту запись ,по этому иду делал второй запрос в таблицу users что бы получить имя аватарку и т д

вот старый код который вроде бы работал как надо

<?php
$datesite = date("Y-m-d H:i:s");
$result = $cnt->prepare("SELECT * FROM test where `datetime` >= ? ORDER BY id DESC");
$result->bindParam(1, $datesite);
$result->execute();
while($myrow = $result->fetch())
{
$text = htmlspecialchars(stripslashes($myrow['text']));

$posterid = $myrow['posterid'];

$users = $cnt->prepare("SELECT * FROM users WHERE id = ?");
$users->bindParam(1, $posterid);
$users->execute();
$usersres = $users->fetch();

$name = htmlspecialchars(stripslashes($usersres['name']));

?>

<div class="text"><?php echo $text ?></div>
<
div class="name"><?php echo $name ?></div>
<?php } ?>


и вот наткнулся на то что щас лучше все запросы писать через ООП ,все хранить в одном файле, создал class.php и начал туда все переносить

и получилось что то типо того


namespace Auth;

class User
{
public function test()
{
$datesite = date("Y-m-d H:i:s");

$result = $this->db->prepare("SELECT * FROM test where `datetime` >= ? ORDER BY `datetime`");
$result->bindParam(1, $datesite);
$result->execute();

return $result;
}


public function users()
{
$test = $this->test();
$result = $test->fetch();
$posterid = $result["posterid"];

$users = $this->db->prepare("SELECT * FROM users WHERE id = ?");
$users->bindParam(1, $posterid);
$users->execute();

return $users;
}
}



а в тот же index.php получился вот такой код

<?php
$glclass = new Auth\User;
$test = $glclass->test();

while($myrow = $test->fetch())
{
$text = htmlspecialchars(stripslashes($myrow['text']));


$users = $glclass->users();
$usersres = $users->fetch();

$name = htmlspecialchars(stripslashes($usersres['name']));
?>

<div class="text"><?php echo $text ?></div>
<
div class="name"><?php echo $name ?></div>
<?php } ?>


он так же выводит все в цикле но уже не хочет показывать аватарки и имя юзеров иды которых указаны в таблице test ,если я там любые иды буду писать в ручную он выводит все записи под именем одного и того же юзера, допустим вывел он 2 записи которые написал я и мой друг, но почему то имя везде только мое, в первом варианте все работало ,не могу найти ошибку
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.