|
|
|
| Задача:
Есть созданная база с темами рефератов. Студен может подписаться под темой, написав свою фамилию, но при этом надо чтоб повторная запись фамилии был запрещен.
Что уже есть:
выводятся данные Фамилия | ID | Название темы
но почему при заполнении формы данные в поле name не заносятся. Помогите решить проблему.
Заранее благодарен.
Делаю следующее:
#
# Структура таблицы `referat`
#
CREATE TABLE `referat` (
`id` int(2) NOT NULL auto_increment,
`title` varchar(255) default NULL,
`name` varchar(50) default NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=41 ;
INSERT INTO `referat` VALUES (1, 'Общественное питание и его место на потребительском рынке', '');
INSERT INTO `referat` VALUES (2, 'Проблемы и тенденции развития общественного питания', '');
(и т.д.)
show.php
<?PHP
error_reporting (E_ALL ^ E_NOTICE);
if($_GET['action'] == "add"){
include("1.php");
}
?>
<?php
$host = "localhost"; // Имя хоста
$port = "3306"; // Номер порта, 3306 - по умолчанию
$user = "root"; // Имя пользователя
$pass = "*******"; // Пароль
$dbnm = "plexa_ref"; // Имя Базы Данных
$h = ( empty( $port ) ) ? $host : $host . ":" . $port;
$db = mysql_connect( $host , $user , $pass );
// Соединяемся с Сервером Баз Данных
if( !$db ) // Если соединиться не удалось:
{
print ("Извиняй ошибка вышла");
// Пишем ошибку и завершаем выполнение скрипта.
exit();
}
// иначе выбираем Базу Данных для работы
if( ! mysql_select_db( $dbnm ) ) // Если нет такой БД
{
print ("Ваще нет такой базу че гонишь то??");
// Пишем ошибку и завершаем выполнение скрипта.
exit();
}
$res = mysql_query( "SELECT `*` FROM `referat`" );
while( $row = mysql_fetch_object( $res ) )
{ print "<br><a href=\"?action=add\">Фамилия:</a> " . $row -> name .", №: " . $row -> id . ", Тема: " . $row -> title . "."; }
?>
|
form.php
<html>
<body>
<form name="add" action="add.php" method="post">
Фамилия<br>
<input type="text" name="name">
<input type="submit" name="submit" value="Добавить">
</form>
</body>
</html>
|
add.php
<?
$host = "localhost"; // Имя хоста
$user = "root"; // Имя пользователя
$pass = "*****"; // Пароль
$dbnm = "plexa_ref"; // Имя Базы Данных
/* Соединение с сервером базы данных */
mysql_connect ($host, $user, $pass);
/* Выбор базы данных */
mysql_select_db($dbnm);
$a=$_GET['name'];
$e=$_GET['id'];
$sql="INSERT INTO ref (id, title, name) VALUES ('$e', '','$a')";
$result=mysql_query($sql);
echo "Спасибо! Информация изменена. <a href=\"show.php\">Назад</a>\n";
echo $_FILES['userfile']['error'];
?>
|
| |
|
|
|
|
|
|
|
для: nurv_ad
(28.02.2007 в 02:46)
| | наверно потомучто у Вас в форме стоит метод POST, а принимаете переменные скриптом add.php как методом GET | |
|
|
|
|
|
|
|
для: dert
(28.02.2007 в 08:52)
| | Исправил форму
<form name="add" action="add.php" method="GET">
Фамилия<br>
<input type="text" name="name">
<input type="submit" name="submit" value="Добавить">
</form>
так же
mysql_select_db($dbnm);
$a=$_GET['name'];
$e=$_GET['id'];
$sql="UPDATE ref SET name=$a WHERE (id = $e)";
$result=mysql_query($sql);
блин и все равно не пишет ни чего в базу... :( | |
|
|
|
|
|
|
|
для: nurv_ad
(28.02.2007 в 13:50)
| | А если так
mysql_select_db($dbnm);
$a=$_GET['name'];
$e=$_GET['id'];
$sql="UPDATE ref SET name='$a' WHERE id ='$e'";
$result=mysql_query($sql);
|
И вообще надо внести новую запись или изменить старую? | |
|
|
|
|
|
|
|
для: dert
(28.02.2007 в 14:50)
| | Нужно чтоб студент записал свою фамилию в базу к той теме которую хочет выбрать, запись производится удачно но вот вопрос как запретить повторную запись в поле., чтоб по запросу проверял а не занято ли уже поле если занято и есть фамилия сказать об этом
щас все объединил в один файл вот что получилось
<?php
$host = "localhost";
$port = "3306";
$user = "root";
$pass = "0000";
$dbnm = "plexa_ref";
$h = ( empty( $port ) ) ? $host : $host . ":" . $port;
$db = mysql_connect( $host , $user , $pass );
if( !$db )
{
print ("error !");
exit();
}
if( ! mysql_select_db( $dbnm ) )
{
print ("error !");
exit();
}
$res = mysql_query( "SELECT * FROM referat" );
while( $row = mysql_fetch_object( $res ) )
{ print "
<a href='?action=add&id=".$row->id."'><br>Фамилия:</a> " . $row->name .", №: " . $row->id . ", Тема: " . $row->title . "."; }
if($_GET['action'] == "add"){
if ($_GET['name'])
else
{
exit ("Извините но фамилия уже существует. <a href='./show.php'>Вернуться</a>");
}
else
{
{
echo "
<html>
<body>
<form name='add' action='add.php' method='post'>
Фамилия
<input type='hidden' name='id' value=".$_POST['id'].">
<input type='text' name='name'>
<input type='submit' name='submit' value='Добавить'>
</form>
</body>
</html>";
}
}
else
{
@$a=$_POST['name'];
@$e=$_POST['id'];
$sql="INSERT INTO ref (id, title, name) VALUES (NULL, '','$a')";
//$sql = "UPDATE referat SET name = '".$a."' WHERE id=".$e;
$result=mysql_query($sql);
echo "Информация изменена. <a href='show.php'>Назад</a>\n";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: nurv_ad
(01.03.2007 в 01:03)
| | Возможны ошибки.
<?php
{
@$a=$_POST['name'];
@$e=$_POST['id'];
$search_name = mysql_query( "SELECT * FROM ref WHERE name = '".$a."'" );
if(mysql_num_rows($search_name) == 0) {
$sql="INSERT INTO ref (id, title, name) VALUES (NULL, '','$a')";
//$sql = "UPDATE referat SET name = '".$a."' WHERE id=".$e;
$result=mysql_query($sql);
echo "Информация изменена. <a href='show.php'>Назад</a>\n";
}
} else { echo "Пользователь уже существует!"; }
?>
|
| |
|
|
|
|
|
|
|
для: mr Bin
(01.03.2007 в 01:55)
| |
о большое тем кто помогает.
Блин где то косяк а чтот не знаю почему, он все равно добавляет данные, может дело уже не в скрипте, может с базой что не так, ведь поля name стоит NULL а в самом поле пусто.
Посмотрите весь скрипт, пожалуйста я уже и не знаю где ошибки искать.
[code=php]
<?php
$host = "localhost";
$port = "3306";
$user = "root";
$pass = "000";
$dbnm = "plexa_ref";
$h = ( empty( $port ) ) ? $host : $host . ":" . $port;
$db = mysql_connect( $host , $user , $pass );
if( !$db )
{
print ("error !");
exit();
}
if( ! mysql_select_db( $dbnm ) )
{
print ("error !");
exit();
}
$res = mysql_query( "SELECT * FROM referat" );
while( $row = mysql_fetch_object( $res ) )
{ print "
<a href='?action=add&id=".$row->id."'><br>Фамилия:</a> " . $row->name .", №: " . $row->id . ", Тема: " . $row->title . "."; }
if($_GET['action'] == "add"){
if ($_GET['name'])
else
{
exit ("Извините но фамилия уже существует. <a href='./show.php'>Вернуться</a>");
}
else
{
{
echo "
<html>
<body>
<form name='add' action='add.php' method='post'>
Фамилия
<input type='hidden' name='id' value=".$_POST['id'].">
<input type='text' name='name'>
<input type='submit' name='submit' value='Добавить'>
</form>
</body>
</html>";
}
}
?>
<?php
{
@$a=$_POST['name'];
@$e=$_POST['id'];
$search_name = mysql_query( "SELECT * FROM ref WHERE name = '".$a."'" );
if(mysql_num_rows($search_name) == 0) {
$sql="INSERT INTO ref (id, title, name) VALUES (NULL, '','$a')";
//$sql = "UPDATE referat SET name = '".$a."' WHERE id=".$e;
$result=mysql_query($sql);
echo "Информация изменена. <a href='show.php'>Назад</a>\n";
}
} else { echo "Пользователь уже существует!"; }
?>
|
| |
|
|
|
|
|
|
|
для: nurv_ad
(01.03.2007 в 04:04)
| | Ну надо тогда выбрать из базы поле фамилия для этого реферата, и если оно существует то выдать ошибку, если нет то внести введеные данные, В чем проблема то, может я чегото не так понимаю? | |
|
|
|
|
|
|
|
для: nurv_ad
(28.02.2007 в 02:46)
| |
Помогите найти ошибку
[code=php]
if($_GET['action'] == "add"){
//------------------
$name = mysql_escape_string($_POST['name']);
$sql = "select count(*) as c from referat where name='$name'";
$result=mysql_query($sql);
$row = mysql_fetch_object( $result );
if ($row->c == '0')
{
//Все нормально, такого имени нету.
echo "
<form name='add' action='add.php' method='post'>
Фамилия
<input type='hidden' name='id' value=".$_POST['id'].">
<input type='text' name='name'>
<input type='submit' name='submit' value='Добавить'>
</form>
";
@$a=$_POST['name'];
@$e=$_POST['id'];
$sql="INSERT INTO referat (id, title, name) VALUES (NULL, '','$a')";
echo ("Информация изменена. <a href='show.php'>Назад</a>\n");
}
else
{
//Ошибка, уже есть.
exit ("<br><B><span style='color: red';>Извините но фамилия уже существует</span></B> <a href='123.php'>Вернуться</a>");
}
}
|
| |
|
|
|