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
Форумы портала PHP.SU :: Версия для печати :: обновление БД в цикле
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » обновление БД в цикле

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

1. igor3310 - 20 Февраля, 2012 - 17:19:37 - перейти к сообщению
Здравствуйте!
Скажите пожалуйста - сделал обновление поля БД в цикле а оно обновило только 1 а результат ОК для весх вернуло - это наверное ограничение какоето действует или как с этим быть?
2. Okula - 20 Февраля, 2012 - 17:31:57 - перейти к сообщению
Битва экстрасенсов не тут, а на канале ТНТ.
3. igor3310 - 20 Февраля, 2012 - 17:34:50 - перейти к сообщению
ВОт цикл который обновляет все строки 1 поля в 1 таблице -циклом ДО-ВАЙЛ но изменяется только в 1 строке и все , а возврашает ОК для всех строк.

$result=mysql_query("SELECT offer_picture,offer_id FROM ozon_offer",$bd);
$myrow=mysql_fetch_array($result);

do{
$rest = substr($myrow['offer_picture'], -14);
$id=$myrow['offer_id'];


$otv=mysql_query("UPDATE ozon_offer SET offer_picture='$rest' WHERE offer_id='$id' ");

if($otv==true){echo "OK!<br>";} else{echo"NO";}
}


while($myrows=mysql_fetch_array($result))
4. DlTA - 20 Февраля, 2012 - 17:46:12 - перейти к сообщению
а почему решили что тут что то не так?
функция mysql_query возвращает false только при не валидном запросе
5. igor3310 - 20 Февраля, 2012 - 17:50:19 - перейти к сообщению
а в чем тогда ошибка - надо чтоб цикл менял поле во всех строках а он меняет только в 1 -
раз меняет значит цикл работает( таже история в конструкции ВАЙЛ без ДО)?
6. kappa - 20 Февраля, 2012 - 20:13:03 - перейти к сообщению
Вот так приблизительно попробуйте
PHP:
скопировать код в буфер обмена
  1. for($i = 0;  $i <= count($result); $i++) {
  2.    
  3.     $res =mysql_query("UPDATE ozon_offer SET offer_picture='$result[i]' WHERE offer_id='$id' ");
  4.    
  5. }
  6.  isset($res) ? print('Данные добавлены') : print('Произошла ошибка');
7. Viper - 21 Февраля, 2012 - 10:02:57 - перейти к сообщению
kappa может все же не isset($res) а проверить на true/false? А то кагбэ половину влепит, а дальше что?
8. igor3310 - 21 Февраля, 2012 - 13:37:54 - перейти к сообщению
Не нехочет "съела всю запись" в 1 поле в 1 строке а ответ "Данные добавлены" вывело 324 раза (сколько строк в той таблице) - а нету какихто спец програм чтоб даные в самой БД можно было пачками редактировать?
9. DelphinPRO - 21 Февраля, 2012 - 13:46:25 - перейти к сообщению
igor3310 пишет:
$result=mysql_query("SELECT offer_picture,offer_id FROM ozon_offer",$bd);
$myrow=mysql_fetch_array($result);

do{
$rest = substr($myrow['offer_picture'], -14);
$id=$myrow['offer_id'];


$otv=mysql_query("UPDATE ozon_offer SET offer_picture='$rest' WHERE offer_id='$id' ");

if($otv==true){echo "OK!<br>";} else{echo"NO";}
}


while($myrows=mysql_fetch_array($result))


опечатка в имени переменной
10. igor3310 - 21 Февраля, 2012 - 13:49:47 - перейти к сообщению
Спасибо это я исправил ищо тода.
11. DelphinPRO - 21 Февраля, 2012 - 13:56:58 - перейти к сообщению
ну попробуйте так.
Код, вроде, правильный.

PHP:
скопировать код в буфер обмена
  1. $result=mysql_query("SELECT offer_picture, offer_id FROM ozon_offer", $bd);
  2.  
  3. while($myrow=mysql_fetch_array($result)) {
  4.     $rest = substr($myrow['offer_picture'], -14);
  5.     $id = $myrow['offer_id'];
  6.  
  7.     $otv = mysql_query("UPDATE ozon_offer SET offer_picture='$rest' WHERE offer_id='$id'");
  8.  
  9.     if ($otv !== false) {
  10.         echo "OK!<br>";
  11.     }
  12.     else {
  13.         echo"NO<br/>";
  14.         echo mysql_error();
  15.     }
  16. }
12. igor3310 - 21 Февраля, 2012 - 14:52:31 - перейти к сообщению
[quote=DelphinPRO][/quote]
Спасибо теперь работает круто!!!!!!!!!
А неподскажите как добиться выборку из БД или очистку поля до "слеша" - взять ссылку и выбрать справа все до слеша (тоесть имя файла без путей) ?
13. DelphinPRO - 21 Февраля, 2012 - 15:00:12 - перейти к сообщению
igor3310 пишет:
А неподскажите как добиться выборку из БД или очистку поля до "слеша" - взять ссылку и выбрать справа все до слеша (тоесть имя файла без путей) ?


покажите на примере, что есть и что нужно.
14. igor3310 - 21 Февраля, 2012 - 17:02:09 - перейти к сообщению
есть
http://forum.php.su/im/avatars/p.../9708-avatar.png
и например брало справо до слеш и получалось только полное имя файла без полного пути так:
9708-avatar.png
15. snikers987 - 21 Февраля, 2012 - 23:56:48 - перейти к сообщению
igor3310 пишет:
есть
http://forum.php.su/im/avatars/p.../9708-avatar.png
и например брало справо до слеш и получалось только полное имя файла без полного пути так:
9708-avatar.png


 

Powered by ExBB FM 1.0 RC1