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 :: Помогите с циклом

 PHP.SU

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


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

> Без описания
blblago
Отправлено: 21 Марта, 2013 - 19:53:39
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Март 2013  


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




Скрипт голосование.

Редактирование голосование, вывод вопросов в цикле, после редактирование обновлением записей в базе. Как объяснить mysql какие поля обновить. ?
 
 Top
Vinyl
Отправлено: 21 Марта, 2013 - 20:51:01
Post Id



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


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


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




В затруднении


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
blblago
Отправлено: 21 Марта, 2013 - 21:42:42
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Март 2013  


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




Циклом выводятся, данные с базы. После нажатие на кнопку нужно обновить значение в базе !

PHP:
скопировать код в буфер обмена
  1.   $
  2.      while($poll_answer=mysql_fetch_array($row_answer)){
  3.          
  4.      echo '<tr><td width="40%" align="right" class="table"><b>Ответ:</b></td>
  5.          
  6.                    <td width="60%" bgcolor="#434343" class="message_text"><input name="rejoin" type="text" value='.$poll_answer['name'].'></td></tr>';
  7.    
  8.         }
  9.        

(Отредактировано автором: 21 Марта, 2013 - 21:58:02)

 
 Top
Vinyl
Отправлено: 21 Марта, 2013 - 21:50:20
Post Id



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


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


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




Эхх... Понятия не имею, что там у Вас за $i=0 до цикла, что за $i++ после, а также на какую кнопку Вы нажимаете, но у меня есть один добрый друг-экстрасенс. Он предположил, что у Вас есть скрипт голосования, в котором есть баг - после процесса голосования отображаются неверные результаты голосования, т.к. не учтен последний голос самого проголосовавшего.

Так и есть? Тогда проблема очевидна. Участок кода, добавляющий голос в базу данных, расположен ниже участка кода, который делает выборку. Решение столь же очевидно - перенести участок кода, отвечающий за добавление голоса, выше участка кода с выборкой.

Экстрасенс ошибся?Бывает. Тогда опишите проблему подробнее.


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
blblago
Отправлено: 21 Марта, 2013 - 21:57:03
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Март 2013  


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




Извините если не коректно описываю проблему.

Голосование работает исправно. В моем скрипте существует несколько опросов. Так же я хочу добавить возможность редактирования существующего голосование, и вопросов. Так как вопросом может быть быть несколько, как отредактированные вопросы обновит в базе ?
 
 Top
Vinyl
Отправлено: 21 Марта, 2013 - 21:59:53
Post Id



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


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


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




А скрипт-то Вы писали? Если да, то проблем вообще быть не должно, а если нет, то код и структуру БД в студию, тогда, возможно, Вам помогут. На данном этапе разговора я Вам даже ничего посоветовать не могу, т.к. не имею представления, как работает Ваш скрипт и как организовано хранение данных в Базе.


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
blblago
Отправлено: 21 Марта, 2013 - 22:00:08
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Март 2013  


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




Это рабочий код ! Тут выводиться вопрос и ответы на голосование. Нужно что бы после изменение вопросов они обновились в базе !

PHP:
скопировать код в буфер обмена
  1.    <table border="0" cellpadding="2" cellspacing="1" width="100%">
  2.     <form method="POST">
  3.     <tr>
  4.          <td width="40%" align="right" class="table"><b>Вопрос:</b></td>
  5.          <td width="60%" bgcolor="#434343" class="message_text"><input name="query" type="text" value="<?echo $poll_name['name'];?>"></td>
  6.         </tr>
  7.     <tr>
  8.          <td width="10%"></td><td width="90%" class="message_text"><font color="#008000"><b>Варианты ответа:</b></font></td>
  9.         </tr>
  10.        
  11. <?    
  12.  
  13.      while($poll_answer=mysql_fetch_array($row_answer)){
  14.          
  15.      echo '<tr><td width="40%" align="right" class="table"><b>Ответ:</b></td>
  16.          
  17.                    <td width="60%" bgcolor="#434343" class="message_text"><input name="rejoin" type="text" value='.$poll_answer['name'].'></td></tr>';
  18.    
  19.         }
  20.        
  21. ?>
  22.  
  23.     <tr><td width="40%" align="right" class="table"><b>Статус:</b></td><td width="60%">
  24.     <select size="1" name="active" class="button">
  25.     <option value="1" <? echo (($poll_name['active']=="1")?'selected=selected':'');?> >Активен</option>
  26.     <option value="2" <? echo(($poll_name['active']=="2")?'selected=selected':'');?> >Не активен</option>
  27.     <option value="3" <? echo(($poll_name['active']=="3")?'selected=selected':'');?> >Скрыт</option>
  28.     </select>
  29.     </td></tr>
  30.     <tr><td width="40%"></td><td width="60%" ><input name="submit" type="submit" value="Редактировать" class="button"></td></tr>
  31.    
  32. </form>
  33.  
  34.         </table>

