Jump to content
  • 0

Помогите пожалуйста со скриптом.


maddogmc
 Share

Question

Пытаюсь выполнить простую задачу.

Создаю базу but в ней таблицу:

CREATE TABLE but 
(id tinyint(4) NOT NULL AUTO_INCREMENT,
prof1 varchar(20), prof2 varchar(20), prof3 varchar(255),
PRIMARY KEY (id), UNIQUE id (id));

Далее скрипт должен внести в таблицу три заполняемых строки!

<?php
if ($submit)
{
// process form
$db = mysql_connect("localhost", "root", "pass");
mysql_select_db("but",$db);

$sql = "INSERT INTO but (prof1, prof2, prof3)
VALUES ('$prof1','$prof2','$prof3')";

$result = mysql_query($sql);

echo "Готово";
} else{
// display form
?>

<form method="post" action="<?php echo $PHP_SELF?>">
Тест1 <input type="text" name="prof1">

Тест2 <input type="text" name="prof2">

Тест3 <input type="text" name="prof3">

<input type="Submit" name="submit" value="ok">
</form>
<?php
}
// end if
?>

Но в базе ничего не появ

ляется. (

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0
if ($submit)

а откуда берется эта переменная? что-то не увидел...

если имелось в виду нажатие кнопки name="submit", ее надо перехватывать иначе:

if($_POST['submit'])

аналогично с остальными полями, т.к. из представленного кода переменные будут пустыми

Link to comment
Share on other sites

  • 0

Я не программист, только учусь. Но поробую помочь. Кто ж нам, новичкам поможет, если мы сами друг другу не поможем =)

Давайте Ваш код разберем по частям.

 if ($submit)

Это уже было прокомментировано уважаемым D.S.Denton

Я пишу так:

if ($_POST[submit] == "Submit")

Далее. Коннектимся к бд

$db = mysql_connect("localhost", "root", "pass");
mysql_select_db("but",$db);

Задаем переменную с SQL-коммандой (ее я разбирать не буду - оставлю на Вашей совести проверку правильности):

 $sql = "INSERT INTO but (prof1, prof2, prof3) 
VALUES ('$prof1','$prof2','$prof3')";

Выполняем:

$result = mysql_query($sql);

Тут явно забыли указать путь к бд - переменную $db Я бы написал так:

$result = @mysql_query($sql, $db );

Вот.

А еще есть способ нахождения ошибок, который мне помогал не раз. Берем каждую переменную и смотрим ее текущее значение. Например:

$db = mysql_connect("localhost", "root", "pass");
echo "$db";

Вот типа того.

Link to comment
Share on other sites

  • 0

Спасибо всем за помощь. Но есть проблема. В Firefox скрипт работает и добавляет данные в таблицы MYSQL, а в других браузерах нет (IE, OPERA) в чем может быть проблема?

<?php
if($_POST["razdel"])
{
$error="ошибка:";
$razdel=$_POST["razdel"];
$city=$_POST["city"];
$uin=$_POST["uin"];
if(strcmp((float)$uin,$uin))
{$error.="Некорректный UIN.
";
}
if($error!="ошибка:")
{print "<center class="t">$error</center> ";
}
else
{

$link = mysql_connect("localhost", "root","") or die("Could not connect");
mysql_select_db("db_bot") or die("Could not select database");
$sql = "INSERT INTO table_users ( razdel, city, uin) VALUES ("$razdel', '$city','$uin' )";

$result = mysql_query($sql) or die("Query failed");;
mysql_close($link);
Header("Location: index.php");
}
}
?>
<html>
<HEAD>
<META http-equiv=content-type content="text/html; charset=windows-1251">
<style>
.t2{ FONT-SIZE: 14px; color: black; FONT-FAMILY: Verdana, Helvetica, Arial; display:block; text-align: right;}
.t{ FONT-SIZE: 14px; color: red; FONT-FAMILY: Verdana, Helvetica, Arial; }
</style>
</HEAD>
<body >




<form action="in.php" method="post" name="frt" >

<div id="layer1">
<table align="center">

<tr><td class="t2" border="0">Раздел</td>
<td>
</td></tr>
<tr><td class="t2">Раздел</td>
<td> <input type="text" size="22" maxlength="15" name="razdel" id="razdel" value="<?php echo $_POST["razdel"]?>"></td></tr>
<tr><td class="t2">Город</td>
<td> <input type="text" size="22" maxlength="15" name="city" id="city" value="<?php echo $_POST["city"]?>"></td></tr>
<tr><td class="t2">UIN</td>
<td> <input type="text" size="22" minlength ="4" maxlength="15" name="uin" id="uin" value="<?php echo $_POST["uin"]?>"></td></tr>

<tr><td colspan="2" align="center"><input type="submit"; name="vvod"; value="Регистрация"; ></td></tr>

</table>
</div>
<style>
#layer1 {
background: #d4e6c7; width: 300; height: 200; border: 1px solid black; padding: 5px;}
</style>
</body>
</html>

Link to comment
Share on other sites

  • 0

У тебя Parse error в сроке 19

$sql = "INSERT INTO table_users ( razdel, city, uin) VALUES ("$razdel', '$city','$uin' )";

Перепутал ковычку

И потом ты пишешь

if($_POST["razdel"])

логичней использовать функцию isset() которая возвращает true если переменная существует или false если нет

if(isset($_POST["razdel"]))

И потом непонятно что ты хочешь сделать в форме вставляя в value <?php ?> такие вставки, value - показывает что будет находится в этой области, поэтому лучше просто написать "Введите город", "Укажите UIN"

Link to comment
Share on other sites

  • 0
я бы добавил в форму скрытое поле а в пхп скрипте проверял бы его. Тогда уж точно форма была отправлена.

ни к чему добавлять лишнее поле, ведь кнопка сабмита это тоже инпут. потому просто добавляем к ней name и в $POST появятся новая пара name=value от этого инпута

Link to comment
Share on other sites

  • 0

проверка на кнопку - это верно, в случае если в будущем вдруг надо срочно сменить название на кнопке или name кнокпи - то попутно надо рыскать по пхп коду где все эти проверки. А скрытыми полями можно унифицировать все формы сайта, завести скажем серию констант, а потом подставлять их значения в скрытое поле action например.

define("USER_REGISTER", 12);

define("USER_LOGIN", 17);

define("USER_OPTIONS", 24);

а при создании формы

...

echo ' ...

.... ';

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy