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+mysql - непонятно как сохранять и выводить данные?

 PHP.SU

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


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

> Описание: checkbox
delikates
Отправлено: 07 Марта, 2011 - 20:45:48
Post Id


Новичок


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


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




deleted

(Отредактировано автором: 10 Марта, 2011 - 20:01:29)

 
 Top
koka
Отправлено: 08 Марта, 2011 - 00:00:12
Post Id



Гость


Покинул форум
Сообщений всего: 115
Дата рег-ции: Июнь 2010  
Откуда: Россия, Ижевск


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




Если надо сохранить несколько значений в поле, попробуй импользовать функцию explode для ввода данных в БД, implode - при выводе.

А вообще я бы создал четыре таблицы.

Первая - тренеры - поля id тренера (autoincrement), -фамилия имя отчество
-звание

Вторая - бойцы - id бойца (autoincrement), -фамилия имя отчество
-год рождения
-тренер (id тренера)
-наивысший результат
-количество боев и т.п.

Третья - виды боёв - поля id боя и поле название боя.

Чётвертая - деятельности - виды боёв, в которых учавствуют ученики
Поля - id бойца, id боя.

Вроде так...


-----
http://rulevoi[dot]net - запчасти для иномарок в Ижевске
 
 Top
delikates
Отправлено: 08 Марта, 2011 - 07:55:02
Post Id


Новичок


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


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




koka спасибо!
только я все равно не понял, как при добавлении бойца сохранять данные и в таблицу с бойцами и в таблицу с деятельностями Однако
чекбоксами выбирать не получится? типа как вот здесь я пытался сделать: http://62[dot]109[dot]21[dot]128/act.php?act=add&id=
у меня почему-то при выборе чекбоксами передается только последний выбор, тобишь сразу несколько тренеров нельзя выбрать..
вот код:
PHP:
скопировать код в буфер обмена
  1.  
  2. <tr>
  3. <td class='row-reg'><br><b>Тренеры</b><br></td>
  4. <td class='row-reg'>
  5. <?
  6. $tr_res = mysql_query('SELECT * FROM trainers ORDER BY id');
  7.  while ($tr = mysql_fetch_assoc($tr_res))
  8.  {
  9. echo "<input type=\"checkbox\" name=\"trainer\" value=\"".$tr['last_name']. "\">".$tr['last_name']. " ";
  10.  }
  11. ?>
  12. </tr>
  13. <tr>
  14. <td class='row-reg'><br><b>Виды боев</b><br></td>
  15. <td class='row-reg'>
  16. <?
  17. $ft_res = mysql_query('SELECT * FROM types ORDER BY id');
  18.  while ($ft = mysql_fetch_assoc($ft_res))
  19.  {
  20. echo "<input type=\"checkbox\" name=\"fight_type\" value=\"".$ft['name']."\">".$ft['name']."";
  21.  }
  22. ?>
  23. </tr>
 
 Top
Garda1
Отправлено: 08 Марта, 2011 - 09:36:59
Post Id


Новичок


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


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




для хранения массива в БД используется функция serialize()(что-то на подобии автоматического explode-implode).
Что бы передать выбор нескольких чекбоксов, у них должны быть уникальные имена, типа name="trainer1", name="trainer2", либо можно собрать массив из HTML, если прописать name таким образом для всех чекбоксов: name="trainer[]"
 
 Top
delikates
Отправлено: 08 Марта, 2011 - 11:07:13
Post Id


Новичок


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


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




нифига я не могу понять Огорчение Растерялся

подскажите пожалуйста, где можно посмотреть подобную реализацию?

решил делать таблицу fighters_info с полями id, fighter_id, trainer_id, fight_type_id

вроде так надо, да? а вот как туда загонять данные и потом выводить их - не вкуриваю)
как в trainer_id и fight_type_id хранить несколько id? через запятую?

заранее благодарю за помощь.
 
 Top
koka
Отправлено: 08 Марта, 2011 - 14:30:44
Post Id



Гость


Покинул форум
Сообщений всего: 115
Дата рег-ции: Июнь 2010  
Откуда: Россия, Ижевск


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




delikates пишет:
нифига я не могу понять Огорчение Растерялся

подскажите пожалуйста, где можно посмотреть подобную реализацию?

решил делать таблицу fighters_info с полями id, fighter_id, trainer_id, fight_type_id

вроде так надо, да? а вот как туда загонять данные и потом выводить их - не вкуриваю)
как в trainer_id и fight_type_id хранить несколько id? через запятую?

заранее благодарю за помощь.


Добавь скобочки к названиям чекбоксов:
PHP:
скопировать код в буфер обмена
  1. echo "<input type=\"checkbox\" name=\"fight_type[]\" value=\"".$ft['name']."\">".$ft['name']."";
  2. echo "<input type=\"checkbox\" name=\"fight_type[]\" value=\"".$ft['name']."\">".$ft['name']."";


Полученные данные можно обработать так:

PHP:
скопировать код в буфер обмена
  1. $data = implode(";", $_POST['fight_type']);
  2. // так получишь в $data все типы боёв, разделённые ;
  3.  


потом можешь добавить их в текстовое поле в БД.
Если надо вывести данные, получаешь в $data этот текст и делаешь так:

