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 :: Версия для печати :: Вывод значения radio или помощь в переделывании кода
Форумы портала PHP.SU » » Вопросы новичков » Вывод значения radio или помощь в переделывании кода

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

1. Alex Teofimov - 22 Января, 2016 - 19:46:03 - перейти к сообщению
Я не знаю, на сколько все запущено, но код работает до момент вывода полей из БД. Мне надо узнать значение выбранного rb, но примеры из интернета не помогли, так как у меня все накручено в один файл. Есть ли выход из этой ситуации(кроме разделения кода на два файла). Если надо переписывать, помогите, а то вообще что-то ни то могу написать
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. require_once 'config.php'; //здесь проходит соединение с сервером и БД
  4.  
  5. //реализую счетчик кликов
  6. $fp = fopen("1.txt", "r+");
  7. $i = fgets($fp);
  8.  
  9. $i = $i + 1;
  10.  
  11. $fp = fopen("1.txt", "w+");
  12. fwrite($fp, $i);
  13. fclose($fp);
  14.  
  15. //берется строчка $i таблицы vopros
  16.    $strSQL = "SELECT * FROM vopros  WHERE Nomer=$i";
  17.    
  18.         $rs = mysql_query($strSQL);
  19.    
  20.  
  21. //с помощью функции List() беру из БД поля и ставлю в соответствующие места.
  22.  $prav=0;
  23.       while(List($id,$name, $vopros, $o1, $o2, $o3,$prot)=mysql_fetch_array($rs))
  24.     {    
  25. print "<form>";      
  26. print "Vopros $i <br>" ;
  27. print "$vopros";
  28. print '<br><input name="radiob" type="radio" value="1"> ';
  29. print "$o1";
  30. print '<br> <input name="radiob" type="radio" value="2" checked> ';
  31. print "$o2";
  32. print '<br> <input name="radiob" type="radio" value="3"> ';
  33. print "$o3 <br> ";
  34. print "</form>";
  35.  
  36.  
  37. if($height == $prot){
  38. $prav=$prav+1;
  39. }
  40.  
  41. }
  42.  
  43. print $tr;
  44. print "<form> ";
  45. print '<input type="image" name = "but" src="1.png" /> <br>';
  46. print "</form> ";
  47. ?>
  48.  


Как-то так. Хотел поместить значение выбранной кнопки в $height, но почему-то не получается. Буду очень благодарен, если вы поможете.
2. Строитель - 22 Января, 2016 - 21:11:28 - перейти к сообщению
Надо примерно так
PHP:
скопировать код в буфер обмена
  1. $array = array();
  2. while($row = mysql_fetch_array($rs)) {
  3.     $array[] = $row;
  4. }
  5.  
  6. list($id, $name, $vopros, $o1, $o2, $o3, $prot) = $array;
  7.  
  8. print "<form>";      
  9. print "Vopros $i <br>" ;
  10. print "$vopros";
  11. print '<br><input name="radiob" type="radio" value="1"> ';
  12. print "$o1";
  13. print '<br> <input name="radiob" type="radio" value="2" checked> ';
  14. print "$o2";
  15. print '<br> <input name="radiob" type="radio" value="3"> ';
  16. print "$o3 <br> ";
  17. print "</form>";
  18.  
3. Alex Teofimov - 22 Января, 2016 - 23:33:14 - перейти к сообщению
теперь не хочет выводить поля из БД, что добавить надо?
4. LIME - 24 Января, 2016 - 07:51:16 - перейти к сообщению
Вау
И как с этим бороться
Ответ глупее вопроса
Без обид
......
Для начала забудь ответ
Где ты устанавливаешь значение $height?
Ведь ты его сравниваешь с значением из бд? А что ты сравниваешь?
.....
Я и забыл как тут все запущенно бывает
Охохошеньки
(Добавление)
Строитель два года в этом деле
Не стыдно?
5. Строитель - 24 Января, 2016 - 14:36:05 - перейти к сообщению
LIME пишет:
Строитель два года в этом деле
Не стыдно?
Меня критикуют? ) Значит я существую ))
LIME, а что тут по вашему должно быть стыдно? )
PHP:
скопировать код в буфер обмена
  1. $array = array();
  2. while($row = mysql_fetch_array($rs)) {
  3.     $array[] = $row;
  4. }
  5.  
  6. list($id, $name, $vopros, $o1, $o2, $o3, $prot) = $array;

Я ведь не сказал, что это готовый рабочий код. Я написал принцип получения данных из БД в массив, ну и разложил этот массив по переменным.
6. LIME - 24 Января, 2016 - 14:38:37 - перейти к сообщению
Строитель пишет:
Меня критикуют? ) Значит я существую ))
это похвально
налицо стремление к лучшему
а теперь детали
Строитель пишет:
ну и разложил этот массив по переменным.
какой массив?
массив массивов?
подумай еще раз
(Добавление)
и таки да...за два года не научиться видеть такие огрехи в алгоритме должно быть стыдно
надеюсь Вы не профильно занимаетесь прогерством
иначе просто печаль
7. Строитель - 24 Января, 2016 - 14:49:01 - перейти к сообщению
LIME пишет:
это похвально
налицо стремление к лучшему
Благодаю Улыбка
LIME пишет:
массив массивов?
Я ведь не знаю структуру его базы, чтобы с уверенностью написать что-то, вроде
PHP:
скопировать код в буфер обмена
  1. $array[] = $row['id'];
  2. $array[] = $row['name'];
  3. //и т.д.
  4.  
