[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает запрос Update
gagger
Есть форма где можно заменять данные через этот обработчик.
В $_POST все отлично попадает и все работает до запроса к БД.
Да и сам запрос вроде оформлен как надо, но тем неменее не работает sad.gif
Подскажите что не так делаю...

<?php include("db.php");

$fields=array("index","student","teacher","id");

foreach($fields as $num=>$key){
if (isset($_POST[$key]) && $_POST[$key]!='') $$key = $_POST[$key];
}
if (isset($index) && isset($student) && isset($teacher))
{
$result = mysql_query ("UPDATE text SET index='$index',student='$student', teacher='$teacher' WHERE id='$id'");

echo "Все ок";}

else echo "что то не так";
?>




Спустя 1 час, 59 минут, 53 секунды (21.08.2010 - 15:38) Crash2007 написал(а):
$$key = $_POST[$key]; ?

Спустя 27 минут, 59 секунд (21.08.2010 - 16:06) gagger написал(а):
Это-то как раз работает правильно.

А вот запрос нет...

Спустя 31 минута, 9 секунд (21.08.2010 - 16:37) Guest написал(а):
gagger
а что за ошибку пишет конкретно?
и у тебя точно в переменные эти 4(индекс...) что-то попадает?

Спустя 12 минут, 21 секунда (21.08.2010 - 16:49) gagger написал(а):
никакой ошибки, все нормально проходит, но ничего не апдейтит...в переменные ПОСТ все попадает проверял...

Спустя 6 минут, 52 секунды (21.08.2010 - 16:56) Guest написал(а):
gagger
я не про пост, где у тебя переменные $index, $teacher?, проверь их как следует, что в них должно быть и.т.д
и
попробуй название таблицы написать так `text`
и еще он выдает значит у тя "ВСЕ ОК"?

Спустя 16 минут, 42 секунды (21.08.2010 - 17:13) gagger написал(а):
Угу выдает - все ок...

Ну так...я создаю массив с названиями полей, и потом загоняю их в цикл где присваиваю им переменные.

т.е. то что было $_POST['teacher']; Стало $teacher. Проверял через var_dump(); и через банальное echo эти переменные, все на месте...

Спустя 4 минуты, 53 секунды (21.08.2010 - 17:18) Guest написал(а):
gagger
ну так-то запрос вроде правильно написан, если в названии полей тоже нет ошибок, то тогда добавь после запроса это
if($result==true)
echp "ok";
else
echo mysql_errno() . ": " . mysql_error() . "\n";

Спустя 2 минуты, 12 секунд (21.08.2010 - 17:20) gagger написал(а):
Вот что выдает :

Все ок1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index='ssНаша цель сделать знания как можно доступнее по цене, сохраняя высокое ' at line 1

Спустя 5 минут, 39 секунд (21.08.2010 - 17:25) Guest написал(а):
gagger
ну вот видишь, в твоем тексте могут присутствовать кавычки? перед запросом съэкранируй содержимое всех текстовых переменных - может дело в этом!
$index= mysql_real_escape_string($index) и.т.д

Спустя 3 минуты, 1 секунда (21.08.2010 - 17:28) Guest написал(а):
точнее у тебя вон и есть одни одинарные ковычких в других!

Спустя 11 минут, 34 секунды (21.08.2010 - 17:40) gagger написал(а):
Заэкранировал, всеравно зараза не работает...

Спустя 10 минут, 3 секунды (21.08.2010 - 17:50) linker написал(а):
Как заэкранировали?

Спустя 7 минут, 1 секунда (21.08.2010 - 17:57) gagger написал(а):
$index= mysql_real_escape_string($index);
$student= mysql_real_escape_string($student);
$teacher= mysql_real_escape_string($teacher);

Спустя 10 минут, 22 секунды (21.08.2010 - 18:07) linker написал(а):
А, проглядел я, все банально просто
UPDATE text SET `index`='$index', `student`='$student', `teacher`='$teacher' WHERE `id`='$id'

Спустя 6 минут, 13 секунд (21.08.2010 - 18:14) gagger написал(а):
linker
Guest

Ребята огромное спасибо за помощь, все теперь работает smile.gif

Я хотел задать еще один нубский вопрос, по поводу функций.


function tpl(){
$get_tpl = mysql_query("SELECT * FROM tpl");
$tpl = mysql_fetch_array($get_tpl);
}


Вот есть такая функция, я хочу из нее вытаскивать $tpl['data']; к примеру, как мне ее вызывать?

Спустя 37 минут, 18 секунд (21.08.2010 - 18:51) Guest написал(а):
gagger

1 способ: написать

function tpl(){
$get_tpl = mysql_query("SELECT * FROM tpl");
$tpl = mysql_fetch_array($get_tpl);
return $tpl;
}

$tpl=tpl();

все, теперь в $tpl тот же массив

Спустя 37 минут, 56 секунд (21.08.2010 - 19:29) linker написал(а):
function tpl()
{
$resource = mysql_query("SELECT `data` FROM tpl LIMIT 1");
$tpl = mysql_fetch_assoc($resource);
return $tpl['data'];
}
$data = tpl();
Быстрый ответ:

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