Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Нужна помощь с кодом

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не выполняется часть кода с обновлением данных в БД
Studesha
Отправлено: 08 Июля, 2016 - 23:41:21
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Учу пхп по Кевину Янку. В книге есть пример создания CMS для управления данными в БД.
Ниже я приведу содержимое index.php и остальных подключаемых файлов,не могу найти ошибку, при выполнении вылазит ошибка:
Object not found!

The requested URL was not found on this server. The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error.

If you think this is a server error, please contact the webmaster.

Error 404

localhost
Apache/2.4.16 (Win32)

index.php

<?php
include 'DB.inc.php';
try
{
$result = $pdo->query('SELECT id, name FROM author');
}
catch (PDOException $e)
{
$error = 'Ошибка при извлечении авторов из базы данных!';
include 'error.html.php';
exit();}
foreach ($result as $row)

{ $authors[] = array('id' => $row['id'], 'name' => $row['name']);}

include 'authors.html.php';

if (isset($_POST['action'])&&$_POST['action'] =='Удалить'){

try {
$sql = 'SELECT id FROM joke WHERE authorid = :id';
$s = $pdo->prepare($sql);
$s->bindValue(':id', $_POST['id']);
$s->execute();
} catch (PDOException $e) {
$еггог = 'Ошибка при получении списка шуток, которые нужно удалить.';
include 'error.html.php';
exit();
}
$result = $s->fetchAll();
// Удаляем записи о категориях шуток,
try {
$sql = 'DELETE FROM jokecategory WHERE jokeid = :id';
$s = $pdo->prepare($sql);
// Для каждой шутки
foreach ($result as $row)
{ $jokeid = $row['id'];
$s->bindValue(':id', $jokeid);
$s->execute();
}
} catch (PDOException $e) {
$error = 'Ошибка при удалении записей о категориях шутки.';
include 'error.html.php';
exit();
}
// Удаляем шутки, принадлежащие автору,
try {
$sql = 'DELETE FROM joke WHERE authorid = :id';
$s = $pdo->prepare($sql);
$s->bindValue(':id', $_POST['id']);
$s->execute();
} catch (PDOException $e) {
$error = 'Ошибка при удалении шуток, принадлежащих автору.';
include 'error.html.php';
exit();
}
// Удаляем имя автора,
try {
$sql = 'DELETE FROM author WHERE id = :id';
$s = $pdo->prepare($sql);
$s->bindValue(':id', $_POST['id']);
$s->execute();
} catch (PDOException $e) {
$error = 'Ошибка при удалении автора.';
include 'error.html.php';
exit();
}
header('Location: . ');
exit();
}
if (isset($_GET['add']))
{
$pageTitle = 'Новый автор';
$action = 'addform';
$name = '';
$email = '';
$id = '';
$button = 'Добавить автора';
include 'form.html.php';
exit();}
if (isset($_POST['add']))
{
include_once 'DB.inc.php';
try {
$sql = 'INSERT INTO author SET
name = :name,
email = :email';
$s = $pdo->prepare($sql);
$s->bindValue(':name', $_POST['name']);
$s->bindValue(':email', $_POST['email']);
$s->execute();
}
catch (PDOException $e)
{
$error = 'Ошибка при добавлении автора.';
include 'error.html.php';
exit();}

header('Location: . ');
exit();
}
if (isset($_POST['action'])&&$_POST['action'] == 'Редактировать') {
include_once 'DB.inc.php';
try {
$sql = 'SELECT id, name, email FROM author WHERE id = :id';
$s = $pdo->prepare($sql);
$s->bindValue(':id', $_POST['id']);
$s->execute();
} catch (PDOException $e) {
$error = 'Ошибка при извлечении информации об авторе.';
include 'error.html.php';
exit ();
}
$row = $s->fetch();
$pageTitle = 'Редактировать автора';
$action = 'editform';
$name = $row['name'];
$email = $row['email'];
$id = $row['id'];
$button = 'Обновить информацию об авторе';

include 'form.html.php';
exit();
}
if (isset($_GET['editform']) )
{
include 'DB.inc.php';
try
{
$sql = 'UPDATE author SET
name = :name,
email = :email
WHERE id = :id';
$s = $pdo->prepare($sql);
$s->bindValue('rid', $_POST['id']);
$s->bindValue(':name', $_POST['name']);
$s->bindValue(':email', $_POST['email']);
$s->execute();
}
catch (PDOException $e)
{
$error = 'Ошибка при обновлении записи об авторе.';
include 'error.html.php';
exit();}
header('Location: . ');
exit();}

authors.html.php

<?php include_once 'helper.inc.php'; ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="Utf-8">
<title>Управление авторами</title>
</head>
<body>
<h1>Управление авторами</h1>
<p> <a href ="?add">Добавить нового автора</a></p>
<ul>
<?php foreach ($authors as $author): ?>
<li>
<form action="" method="post">
<div>
<?php htmlout ($author['name'])?>
<input type="hidden" name="id" value="<?php
echo $author['id']; ?>">
<input type="submit" name="action" value="Редактировать" onclick="return confirm ('Подтвердите действие')">
<input type="submit" name="action" value="Удалить" onclick="return confirm ('Вы точно хотите удалить автора и все его шутки?')">
</div>
</form>
</li>
<?php endforeach; ?>
</ul>
<p><a href=". . ">Вернуться на главную страницу</a></p>
</body>
</html>

DB.inc.php

<?php
try{
$pdo = new PDO('mysql:host=localhost;dbname=JDB','Studesha',
'************') ;
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('SET NAMES "utf8"');}
catch (PDOException $e){
$error= 'Невозможно подключится к базе данных'.$e->getMessage();
include 'error.html.php';
exit();
}
$error = 'Соединение с базой данных установлено.';
include 'error.html.php';

error.html.php

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Joke</title>
</head>
<body>
<p><?php echo $error; ?></p>
</body>
</html>

form.html.php
<?php include_once 'helper.inc.php'?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?php htmlout($pageTitle); ?></title>
</head>
<body>
<h1><?php htmlout($pageTitle); ?></h1>
<form action="<?php htmlout($action);?>" method="post">
<div>
<label for="name">Имя: <input type="text" name="name"
id="name" value="<?php htmlout($name); ?>"></label>
</div>
<div>
<label for="email">Электронная почта: <input type="text"
name="email"
id="email" value="<?php htmlout($email); ?>"></label>
</div>
<div>
<input type="hidden" name="id" value="<?php
htmlout($id); ?>">
<input type="submit" value="<?php htmlout( $button); ?>">
</div>
</form>
</body>
</html>

helper.inc.php
<?php
function html($text){
return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
}
function htmlout ($text){
echo html($text);
}

Помогите пожалуйста, очень хочу понять, где я ошибся.
(Добавление)
Да, забыл упомянуть, код в части удаления данных работает, а вот добавления и редактирования нет.
 
 Top
igosja
Отправлено: 11 Июля, 2016 - 09:29:53
Post Id



Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Март 2013  
Откуда: https://vhol.org


Помог: 3 раз(а)




The requested URL was not found on this server. - Это неошибка в php коде. Сервер не может найти нужный url. Сверте адрес папки, в которой лежат файлы с адресом Document Root, который указан в настройках apache/nginx для вашего домена.
 
 Top
Studesha
Отправлено: 12 Июля, 2016 - 22:24:20
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




igosja пишет:
The requested URL was not found on this server. - Это неошибка в php коде. Сервер не может найти нужный url. Сверте адрес папки, в которой лежат файлы с адресом Document Root, который указан в настройках apache/nginx для вашего домена.



Дело не в этом, меня самого удивляет. Куча операций с БД работает, а эти нет.
 
 Top
Studesha
Отправлено: 13 Июля, 2016 - 10:05:55
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Проблема таки в коде была. Нашел ошибку.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB