[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP БД - MySQL Телефонный справочник
alex_uni
Здравствуйте! По обучающему курсу пишу телефонный справочник, но никак не могу разобраться в чем беда: функция на странице удаления контактов срабатывает через раз. после манипуляций над данными все страницы, в том числе и главная (кроме edit.php) сами не обновляют актуальную информацию (только по клику f5)
Буду благодарен за помощь! Сам код привожу.


conn.php - Подключение к БД
<?php

define('DB_HOST', 'localhost');
define('DB_USER', 'user');
define('DB_PASS', '111');
define('DB_NAME', 'personal');

mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Нет подключения к серверу");
mysql_select_db(DB_NAME) or die("Невозможно выбрать БД");
mysql_set_charset('utf8') or die("Не установлена кодировка");

?>


menu.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 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 session_start(); ?>
<?php
require_once 'conn.php' ?>
<?php
require_once 'libs.php' ?>
<?php


if($_POST['submit']){
$name = trim(mysql_real_escape_string($_POST['name']));
$phone = trim(mysql_real_escape_string($_POST['phone']));
$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(empty($error)){
if(newContact($name, $phone, $age)){
$_SESSION['res'] = '<p>Добавлено!</p>';
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}else{
$_SESSION['res'] = '<p>Ошибка!</p>';
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}
}
else{
$_SESSION['res'] = $error;
$_SESSION['name'] = $name;
$_SESSION['phone'] = $phone;
$_SESSION['age'] = $age;
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}
}


?>

<?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'];
session_unset();
session_destroy();
?>


del.php - удаление контакта
<?php require_once 'conn.php' ?>
<?php
require_once 'libs.php' ?>
<?php


if(isset($_GET['id'])){
$id = (int)$_GET['id'];
delContact($id);

header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}

?>

<?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 session_start(); ?>
<?php
require_once 'conn.php' ?>
<?php
require_once 'libs.php' ?>
<?php


if($_POST['submit']){
$id = (int)$_POST['id'];
$name = trim(mysql_real_escape_string($_POST['name']));
$phone = trim(mysql_real_escape_string($_POST['phone']));
$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(empty($error)){
if(editContact($id, $name, $phone, $age)){
$_SESSION['res'] = '<p>Изменено!</p>';
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}else{
$_SESSION['res'] = '<p>Ошибка или Вы ничего не меняли!</p>';
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}
}
else{
$_SESSION['res'] = $error;
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}
}


?>

<?php
require_once 'menu.php' ?>
<?php


if(isset($_GET['id'])){
$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
exit;
}

?>



<?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'];
session_unset();
session_destroy();
?>


libs.php - функции
<?php

// показ абонентов
function showAll(){
$query = "SELECT * FROM phone ORDER BY id";
$res = mysql_query($query);

$data = array();
while($row = mysql_fetch_assoc($res)){
$data[] = $row;
}
return $data;
}

// показ конкрентного абонента
function showContact($id){
$query = "SELECT * FROM phone WHERE id = $id";
$res = mysql_query($query);

$row = mysql_fetch_assoc($res);
return $row;
}

// изменение данных абонента
function editContact($id, $name, $phone, $age){
$query = "UPDATE phone SET name = '$name', phone = '$phone', age = $age WHERE id = $id";
$res = mysql_query($query);

if(mysql_affected_rows() > 0)
return TRUE;
else
return
FALSE;
}

// добавление абонента
function newContact($name, $phone, $age){
$query = "INSERT INTO phone (name, phone, age) VALUES ('$name', '$phone', $age)";
$res = mysql_query($query);

if(mysql_affected_rows() > 0)
return TRUE;
else
return
FALSE;
}

// удаление абонента
function delContact($id){
$query = "DELETE FROM phone WHERE id = $id";
mysql_query($query);
}


?>
Быстрый ответ:

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