PHP:
скопировать код в буфер обмена
  1. $data2 = explode(";", $data);
  2. //для вывода данных, можно использовать следующий цикл
  3.  
  4. echo "Боец занимается следующими видами боёв: ";
  5. for ($i=0;isset($data2[$i]);$i++)
  6. echo $data2[$i];
  7.  


-----
http://rulevoi[dot]net - запчасти для иномарок в Ижевске
 
 Top
delikates
Отправлено: 08 Марта, 2011 - 17:54:19
Post Id


Новичок


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


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




koka, спасибо! сейчас буду пробовать.. Хорошо

(Отредактировано автором: 08 Марта, 2011 - 17:54:35)

 
 Top
delikates
Отправлено: 08 Марта, 2011 - 20:27:29
Post Id


Новичок


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


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




а можно как-нибудь сохранять id тренеров и видов боев, а выводить потом фамилии тренеров и названия боев соответсвующие этим id?
просто у меня есть возможность редактирования названия боя и фамилии тренера - поэтому даннын могут быть неактуальными(
пробовал так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $data2 = explode(";", $pr['fight_type']);  
  3.     for ($i=0;isset($data2[$i]); $i++)
  4. $replace_id_type = mysql_query('SELECT * FROM fight_types WHERE id='.$date2[$i]);
  5.  while ($rn = mysql_fetch_assoc($replace_id_type))
  6.  { echo "Типы боев:"; echo $rn['name']; }
  7.  

не получается Огорчение Огорчение

вот кусок кода всего:
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query('SELECT * FROM fighters ORDER BY id');
  3.  
  4. print '<center><b>Список бойцов спортивного клуба:</b></center><br>';
  5. echo "<a href=\"act.php?act=add&id=\">[Добавить бойца]</a> <hr>";
  6.  
  7.  
  8.  while ($pr = mysql_fetch_assoc($result))
  9.  {
  10. echo "<a href=\"act.php?act=del&id=".$pr['id']."\">[del]</a> | ";
  11. echo "<a href=\"act.php?act=edit&id=".$pr['id']."\">[edit]</a><br>";
  12. echo "<b>Имя:</b> ".$pr['first_name']."<br>";
  13. echo "<b>Отчество:</b> ".$pr['middle_name']."<br>";
  14. echo "<b>Фамилия:</b> ".$pr['last_name']."<br>";
  15. echo "<b>Дата рождения:</b> ".$pr['date_of_birthday']."<br>";
  16. echo "<b>Лучший результат:</b> ".$pr['best_result']."<br>";
  17. echo "<b>Количество боев:</b> ".$pr['number_of_fights']."<br>";
  18. echo "<b>Количество побед:</b> ".$pr['number_of_wins']."<br>";
  19.  
  20. $data2 = explode(";", $pr['fight_type']);  
  21.     for ($i=0;isset($data2[$i]); $i++)
  22. $replace_id_type = mysql_query('SELECT * FROM fight_types WHERE id='.$date2[$i]);
  23.  while ($rn = mysql_fetch_assoc($replace_id_type))
  24.  { echo "Типы боев:"; echo $rn['name']; }
  25.  
  26. echo "<br>";
  27. echo "<b>Тренеры:</b> ".$pr['trainer']."<br>";
  28. print '<hr><br>';
  29.  }
  30.  

(Отредактировано автором: 08 Марта, 2011 - 20:30:12)

 
 Top
koka
Отправлено: 08 Марта, 2011 - 20:36:54
Post Id



Гость


Покинул форум
Сообщений всего: 115
Дата рег-ции: Июнь 2010  
Откуда: Россия, Ижевск


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




delikates пишет:
а можно как-нибудь сохранять id тренеров и видов боев, а выводить потом фамилии тренеров и названия боев соответсвующие этим id?
просто у меня есть возможность редактирования названия боя и фамилии тренера - поэтому даннын могут быть неактуальными(
пробовал так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $data2 = explode(";", $pr['fight_type']);  
  3.     for ($i=0;isset($data2[$i]); $i++)
  4. $replace_id_type = mysql_query('SELECT * FROM fight_types WHERE id='.$date2[$i]);
  5.  while ($rn = mysql_fetch_assoc($replace_id_type))
  6.  { echo "Типы боев:"; echo $rn['name']; }
  7.  

не получается Огорчение Огорчение


может быть, всё дело в очяпятке???
В строчке $replace_id_type = mysql_query('SELECT * FROM fight_types WHERE id='.$date2[$i]);

(Отредактировано автором: 08 Марта, 2011 - 20:38:08)



-----
http://rulevoi[dot]net - запчасти для иномарок в Ижевске
 
 Top
delikates
Отправлено: 08 Марта, 2011 - 20:54:06
Post Id


Новичок


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


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




koka, блин, смотрел и не мог понять - где опечатка)) только потом дошло. спасибо!!
теперь выводит, и даже почти как надо) почему-то выводит только 1 запись, хотя в поле хранится 2..
 
 Top
delikates
Отправлено: 09 Марта, 2011 - 20:31:19
Post Id


Новичок


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


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




deleted

(Отредактировано автором: 10 Марта, 2011 - 20:17:09)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB