[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Немогу записать данные в MySQL
Страницы: 1, 2, 3, 4
Diakon
Привет! Помогите понять в чем проблема.
Есть 2 файла - upload.html и action.php
Через upload.html пользователи заполняют маленькую форму и прикрепляют файл для отправки на сервер и action.php вызываемый upload.html это делает. Файл загружается нормально, но в таблицу MySql данные из формы не заносятся. Подскажите в чем проблема. Вот листинг:
Листинг upload.html:
...
<FORM action="action.php" id="medatasend" name="medatasend" ENCTYPE="multipart/form-data" method="post">
<p>Отображаемое имя файла. </p>
<INPUT type = "text" name="fname" value="" maxlength = "80" size = "20">
<br>
<p>Описание файла</p>
<TEXTAREA name="fname" value="" cols = "60" rows = "5"></TEXTAREA>
<br>
<p>Выберете файл</p>
<INPUT NAME="FILE" TYPE="file"><p></p>
<INPUT TYPE="submit" VALUE="Отправить">
</FORM>
...
Листинг action.php:
...
<?
...
//Загружаем данные в БД
$user="gorono";
$password="gorono";
$database="budgor";
if ($db=@mysql_connect("localhost",$user,$password)){
mysql_select_db($database);
echo "База данных найдена!";
$sql = "INSERT INTO upload (`id`, `filename`, `opisanie`, `filepatch`)
VALUES (NULL,'$fname', '$opisanie', '$fpatch')";
mysql_query($sql);}
else{
echo "<p>База данных не найдена! </p>";
}
mysql_close();

?>

Проблема в том, что в таблице upload не записываются данные из формы. При этом БД определяется и у пользователя есть все права. Кто может сказать в чем проблема? Я выполнял INSERT INTO upload (`id`, `filename`, `opisanie`, `filepatch`) VALUES (NULL,'$fname', '$opisanie', '$fpatch') через PHPMyAdmin и все работает. Но данные из формы upload.html непроходят. Кто может подсказать почему?
waldicom
Там где
PHP
mysql_query($sql);

сделай
PHP
mysql_query($sql) or die(mysql_error());


_____________
Свои мозги еще никто не отменял.
Телепатов нету.
anonymouse
1. я у тебя не вижу где же ты вытаскиваешь данные из массива пост.
2. я весь скрипт не вижу чтоб сказать точно что и где и как у тебя.
3. название таблицы поставь в `upload`
4. вот кое что...

PHP
$sql "INSERT INTO upload (`id`, `filename`, `opisanie`, `filepatch`)
VALUES (NULL,'$fname', '$opisanie', '$fpatch')"
;

Если у тебя ID - авто инкрементом то тебе вставлять ID не обязательно.


_____________
waldicom
Цитата
1. я у тебя не вижу где же ты вытаскиваешь данные из массива пост.

У человека явно включены register_globals.
Кстати да, у тебя элементы формыф носят одинаковое имя. Не гут.
И лучше делать без учета register_globals, т.е. применять $_GET или $_POST

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
anonymouse
По мне так register_global by default = 0 должен быть

В смысле если у тебя в PHP.ini "registers_global On" поставь в Off.
У меня из за него такие приколы были с сессиями.

_____________
Diakon
Переправил форму, теперь уникальные переменные:
...
<FORM action="action.php" id="medatasend" name="medatasend" ENCTYPE="multipart/form-data" method="post">
<p>Отображаемое имя файла. </p>
<INPUT type = "text" name="fname" value="" maxlength = "80" size = "20">
<br>
<p>Описание файла</p>
<TEXTAREA name="opisanie" value="" cols = "60" rows = "5"></TEXTAREA>
<br>
<p>Выберете файл</p>
<INPUT NAME="FILE" TYPE="file"><p></p>
<INPUT TYPE="submit" VALUE="Отправить">
</FORM>
...

ID у меня автоинкемент, пробовал по всякому - не помогает... Сейчас последний вариант php скрипта для работы с базой такой:
...
<?
// листинг загрузки файла на сервер
...
$fpatch=$url."/".$filenewname;
//Загружаем данные в БД
$user="gorono";
$password="gorono";
$database="budgor";
$dtable="upload";

if ($db=@mysql_connect("localhost",$user,$password)){
mysql_select_db($database);

echo "База данных найдена!";

$name = $_POST["$fname"];
$fdata = $_POST["$opisanie"];

$sql = "INSERT INTO $dtable (id, filename, opisanie, filepatch) VALUES (NULL,'$name', '$fdata', '$fpatch')";
mysql_query($sql);}

else{ echo "<p>База данных не найдена!</p>";}
mysql_close();
?>

Хотя я и использ $_POST и в формах переменные разные, но в БД всеравно данные из них не передаются... Что делать?
Kuliev
Diakon
$name = $_POST["$fname"];
$fdata = $_POST["$opisanie"];

Используй одинарные кавычки
$name = $_POST['$fname'];
$fdata = $_POST['$opisanie'];


Посмотри что у тебя передается в посте
PHP
<?

echo 
"<pre>";
print_r($_POST);

Diakon
Kuliev, спасибо smile.gif
После того как в одинарные кавычки взял заработпло wink.gif
Спасибо всем кто помог и откликнулся!
Guest
Тема полезная, я и искал аналогию, чтобы записать данные из html формы в таблицу мускул. Тем более ещё только начал заниматься php и пока сложно даётся понять как использовать пройденные материалы по курсам Е. Харина на практике, для написания скриптов.
nike123
мужики та же проблема помогите щас код пришлю
$con=mysql_connect($sqlhost, $sqluser, $sqlpass);
//подключаемся к базе данных
mysql_select_db($db) or die("Нет соединения с базой данных ".mysql_error());



// Теперь можно записать информацию в БД
$query="insert into `id_zajavki`(id_zajavki,familija,imja,otchestvo,abul,ulica,dom,korpus,kvartira,gorod,raion,telefon,te lefonsot,nazvanie_oborudovanija,specifica,primechanie)
values (",`$_POST['id_zajavki']`,`$_POST['familija']`,`$_POST['imja']`,`$_POST['otchestvo']`,`$_POST['abul']`,`$_POST['ulica']`,`$_POST['dom']`,`$_POST['korpus']`,`$_POST['kvartira']`,`$_POST['gorod']`,`$_POST['raion']`,`$_POST['telefon']`,`$_POST['telefonsot']`,`$_POST['nazvanie']`,`$_POST['oborudovanie']`,`$_POST['specifica']`,`$_POST['primechanie']`)";

$result = mysql_query($query);
nike123
не получается из фирмы отправить в базу что исправить?
nike123
<FORM ACTION="otpravit.php" name=zajavki METHOD="post">
<input type=hidden name=kartochka value=post>
<TABLE BORDER ><table>
<TR><TD COLSPAN=2>Kод заявки</TD>
<TD COLSPAN=2><INPUT TYPE="TEXT" NAME="id_zajavki" value="id_zajavki"></TD>
<TD COLSPAN=2>Фамилия</TD>
<td><INPUT TYPE="TEXT" NAME="Familija" value="familija"></td>
<TD COLSPAN=2>Имя</TD>
<td><INPUT TYPE="TEXT" NAME="Imja" value="imja"></td>
<TD COLSPAN=2>Отчество</TD>
<TD COLSPAN=2><INPUT TYPE="TEXT" NAME="otchestvo" value="otchestvo"></td>
<tr></tr></table>
<table>
<td>Адресс</TD><TD><SELECT NAME="abul" value="abul">
<OPTION>ул.
<option> пер.
<option> бульвар.
<option> проспект.</SELECT><INPUT TYPE="TEXT" NAME="ulica" value="ulica">дом<INPUT TYPE="TEXT" NAME="dom" value="dom">корпус<INPUT TYPE="TEXT" NAME="korpus" value="korpus">кв.<INPUT TYPE="TEXT" NAME="kvartira" value="kvartira">
<tr><TD COLSPAN=3>Город<INPUT TYPE="TEXT" NAME="Gorod" value="gorod">Район<INPUT TYPE="TEXT" NAME="Raion" value="raion"></table>
<tr>Телефон<INPUT TYPE="TEXT" NAME="Telefon" value="telefon">
<tr>Телефон сот.<INPUT TYPE="TEXT" NAME=Telefonsot value="telefonsot"></tr></tr></tr></td>
<table>
<tr><td>Название оборудования <select name="oborudovanie" value"oborudovanie">
<option>
<option>
<option><option>
<option>
</td><td>специфика<select name="specifica" value="specifika">
<option>г
<option>
<option>га</td></table>
<table border=0>
<tr><td colspan=2>Примечание<br><textarea cols=50 rows=10 name="primechanie" value="primechanie">
</textarea></td></tr>
<tr><td colspan=2></td></tr>
</form>
</table><a href=zajavki.html><input type=submit name="dobavit" value='Добавить'> </a>
nike123
/Имя сервера или его IP
$sqlhost="localhost";
//Имя пользователя
$sqluser="u5715296_default";
//Пароль пользователя
$sqlpass="12345";
//Имя базы данных
$db="u5715296_default";
nike123
blink.gif blink.gif blink.gif blink.gif blink.gif sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif
Valick
nike123, тихий ужас...
это что te lefonsot
это что (",`$_POST['id_zajavki']`
___
про инъекции молчу... клондайк для хакера

_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

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