Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Функция UPDATE [3]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (4): « 1 2 [3] 4 »   

> Без описания
JustUserR
Отправлено: 01 Марта, 2010 - 11:47:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




master_igor пишет:
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 ''121212' at line 1
А почему с одной стороны двойная а с другой одиночная кавычка - а если это не дословные данные то сделайте mysql_real_escape_string - и еще сами mysql-поля заключаются в обратные кавычки `` - тоже имейте это в виду если они содержат не только латинские буквы и цифры


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
biperch
Отправлено: 01 Марта, 2010 - 22:02:04
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




biperch пишет:
WHERE id='".$_POST['id'].'"
master_igor пишет:
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 ''121212' at line 1


в нижней строке была опечатка '-" исправил, ее то и мотюкает
l l
V
PHP:
скопировать код в буфер обмена
  1. $result =  mysql_query("UPDATE comps SET inventary='$inventary', parameters='$parameters', user='$user'  WHERE id=".(int)$_POST['id'], $db)or die(mysql_error());
 
 Top
JustUserR
Отправлено: 01 Марта, 2010 - 22:14:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




biperch Я бы сделал
PHP:
скопировать код в буфер обмена
  1. $result =  mysql_query("UPDATE comps SET inventary='$inventary', parameters='$parameters', user='$user'  WHERE id='".(int)$_POST['id']."'", $db)or die(mysql_error());
Несмотря на то что есть преобразование в число и эксплойт/инекцию так просто не провести - все равно значение может преобразоваться в NaN что может привести к ошибке в сравнии WHERE


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
biperch
Отправлено: 01 Марта, 2010 - 23:04:38
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




я тестил
$s="lfkdflkd943058945";
$n=(int)$s;

равно ноль, не null а 0;
на $s=""; не пробовал
 
 Top
JustUserR
Отправлено: 02 Марта, 2010 - 15:23:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




biperch пишет:
Равно ноль, не null а 0; на $s=""; не пробовал
Интернесно бы еще попробовать $s="NaN" или $s="infinity" к примеру Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
biperch
Отправлено: 02 Марта, 2010 - 19:52:07
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




JustUserR пишет:
Интернесно бы еще попробовать $s="NaN" или $s="infinity" к примеру Улыбка

попробуй
 
 Top
master_igor
Отправлено: 03 Марта, 2010 - 04:52:15
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




biperch пишет:
JustUserR пишет:
Интернесно бы еще попробовать $s="NaN" или $s="infinity" к примеру Улыбка

попробуй


Улыбка УРА нужный результат достигнут. biperch и JystUseR спасибо вам большое за помощь )))
 
 Top
biperch
Отправлено: 03 Марта, 2010 - 08:29:26
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




семь дней велись разборки
 
 Top
JustUserR
Отправлено: 04 Марта, 2010 - 09:33:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




master_igor пишет:
УРА нужный результат достигнут. biperch и JystUseR спасибо вам большое за помощь )))
Пожалуйста! Мы рады что смогли помочь Заодно еще раз поговорили о неявных и явных преобразованиях данных Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
buykz
Отправлено: 05 Марта, 2010 - 07:54:47
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




посмотрите пожалуйста продолжение темы
http://forum.php.su/messenger.ph...p;msg=1267768431
(не та ссылка, извините)

(Отредактировано автором: 05 Марта, 2010 - 08:04:43)

 
 Top
master_igor
Отправлено: 05 Марта, 2010 - 07:59:49
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




buykz пишет:
посмотрите пожалуйста продолжение темы
http://forum.php.su/messenger.php?action=outread&msg=1267768431


Уточните ссълку. Я проходя по это ссълке нечего не вижу. Говорят что нет страничку такой
 
 Top
buykz
Отправлено: 05 Марта, 2010 - 08:03:30
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




в продолжение темы:

не вставляются данные в таблицы баз данных.
таблицы: staff(sid,no,fio,tel и т.д.)
ed(eid,ed,text,sided) - где sided совпадает с staff.sid
exp(expid,text,sidexp)

Имеется резюме(в нашем случае главная форма):

PHP:
скопировать код в буфер обмена
<? if (isset($_GET['ed'])) {$ed=$_GET['ed'];}
$result = mysql_query ("SELECT * FROM staff WHERE sid='$cat'",$db); ?>


которое состоит из личных данных, опыта, образования и т.д.
опыт:
PHP:
скопировать код в буфер обмена
<? $exp = mysql_query ("SELECT * FROM exp WHERE sidexp='$cat'",$db);
$ex = mysql_fetch_array ($exp);
echo "$ex[text]";?>

образование:
PHP:
скопировать код в буфер обмена
<? $ed = mysql_query ("SELECT * FROM ed WHERE sided='$cat'",$db);
$e = mysql_fetch_array ($ed);
$ed1=mysql_query ("SELECT * FROM _ed_type WHERE edtid='$e[ed]'",$db);
$e1 = mysql_fetch_array ($ed1);
echo "$e1[ed_type]";echo " <p>$e[text] </p>"; ?>


Подчеркнутое, это ссылки, на окрытия маленьких окон, которые открываются скриптом.
само маленькое окошко, staff_edit2.php

PHP:
скопировать код в буфер обмена
<? $result = mysql_query("SELECT * FROM exp WHERE sidexp=$sid");
$myrow = mysql_fetch_array($result);
print <<<HERE
<div style=" text-align:left; padding:10px; line-height:22px;";>
<form name="form1" method="post" action="staff_edit2_action.php" class="form_new">
<label><textarea name="text" id="text" style="width:500px; height:150px">$myrow[text]</textarea></label>
<input name="sided" type="hidden" value="$myrow[sided]">
<label><input type="submit" name="Submit" id="Submit" value="Сохранить изменения"></label></p>
</form></div>
HERE;
?>


ну и staff_edit2_action.php
<? $x = mysql_query ("SELECT sid FROM staff WHERE sid=$sid");
if (isset($text) )
{ $exp = mysql_query ("UPDATE exp SET text='$text' WHERE sidexp='$sid'");
if ($exp == 'true') {echo "Сохранено";} else {echo "Не сохранено!";}
} else {echo "<p>не вся инфо вбита</p>";} ?>

вопрос: в новом маленьком окошке после сохранения, пишет сохранено, но в самой базе не происходит не каких изменений, т.е. редактирую - сохраняю - обновляю резюме - все тоже что было до... хотя личные данные вставились без проблем
ps. я новичок, извените за "локаничность"

(Отредактировано автором: 05 Марта, 2010 - 08:05:40)

 
 Top
Viper
Отправлено: 05 Марта, 2010 - 09:18:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




buykz лаконично!
$text откуда у вас берется? я не вижу где вы её получаете!
кусок ($exp == 'true') вообще бред!
с чего вы взяли что булево значение является строкой?!

в staff_edit2_action.php я не вижу чтобы вы получали какие-то переменные. Если у вас $text переменная из $_POST, то помимо isset проверяйте что переменная не пустая. т.е.


PS! Оформляйте коды в соответствующие теги!!!

(Отредактировано автором: 05 Марта, 2010 - 09:19:33)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
buykz
Отправлено: 05 Марта, 2010 - 09:28:59
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




помоему здесь вопрос присоединения
есть резюме, которое состоит из таблиц staff и exp(опыт) и ed(образование). данные вставил. Теперь надо редактировать данные. В staff понятно, она главная в резюме:
if (isset($no) && isset($fio) && isset($tel))
{ $result = mysql_query ("UPDATE staff SET no='$no', fio='$fio', tel='$tel' WHERE sid='$sid'");
if ($result == 'true') {echo "Сохранено";} else {echo "Не сохранено!";}
} else {echo "<p>не вся инфо вбита</p>";}
sid - id staff в staff
а вот как быть с exp и ed не пойму.
if (isset($text) ) { $exp = mysql_query ("UPDATE exp SET text='$text' WHERE sidexp='$sid'");
if ($exp == 'true') {echo "Сохранено";} else {echo "Не сохранено!";}
} else {echo "<p>не вся инфо вбита</p>";}
sidexp - схожие id staff в exp
если $sid - если поставить здесь номер в ручную, то получается то что хочу
(Добавление)
"лаконично" в кавычках

это от Евгения Попова, но дело в том что оно работает (правда я не совсем понимаю, это означает, если сработал запрос mysql_query, я так понимаю)
с чего вы взяли что булево значение является строкой?! - не совсем понял, всмысле, а может массивом

но это поле может быть и пустым, а переменная из:
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['text']))  {$text = $_POST['text'];}

самое главное, если в
PHP:
скопировать код в буфер обмена
  1. UPDATE exp SET text='$text' WHERE sidexp='$sid'

сменить '$sid' на sid staff вручную например написать число 12982(это id из таблицы staff, с которым к примеру мы щас работаем) то все сробатывает. Не пойму какую переменную сюда ставить

(Отредактировано автором: 05 Марта, 2010 - 09:49:36)

 
 Top
buykz
Отправлено: 05 Марта, 2010 - 18:09:31
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




народ, извините, что-то я запутался в какой-то момент... разобрался, спасибо
 
 Top
Страниц (4): « 1 2 [3] 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB