Ответов: 4 Просмотров: 5844
|
Здравствуйте! По обучающему курсу пишу телефонный справочник, но никак не могу разобраться в чем беда: функция на странице удаления контактов срабатывает через раз. после манипуляций над данными все страницы, в том числе и главная (кроме edit.php) сами не обновляют актуальную информацию (только по клику f5)
Буду благодарен за помощь! Сам код привожу.
conn.php - Подключение к БД
menu.php - верхнее меню
PHP:
скопировать код в буфер обмена
<a href="index.php">Главная</a> | <a href="new.php">Добавление</a> | <a href="del.php">Удаление</a> | <a href="edit.php">Редактирование</a> <hr />
index.php - главная
PHP:
скопировать код в буфер обмена
<?PHP require_once 'conn.php' ?> <?PHP require_once 'libs.php' ?> <?PHP require_once 'menu.php' ?> <!DOCTYPE html> <html> <head> <title>Personal</title> </head> <body> <?PHP $result = showAll(); ?> <table border="1" width="300"> <tr> <td>№ п/п</td> <td>Имя:</td> <td>Телефон:</td> <td>Возраст:</td> </tr> <?PHP $i = 1; foreach($result as $item){ ?> <tr> <td><?=$i?></td> <td><?=$item['name']?></td> <td><?=$item['phone']?></td> <td><?=$item['age']?></td> </tr> <?PHP $i++; } ?> <tr> <td colspan="3">Всего:</td> <td><?PHP echo $i - 1; ?></td> </tr> </table> </body> </html>
new.php - добавление нового контакта
PHP:
скопировать код в буфер обмена
<?PHP require_once 'conn.php' ?> <?PHP require_once 'libs.php' ?> <?PHP if($_POST['submit']){ $age = trim((int )$_POST['age']); $error = ''; if(empty($name)) $error .= '<p>Не заполнено поле "Имя"</p>'; if(empty($phone)) $error .= '<p>Не заполнено поле "Телефон"</p>'; if(empty($age)) $error .= '<p>Не заполнено поле "Возраст"</p>'; if(newContact($name, $phone, $age)){ $_SESSION['res'] = '<p>Добавлено!</p>'; header('Location: ' . $_SERVER['PHP_SELF']); }else{ $_SESSION['res'] = '<p>Ошибка!</p>'; header('Location: ' . $_SERVER['PHP_SELF']); } }else{ $_SESSION['res'] = $error; $_SESSION['name'] = $name; $_SESSION['phone'] = $phone; $_SESSION['age'] = $age; header('Location: ' . $_SERVER['PHP_SELF']); } } ?> <?PHP require_once 'menu.php' ?> <form method="post"> <p>Имя *: <input type="text" name="name" value="<?PHP echo $_SESSION['name']; ?>" /></p> <p>Телефон *: <input type="text" name="phone" value="<?PHP echo $_SESSION['phone']; ?>" /></p> <p>Возраст *: <input type="text" name="age" value="<?PHP echo $_SESSION['age']; ?>" /></p> <p><input type="submit" name="submit" value="Добавить" /></p> </form> <?PHP echo $_SESSION['res']; ?>
del.php - удаление контакта
PHP:
скопировать код в буфер обмена
<?PHP require_once 'conn.php' ?> <?PHP require_once 'libs.php' ?> <?PHP $id = (int)$_GET['id']; delContact($id); header('Location: ' . $_SERVER['PHP_SELF']); } ?> <?PHP require_once 'menu.php' ?> <?PHP $result = showAll(); ?> <table border="1" width="300"> <tr> <td>№ п/п</td> <td>Имя:</td> <td>Телефон:</td> <td>Возраст:</td> </tr> <?PHP $i = 1; foreach($result as $item){ ?> <tr> <td><?=$i?></td> <td><a href="?id=<?=$item['id']?>"><?=$item['name']?></a></td> <td><?=$item['phone']?></td> <td><?=$item['age']?></td> </tr> <?PHP $i++; } ?> <tr> <td colspan="3">Всего:</td> <td><?PHP echo $i - 1; ?></td> </tr> </table>
edit.php - страница редактирования
PHP:
скопировать код в буфер обмена
<?PHP require_once 'conn.php' ?> <?PHP require_once 'libs.php' ?> <?PHP if($_POST['submit']){ $id = (int)$_POST['id']; $age = trim((int )$_POST['age']); $error = ''; if(empty($name)) $error .= '<p>Не заполнено поле "Имя"</p>'; if(empty($phone)) $error .= '<p>Не заполнено поле "Телефон"</p>'; if(empty($age)) $error .= '<p>Не заполнено поле "Возраст"</p>'; if(editContact($id, $name, $phone, $age)){ $_SESSION['res'] = '<p>Изменено!</p>'; header('Location: ' . $_SERVER['PHP_SELF']); }else{ $_SESSION['res'] = '<p>Ошибка или Вы ничего не меняли!</p>'; header('Location: ' . $_SERVER['PHP_SELF']); } }else{ $_SESSION['res'] = $error; header('Location: ' . $_SERVER['PHP_SELF']); } } ?> <?PHP require_once 'menu.php' ?> <?PHP $id = (int)$_GET['id']; $contact = showContact($id); ?> <form method="post"> <p>Имя *: <input type="text" name="name" value="<?=$contact['name']?>" /></p> <p>Телефон *: <input type="text" name="phone" value="<?=$contact['phone']?>" /></p> <p>Возраст *: <input type="text" name="age" value="<?=$contact['age']?>" /></p> <input type="hidden" name="id" value="<?=$contact['id']?>" /> <p><input type="submit" name="submit" value="Изменить" /></p> </form> <?PHP } ?> <?PHP $result = showAll(); ?> <table border="1" width="300"> <tr> <td>№ п/п</td> <td>Имя:</td> <td>Телефон:</td> <td>Возраст:</td> </tr> <?PHP $i = 1; foreach($result as $item){ ?> <tr> <td><?=$i?></td> <td><a href="?id=<?=$item['id']?>"><?=$item['name']?></a></td> <td><?=$item['phone']?></td> <td><?=$item['age']?></td> </tr> <?PHP $i++; } ?> <tr> <td colspan="3">Всего:</td> <td><?PHP echo $i - 1; ?></td> </tr> </table> <?PHP echo $_SESSION['res']; ?>
libs.php - функции
PHP:
скопировать код в буфер обмена
<?PHP // показ абонентов function showAll(){ $query = "SELECT * FROM phone ORDER BY id"; $data[] = $row; } return $data; } // показ конкрентного абонента function showContact($id){ $query = "SELECT * FROM phone WHERE id = $id"; return $row; } // изменение данных абонента function editContact($id, $name, $phone, $age){ $query = "UPDATE phone SET name = '$name', phone = '$phone', age = $age WHERE id = $id"; return TRUE; else return FALSE; } // добавление абонента function newContact($name, $phone, $age){ $query = "INSERT INTO phone (name, phone, age) VALUES ('$name', '$phone', $age)"; return TRUE; else return FALSE; } // удаление абонента function delContact($id){ $query = "DELETE FROM phone WHERE id = $id"; } ?>
|