Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вставка в Mysql 
:(
    Опции темы
namra
Дата 21.1.2013, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Подскажите почему данные не заносятся в MYSQL где ошибка?
Код

  <?php 
// функция конекта к таблице
function table($name_table){

$ins = "insert into ".$name_table." (num,vop,var1,var2,var3,var4,var5,otv) values (".$_POST['num'].",".$_POST['vopros'].",".$_POST['var1'].",".$_POST['var2'].",".$_POST['var3'].",".$_POST['var4'].",".$_POST['var5'].",".$_POST['otv'].")";
$res = mysql_query($ins);

  }


echo '<form method="post">';
echo '<select name="mySelect">';
echo '<option value="geograf9">География 9 класс</option>';
echo '<option value="math9">Математика 9 класс</option>';
echo '</select><br/><br/>';
echo '<p>Номер вопроса:<br/><textarea name="num" rows="1"></textarea></p>';
echo '<br /><br /> Вопрос:<br/><textarea name="vopros" rows="5"></textarea>';
echo '<p>A:<br/><textarea name="var1" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>';
echo '<p>B:<br/><textarea name="var2" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>';
echo '<p>C:<br/><textarea name="var3" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>';
echo '<p>D:<br/><textarea name="var4" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>';
echo '<p>E:<br/><textarea name="var5" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>';
echo '<p>Ответ<br/><textarea name="otv" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>';
echo '<p> <input type="submit" name="submit" value="Сохранить" /></p>';
echo '</form>';



// скрипт вставки в таблицу

include('test.inc');  # содержит параметры соединения с базой данных
$connect = mysql_connect($host,$user,$password)
or die('He удалось подключиться к базе данных');
$db = mysql_select_db('db1086511_testd',$connect)
or die ('He удалось выбрать базу данных');
  

 if( isset( $_POST['submit'] ) )
{
    switch( $_POST['mySelect'] )
    {
        case 'math9':
            table('clas_9');
            break;
        
        case 'geograf9':
            table('geograf');
            break;

    }
}
?>

PM MAIL   Вверх
Gold Dragon
Дата 21.1.2013, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



скорее всего из-за ошибки в 17-й строке....

Добавлено через 6 минут и 15 секунд
а вообще, причин может быть куча... Какие хоть ошибки выдаёт, есть ли вообще соединение с базой, что приходит из POST... А вообще попробуй просто исполнить запрос в любом SQL-менеджере... и сразу всё увидишь. можешь воспользоваться phpMyAdmin или HeidiSQL или любой другой


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Arantir
Дата 21.1.2013, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



namra, про экранирование спецсимволов слышали когда-нибудь? А про то, что строки в sql-запросах следует в кавычки заворачивать?
Приведите свой запрос в порядок для начала.
Код


echo '<form method="post">';
echo '<select name="mySelect">';
echo '<option value="geograf9">География 9 класс</option>';
echo '<option value="math9">Математика 9 класс</option>';
echo '</select><br/><br/>';
echo '<p>Номер вопроса:<br/><textarea name="num" rows="1"></textarea></p>';
echo '<br /><br /> Вопрос:<br/><textarea name="vopros" rows="5"></textarea>';
echo '<p>A:<br/><textarea name="var1" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>';
echo '<p>B:<br/><textarea name="var2" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>';
echo '<p>C:<br/><textarea name="var3" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>';
echo '<p>D:<br/><textarea name="var4" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>';
echo '<p>E:<br/><textarea name="var5" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>';
echo '<p>Ответ<br/><textarea name="otv" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>';
echo '<p> <input type="submit" name="submit" value="Сохранить" /></p>';
echo '</form>';
Ну кто ж так делает в наше то время...
Код

?>
<form method="post">
<select name="mySelect">
<option value="geograf9">География 9 класс</option>
<option value="math9">Математика 9 класс</option>
</select><br/><br/>
<p>Номер вопроса:<br/><textarea name="num" rows="1"></textarea></p>
<br /><br /> Вопрос:<br/><textarea name="vopros" rows="5"></textarea>
<p>A:<br/><textarea name="var1" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>
<p>B:<br/><textarea name="var2" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>
<p>C:<br/><textarea name="var3" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>
<p>D:<br/><textarea name="var4" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>
<p>E:<br/><textarea name="var5" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>
<p>Ответ<br/><textarea name="otv" rows="1"></textarea>&nbsp;<input type="file" name="userfile[]" /></p>
<p> <input type="submit" name="submit" value="Сохранить" /></p>
</form>
<?php



--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Gold Dragon
Дата 21.1.2013, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Цитата(Arantir @  21.1.2013,  14:33 Найти цитируемый пост)
namra, про экранирование спецсимволов слышали когда-нибудь? А про то, что строки в sql-запросах следует в кавычки заворачивать?
давно уже пора пользоваться "подготовленными выражениями"



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
namra
Дата 21.1.2013, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Arantir,  про sql запросы в кавычках не понял ? У меня же стоят кавычки

Это сообщение отредактировал(а) namra - 21.1.2013, 13:44
PM MAIL   Вверх
Sanchezzz
Дата 21.1.2013, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



namra,  а теперь сходите почитайте про sql injection


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Gold Dragon
Дата 21.1.2013, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



namra, ты бы хотя бы дамп таблицы привёл

и что у тебя $ins? покажи

Добавлено через 4 минуты и 48 секунд
Цитата(Sanchezzz @  21.1.2013,  14:51 Найти цитируемый пост)
namra,  а теперь сходите почитайте про sql injection 
Если человек только начинает работать с базой, то пусть уж сразу учит новое... Во-первых MySQL уже устарел, во-вторых, давно пора забыть об инъекциях и пользоваться как минимум MySQLi::stmt

Добавлено через 13 минут и 5 секунд
и кстати...
Цитата(namra @  21.1.2013,  14:43 Найти цитируемый пост)
Arantir,  про sql запросы в кавычках не понял ? У меня же стоят кавычки

вместо этого
Цитата
... values (" . $_POST['num'] . "," . $_POST['vopros'] . "," . $_POST['var1'] . "....

должно быть это
Цитата
... values ('" . $_POST['num'] . "','" . $_POST['vopros'] . "','" . $_POST['var1'] . "'....




--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
namra
Дата 21.1.2013, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Gold Dragon,  разобрался сделал экранирование спс, теперь выскачило другое внес строку в таблицу, затем обновляю страницу и последние данные которые я вносил заносятся опять, как будто в буфере что ли хранится?
PM MAIL   Вверх
Arantir
Дата 21.1.2013, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Цитата(Gold Dragon @  21.1.2013,  12:37 Найти цитируемый пост)
давно уже пора пользоваться "подготовленными выражениями"
Вы это скажите тому, кто пишет вот это:
Код

"insert into ".$name_table." (num,vop,var1,var2,var3,var4,var5,otv) values 
(".$_POST['num'].",".$_POST['vopros'].",".$_POST['var1'].",".$_POST['var2'].",".$_POST['var3'].",".$_POST['var4'].",".$_POST['var5'].",".$_POST['otv'].")"
Думаю, перед предподготовленными выражениями неплохо было бы знать синтаксис запросов сам по себе.

Добавлено через 1 минуту и 15 секунд
namra, при обновлении страницы с отправкой формы браузер у вас спрашивает "отправить ли данные еще раз?". Ну так вот...

Это сообщение отредактировал(а) Arantir - 21.1.2013, 14:12


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Gold Dragon
Дата 21.1.2013, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



namra, для лучшего понимания попробуй расстанавливать в предложениях знаки препинания  smile 

А по сути скажу.. у тебя вообще всё организовано не правильно.. Должно быть примерно так
- открываем форму для ввода данных
- отправляем данные
- получаем данные и проверяем их на корректность
- сохраняем данные в случае успеха или возвращаемся обратно на форму в случае ошибки
- после сохранения данных  делаем редирект на форму или куда там ещё

с другой стороны можешь: 
- во-первых, перед сохранением проверить на существование подобной записи и уж в случае её отсутствия сохранять
- во-вторых, использовать REPLACE (с правильным построением индексов конечно)
- в-третьих, воспользоваться каким-то "индикатором", например куками или сессиями.. Объявляешь например какую-то переменную при первом добавлении. А при сохранении проверяешь её наличие..

Добавлено через 8 минут и 18 секунд
Цитата(Arantir @  21.1.2013,  15:11 Найти цитируемый пост)
Думаю, перед предподготовленными выражениями неплохо было бы знать синтаксис запросов сам по себе.
я тоже когда-то боялся одного слова MySQL и PHP
 
А человеку лучше рассказать и показать, а не отсылать его куда-то что-то почитать.. Конечно это нужно!!! Но лучше показать и послать  smile 



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
namra
Дата 21.1.2013, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Gold Dragon, начинается знаки припинания и т.д. , все же понимают о чем я  говорю ! И с обновлением разобрался может кому надо будет 
Код

header('location: /index.php?ok'); 
exit();


Это сообщение отредактировал(а) namra - 21.1.2013, 14:29
PM MAIL   Вверх
Arantir
Дата 21.1.2013, 18:48 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Цитата(Gold Dragon @  21.1.2013,  13:19 Найти цитируемый пост)
А человеку лучше рассказать и показать, а не отсылать его куда-то что-то почитать.. Конечно это нужно!!! Но лучше показать и послать  smile 

Из меня очень плохой учитель =)

Как по мне, так человек, который пытается написать приложение, что-то делающее, должен все же изучать документации по используемым в приложении аспектам. Хотя бы одним глазком глянуть, что ли...
Человек, совершенно не знающий синтаксиса sql-запросов, приходит и спрашивает "почему данные не заносятся в MYSQL, где ошибка?".

На первый взгляд namra просто кто-то или что-то заставляет все это делать. Ну просто не видно здравого желания достичь цели, одно желание доделать "лишь бы как-то да работало".


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Gold Dragon
Дата 21.1.2013, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



//offtop
Я давно на этом форуме и считаю что этот форум и есть очень большой справочник. И во многом даже лучше официальных источников. Здесь можно найти ответ практически на любой вопрос и даже не только ответ, но и мнение по его решению. По этому считал и считаю, что нужно посылать сюда, а не от сюда  smile 

А что касается доков.. так если человек хочет учится то сам придёт к тому чтобы почитать сначала справочник.. Просто иногда так хочется чтобы всё заработало быстро.. а справочник читать долго.. smile 

Это сообщение отредактировал(а) Gold Dragon - 21.1.2013, 21:10


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Sanchezzz
Дата 21.1.2013, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Вот именно хочется всем и каждому, но так не бывает должны быть препятствия и трудности.  smile 



--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
baldina
Дата 22.1.2013, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



 smile 
Цитата(Gold Dragon @  21.1.2013,  21:08 Найти цитируемый пост)
Я давно на этом форуме и считаю что этот форум и есть очень большой справочник.

не большой. и совсем не справочник.

и уж никак не замена книг и документации.
здесь общаются, здесь могут помочь - навести на мысль (это думаю самое ценное), здесь даже что-то могут написать за кого-то, но не более. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1114 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.