Juchi2011
Новичок
Попробуйте в реальности вызвать метод fetchAll();разве не надо дополнительно экранировать?
$sl = '\'%' . $_POST['sl'] . '%\'';
я с PDO еще не заморачивался, но возможно поможет)
Попробуйте в реальности вызвать метод fetchAll();разве не надо дополнительно экранировать?
$sl = '\'%' . $_POST['sl'] . '%\'';
я с PDO еще не заморачивался, но возможно поможет)
Здравствуйте!Ты родишь уже, какую ошибку тебе пишет fetchAll()?
Осмелюсь сказать в защиту этого кода.Ок, посмотрел на этот говнокод внимательно.
fetchAll() у тебя не работает потому что вызывается после оператора exit.
fetchAll() в твоем случае вызывать бесполезно, поскольку он вернёт ноль строк. Поскольку все строки из БД ты уже прочитал, выше, в массив $sch .
Следовательно, fetchAll(), вызывать после foreach не имеет смысла. Если ты будешь хотя бы немного думать над кодом, который пишешь, а не тупо копипастить его из говновидеокурсов, то сможешь догадаться что $sch - это и есть тот массив, коорый ты хочешь проверить на пустоту.
Поэтому в коде надо оставить что-то одно. Либо идиотский foreach, либо fetchAll().
Без процентов всё работает.Ок, посмотрел на этот говнокод внимательно.
fetchAll() у тебя не работает потому что вызывается после оператора exit.
fetchAll() в твоем случае вызывать бесполезно, поскольку он вернёт ноль строк. Поскольку все строки из БД ты уже прочитал, выше, в массив $sch .
Следовательно, fetchAll(), вызывать после foreach не имеет смысла. Если ты будешь хотя бы немного думать над кодом, который пишешь, а не тупо копипастить его из говновидеокурсов, то сможешь догадаться что $sch - это и есть тот массив, коорый ты хочешь проверить на пустоту.
Поэтому в коде надо оставить что-то одно. Либо идиотский foreach, либо fetchAll().
foreach ($s as $row)
{
$sch[] = array('id' => $row['id'], 'login' => $row['login'], 'email' => $row['email'], 'date' => $row['date']);
}
$sch = $s->fetchAll();
Если код идиотский, то не важно, кто его написал - обехьяна с пальмы или кевин янк из книжки. Он не перестает быть идиоским, если напечатан в книжке и много ещё где.
Код
Делает ровно то же самое, что иPHP:foreach ($s as $row) { $sch[] = array('id' => $row['id'], 'login' => $row['login'], 'email' => $row['email'], 'date' => $row['date']); }
Но поскольку является в разы боле труднывм для написания, то такую промстыню вместо двух слов может писать только идиот. Который не понимает, что делает.PHP:$sch = $s->fetchAll();
В чем проблема с твоими процентами никто не знает поскольку код который ты здесь написал отличается от того, который ты используешь.
Если осилишь написать реальный код я попробую понять, где именно ты накосячил
<?php
try
{
$pdo = new PDO('mysql: host=localhost; dbname=story', 'root', '');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('SET NAMES "utf8"');
}
catch (PDOException $e)
{
$error = 'Невозможно подключиться к серверу баз данных.';
// $error = 'Невозможно подключиться к серверу баз данных: ' . $e->getMessage();
include $_SERVER['DOCUMENT_ROOT'] . '/ws/story/html/error.php';
exit();
}
$output = 'Соединение с базой данных установлено.';
// include $_SERVER['DOCUMENT_ROOT'] . '/ws/story/html/output.php';
?>
<?php
include $_SERVER['DOCUMENT_ROOT'] . '/ws/story/scripts/dbconnect.php';
if (isset($_POST['searchword']))
{
if (htmlspecialchars($_POST['se'], ENT_QUOTES, 'UTF-8') == '')
{
$output = 'Заполните поле и повторите поиск.';
include $_SERVER['DOCUMENT_ROOT'] . '/ws/story/html/output.php';
exit();
}
try
{
$se = '%' . $_POST['se'] . '%';
$sql = 'SELECT id, login, email, date FROM users WHERE login LIKE :login';
$s = $pdo->prepare($sql);
$s->bindValue(':login', $se);
$s->execute();
}
catch (PDOException $e)
{
$error = 'Ошибка при извлечении данных.';
// $error = 'Ошибка при извлечении данных: ' . $e->getMessage();
include $_SERVER['DOCUMENT_ROOT'] . '/ws/story/html/error.php';
exit();
}
foreach ($s as $row)
{
$sch[] = array('id' => $row['id'], 'login' => $row['login'], 'email' => $row['email'], 'date' => $row['date']);
}
include $_SERVER['DOCUMENT_ROOT'] . '/ws/story/html/srch.php';
exit();
}
include $_SERVER['DOCUMENT_ROOT'] . '/ws/story/html/search.php';
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Поиск пользователя</title>
</head>
<body>
<h3>Поиск пользователя</h3>
<div class="search">
<form name="searchform" action="" method="post">
<div>
<label for="se">Поиск:</label>
<input type="text" name="se" placeholder="Поиск" value="">
<input type="submit" name="searchword" value="Найти">
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Результаты поиска</title>
</head>
<body>
<h3>Результаты поиска</h3>
<?php foreach ($sch as $user): ?>
<div>
<form action="" method="post">
<div>
<?php echo htmlspecialchars($user['id'], ENT_QUOTES, 'UTF-8'); ?>
<?php echo htmlspecialchars($user['login'], ENT_QUOTES, 'UTF-8'); ?>
<?php echo htmlspecialchars($user['email'], ENT_QUOTES, 'UTF-8'); ?>
<?php echo htmlspecialchars($user['date'], ENT_QUOTES, 'UTF-8'); ?>
<input type="hidden" name="id" value="<?php echo htmlspecialchars($user['id']); ?>">
<input type="submit" name="action" value="Редактировать">
<input type="submit" name="action" value="Изменить пароль">
<input type="submit" name="action" value="Удалить">
</div>
</form>
</div>
<?php endforeach; ?>
<p><a href="#" onclick="history.back();">Вернуться на предыдущую страницу</a></p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Список пользователей</title>
<?php include $_SERVER['DOCUMENT_ROOT'] . '/ws/story/containers/smoke.php'; ?>
</head>
<body>
<div><?php include $_SERVER['DOCUMENT_ROOT'] . '/ws/story/administrator/inc/search/index.php'; ?></div>
<p><a href="/ws/story/inc/adduser">Добавить нового пользователя</a></p>
<p>Все зарегистрированные пользователи, которые есть в базе данных:</p>
<p>
<?php foreach ($consumer as $users): ?>
<div>
<form name="consumer" action="" method="post">
<div>
<?php echo htmlspecialchars($users['id'], ENT_QUOTES, 'UTF-8'); ?>
<?php echo htmlspecialchars($users['login'], ENT_QUOTES, 'UTF-8'); ?>
<?php echo htmlspecialchars($users['email'], ENT_QUOTES, 'UTF-8'); ?>
<?php echo htmlspecialchars($users['password'], ENT_QUOTES, 'UTF-8'); ?>
<?php echo htmlspecialchars($users['date'], ENT_QUOTES, 'UTF-8'); ?>
</div>
<div><input name="id" type="hidden" value="<?php echo htmlspecialchars($users['id'], ENT_QUOTES, 'UTF-8'); ?>"></div>
<div>
<input name="edit" type="submit" value="Редактировать">
<input name="changepassword" type="submit" value="Изменить пароль">
<input name="remove" type="submit" value="Удалить">
</div>
</form>
</div>
<?php endforeach; ?>
</p>
</body>
</html>
$lv = $s->fetchAll();
if (count($lv) == 0)
{
$output = 'Такого логина нет в базе данных.';
include $_SERVER['DOCUMENT_ROOT'] . '/ws/story/html/output.php';
exit();
}
В данный момент выводится пустая страница.Если код идиотский, то не важно, кто его написал - обехьяна с пальмы или кевин янк из книжки. Он не перестает быть идиоским, если напечатан в книжке и много ещё где.
Код
Делает ровно то же самое, что иPHP:foreach ($s as $row) { $sch[] = array('id' => $row['id'], 'login' => $row['login'], 'email' => $row['email'], 'date' => $row['date']); }
Но поскольку является в разы боле труднывм для написания, то такую промстыню вместо двух слов может писать только идиот. Который не понимает, что делает.PHP:$sch = $s->fetchAll();
В чем проблема с твоими процентами никто не знает поскольку код который ты здесь написал отличается от того, который ты используешь.
Если осилишь написать реальный код я попробую понять, где именно ты накосячил
Кажется, с Вашей помощью получилось всё отредактировать.оформи код как код.
нажми ссылочку "редактировать" под своим сообщением, потом найди кнопку три точки (...) над формой, и вставляй код с ее помощью
С наступающим Новым годом! 2020!оформи код как код.
нажми ссылочку "редактировать" под своим сообщением, потом найди кнопку три точки (...) над формой, и вставляй код с ее помощью
Что не ясно в этих двух строчках?fetchAll(), вызывать после foreach не имеет смысла.
$sch - это и есть тот массив, коорый ты хочешь проверить на пустоту.
В вышеприведённом (последнем) коде я fetchAll() не вызывал. Посмотрите внимательно. В этом коде нет вызова метода fetchAll().Зачем ты все время добавляешь это fetchall?
Ты вообще читаешь что я пишу?
Например
Что не ясно в этих двух строчках?
При заданных условиях методом fetchAll() вывести сообщение не получается.Зачем ты все время добавляешь это fetchall?
Ты вообще читаешь что я пишу?
Например
Что не ясно в этих двух строчках?