Я показал принцип реализации.
LIME пишет:
надеюсь Вы не профильно занимаетесь прогерством
Нет, но стремление к этому есть. Я так же, как и вы - перфекционист.
8. LIME - 24 Января, 2016 - 14:49:34 - перейти к сообщению
Строитель ну и на сладкое
не надо хотеть раскладывать массив в переменные
для этого есть export ежели что
надо точно знать что ты ждешь из бд
и лучше если это будет коллекция из ORM
можно много еще всего умного рассказать
но меня итак тут гнобят как любителя поболтать
потому если интересно то задавай вопросы
(Добавление)
Строитель о госпади
ты даже не понял своей ошибки
в переменную накапливаются массивы и ты в конце эту переменную разбираешь в лист
ниче не замечаешь????
яб тебе дал оплеуху и прошу не обижаться
ты достоен оплеухи
9. Строитель - 24 Января, 2016 - 14:52:19 - перейти к сообщению
LIME пишет:
и лучше если это будет коллекция из ORM
Можно подробнее об этом?
10. LIME - 24 Января, 2016 - 14:54:14 - перейти к сообщению
LIME пишет:
в переменную накапливаются массивы и ты в конце эту переменную разбираешь в лист
ты в лист разбираешь массив массивов!!!!!
матрицу разбираешь!!!!!!
11. Строитель - 24 Января, 2016 - 15:03:56 - перейти к сообщению
LIME пишет:
в переменную накапливаются массивы и ты в конце эту переменную разбираешь в лист

Какие массивы? Вы это где увидели? )
PHP:
скопировать код в буфер обмена
  1. $array[] = $row['id']; //тут по вашему что, массив айдишников, или один айдишник для одной итерации цикла?

Разве по завершении работы цикла массив $array не будет содержать что-то вроде этого?
PHP:
скопировать код в буфер обмена
  1. $array[0] // номер
  2. $array[1] // имя

И соответственно, зная точное количество ключей массива $array разве нельзя присвоить его значения переменным с помощью list() ?
PHP:
скопировать код в буфер обмена
  1. list($id, $name) = $array;
  2. echo $id;// 1
  3. echo $name;// Эдуард
12. LIME - 24 Января, 2016 - 15:04:24 - перейти к сообщению
Строитель пишет:
Можно подробнее об этом?
можно
давно все нормальные люди не работают с бд напрямую
в любом фреймворке есть свой инструмент работы с данными
называется ORM
погуглить что это есть такое
ты просто вызываешь метод и он тебе возвращает коллекцию объектов данных
все надежно и безопасно
и протестированно тысячами прогеров
(Добавление)
Строительага молодец
а теперь глянь на свой код
чтото он не будет работать так мне кажется
и наверное не только мне
короче Строитель просто подумай и увидь ошибку
и мне пофиг кто из нас прав
пусть ты прав
просто увидь ошибку
13. Строитель - 24 Января, 2016 - 15:09:09 - перейти к сообщению
LIME пишет:
в любом фреймворке есть свой инструмент работы с данными
Я с ФВ ещё не работал, но за инфу спс )
14. LIME - 24 Января, 2016 - 15:17:28 - перейти к сообщению
Строитель пишет:
Я с ФВ ещё не работал,
для общего знания
все нормальные фв давно используют компонентный подход
тоесть совсем не обязательно использовать фв для того чтоб юзать его ORM
ее можно отдельно поставить из композера(если не знаешь что это то дальше не читай а сначала узнай)
в любых современных решениях так или иначе используются ORM
да они бывают разными но по большому счету все на одно лицо и отличаются только внутренним устройством
наиболее прогрессивная это доктрина
позволяет миграции без формального их описания
впрочем дальнейшее выходит за плоскость поста
просто открой для себя доктрину
все остальные это типа то же но похуже)) может побыстрее но в целом похуже))
15. Мелкий - 24 Января, 2016 - 15:43:48 - перейти к сообщению
LIME пишет:
нормальные люди не работают с бд напрямую

Вот и не работайте. И страдайте потом в попытке прорваться через километры стектрейсов до внятного SQL.
Зато у меня всегда будет работа. Правда, состоящая из одного фейспалма от этого треша, ну да ладно.

Доводилось видеть такую дрянь, гордо обозванную ормом, которая умудрилась сгенерировать рекурсивный (sic!) CTE без условия выхода из рекурсии (!!!)? А запрос на два (!) гигабайта (!!!) размером?
Первый - вопрос из зала с прошлого pgday'15, примеры второго спрашивайте у любого ДБА, далеко не один пример приведут.

Нет, спасибо. Нормальные толстые модели, нативный SQL и хранимая логика pl/pgsql.

 

Powered by ExBB FM 1.0 RC1