(Отредактировано автором: 21 Марта, 2013 - 22:00:44)

 
 Top
Vinyl
Отправлено: 21 Марта, 2013 - 22:06:24
Post Id



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


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


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




А структура БД?


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
blblago
Отправлено: 21 Марта, 2013 - 22:09:58
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Март 2013  


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




Спасибо за то что Вы уделяете мне время ! Мне надо организовать редактирование голосование. Открывается такое окно ! http://petromi[dot]com/get/48c0cf3bbd[dot]png в нем выводятся вопрос и ответы (количество разное) как после редактирование записать из в базу !
 
 Top
Vinyl
Отправлено: 21 Марта, 2013 - 22:19:26
Post Id



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


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


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




То есть, сейчас при нажатии на "редактировать" голосование не редактируется, так? Тогда мне нужен остальной код, который идет до того, что Вы выше написали + структура базы данных (имена таблиц и полей). Если выше этого кода ничего нет, значит файл инклюдится из другого места и мне нужен код из этого места, т.к. в Вашем коде отсутствует, как минимум, mysql_select_db, которая необходима перед mysql_fetch_array, а так же не объявлена $poll_name['name'].


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
blblago
Отправлено: 21 Марта, 2013 - 22:21:02
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Март 2013  


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




PHP:
скопировать код в буфер обмена
  1.  if(isset($_POST['submit'])){
  2.  
  3.        $poll_act=mysql_fetch_array(mysql_query("SELECT * FROM `gb_polls` WHERE active='1' "));
  4.  
  5.      if(isset($_POST['active']) && $_POST['active']==1 && $poll_act)
  6.          {
  7.        $error='<div align="center" class="text"><b>Уже существует активное голосование, отключите его!</b></div>';
  8.      }
  9.          else
  10.          {
  11.         mysql_query("UPDATE `gb_polls_answer` SET name='".$_POST['rejoin']."' WHERE id_poll='".intval($_GET['id'])."'") or die(mysql_error());
  12.       mysql_query("UPDATE `gb_polls` SET active='".$_POST['active']."', name='".$_POST['query']."' WHERE id_poll='".intval($_GET['id'])."'") or die(mysql_error());
  13.                    echo '<body  onLoad="setInterval(\'window.close()\',0)" >
  14.                 <body onUnload ="window.opener.document.location=\''.$_SERVER['PHP_SELF'].'?a=votes_view\' ;return false;">';
  15.                                    
  16.      }
  17.    }

(Добавление)

(Добавление)
Голосование редактируется, я не знаю как организовать редактирование вопросов !
(Добавление)
Мне легче было бы, показать в Skype, тут вопрос на минуту. Просто я в PHP любитель, а не спец. Огорчение
(Добавление)
Осталась одна проблема, не работает код.

PHP:
скопировать код в буфер обмена
  1.         $rejoin = array (1 => 'January', 'February');
  2.        
  3.                  foreach ($rejoin as $key)
  4.             {
  5.  
  6.                         mysql_query("UPDATE `gb_polls_answer` SET name='".$key."' WHERE id_poll='102'") or die(mysql_error());
  7.                 }

(Отредактировано автором: 21 Марта, 2013 - 23:58:28)

 
 Top
avtor.fox
Отправлено: 22 Марта, 2013 - 00:19:08
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




blblago пишет:
Осталась одна проблема, не работает код.

Не смотрел код и Вам не советую.
И на будущее. Пока Вы не научитесь приводить текст ошибки, так и будете ходить вокруг да около.
 
 Top
Vinyl
Отправлено: 22 Марта, 2013 - 07:24:59
Post Id



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


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


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




avtor.fox пишет:
Пока Вы не научитесь приводить текст ошибки, так и будете ходить вокруг да около.
+1


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
blblago
Отправлено: 22 Марта, 2013 - 07:32:45
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Март 2013  


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




В массиве два значение, при INSERT все ключи массива записываются в базу. При UPDATE обновляются все записи вторым ключом. Как провести проверку на ошибки ?

PHP:
скопировать код в буфер обмена
  1.     $rejoin = array (1 => 'January', 'February');
  2.        
  3.                  foreach ($rejoin as $key)
  4.             {
  5.  
  6.                         mysql_query("UPDATE `gb_polls_answer` SET name='".$key."' WHERE id_poll='102'") or die(mysql_error());
  7.                 }
 
 Top
imya
Отправлено: 22 Марта, 2013 - 09:06:20
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


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




А разве можно одному ключу присваивать 2 значения ? Это первое.

Второе - отделите вывод от обработки, это значительно упростит разборку кода в дальнейшем.


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB