Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Строковое сложение.
 
 автор: Равечка   (08.08.2006 в 22:09)   письмо автору
 
 

У меня есть переменные
$type1 = 1
$type2 = 2
$type3 = 3
$type4 = 4

как это превратить в строку вида 1:2:3:4
метод $type=$type1+":"+$type2+":"+$type3+":"+$type4;
не прокатил =(
прошу помощи!

   
 
 автор: cheops   (08.08.2006 в 22:16)   письмо автору
 
   для: Равечка   (08.08.2006 в 22:09)
 

Можно поступить так
<?php
  $type
=$type1.":".$type2.":".$type3.":".$type4;
?>

или так
<?php
  $type
="$type1:$type2:$type3:$type4";
?>

   
 
 автор: Равечка   (08.08.2006 в 22:48)   письмо автору
 
   для: cheops   (08.08.2006 в 22:16)
 

Спасибо. а можно попросить готовое решение?

У меня прсото проблема. мне надо соотнести одно название и массу параметров.
Пример у меня есть фильм и таблица в мускуле.
| id | name | type |

Где name - имя фильма, а type - типа, т.е. жанр. Некотарые фильмы имеют 2 и более жанров. я решила сделать таблицу отдельную где будет храниться название примерно так

id | type_name

Так вот. а таблицу с фильмами в колонку type писать жанры в формате 1:2:5
как несложно догадаться потом разбив это выражение функцие explode я получу айпи номера а собственно и названия жанров для вывода.

Встал вопрос с добавлением как сделать форму чтобы можно было выбирать кол-во жанров? т.е. у фильма может быть сколкьо угодно жаноров. число получается плавающим.

Или мою задачу можно решить иначе. подскажите пожалуйтса.

   
 
 автор: cheops   (09.08.2006 в 00:12)   письмо автору
 
   для: Равечка   (08.08.2006 в 22:48)
 

Нет так обычно не делают (медленно получиться, есть способ побыстрее), лучше завести третью таблицу, которая будет осущетствлять соответствие между фильмами и жанрами

id | id_type | id_film

Если фильм 1 имеет один жанр, эта третья таблица будет иметь одну запись, если два жанра, скажем 2 и 5, то в такой таблице соответствия будет две записи
1 1 2
2 1 5

   
 
 автор: Равечка   (09.08.2006 в 10:50)   письмо автору
 
   для: cheops   (09.08.2006 в 00:12)
 

Понятно. спасибо. а нре подскажите как организовать форму для такого добавления.
ведь например есть делать флажки chtckboxes то им ведь каждому нужна собственная переменная? как потом все их отследить и заинзертить в таблицу-фильтр?

   
 
 автор: cheops   (09.08.2006 в 11:50)   письмо автору
 
   для: Равечка   (09.08.2006 в 10:50)
 

Дело в том, что у вас будет таблица жанров и вы можете просто обрабатывать SELECT-запрос к ней, выводя в цикле флажки.

   
 
 автор: равечка   (09.08.2006 в 12:10)   письмо автору
 
   для: cheops   (09.08.2006 в 11:50)
 

да да, это я понимаю. по как потом сформировать insert запрос. ведь каждому флажку будет соответствавать разные переменные.

   
 
 автор: Trianon   (09.08.2006 в 12:32)   письмо автору
 
   для: равечка   (09.08.2006 в 12:10)
 

можно обойтись одной переменной - массивом.

строите форму с флажками.

while($genre = mysql_fetch_assoc($res)) 
{
  $id = $genre['id'];
  $descr = $genre['descr'];
  echo "<br/><input type=checkbox name='genre[]' value=$id /> $descr"; 
}

а при обработке собираете их из массива в список

$id_film = invval($_POST['film']);
foreach($_POST['genre'] as $id)
{
  $id_genre = intval($id);
  $list[] = "( $id_film , $id_genre)";
}
// и строите sql запрос на insert.
$insert_sql = "INSERT INTO genre (id_film, id_genre) VALUES " .implode(',', $list); 

   
 
 автор: Равечка   (09.08.2006 в 13:44)   письмо автору
 
   для: Trianon   (09.08.2006 в 12:32)
 

Cпасибо вам большое. сама бы я никогда не догодалась бы!

   
 
 автор: Decedent   (31.08.2006 в 11:51)   письмо автору
 
   для: Trianon   (09.08.2006 в 12:32)
 


while($genre = mysql_fetch_assoc($res)) 
{
  $id = $genre['id'];
  $descr = $genre['descr'];
  echo "<br/><input type=checkbox name='genre[]' value=$id /> $descr"; 



Подскажите пожалуйста, как в данном примере реализовать разбивку выводимых флажков на три столбца. У меня 39 флажков и хотелось бы компактней разместить их на странице.

   
 
 автор: Trianon   (31.08.2006 в 12:05)   письмо автору
 
   для: Decedent   (31.08.2006 в 11:51)
 

Например, так.

echo '<table>'; $i = 0;
while($genre = mysql_fetch_assoc($res))  

  ++$i;
  $pref = ($i % 3) == 1? '<tr>' : '';
  $suff = ($i % 3) == 3? "</tr>\r\n" : '';
  $id = $genre['id']; 
  $descr = $genre['descr']; 
  echo "$pref<td><input type=checkbox name='genre[]' value=$id />  $descr</td>$suff";  
}  
if($i%3)  
    echo "</tr>";
echo "</table>\r\n";

   
 
 автор: Decedent   (31.08.2006 в 14:09)   письмо автору
 
   для: Trianon   (31.08.2006 в 12:05)
 

Работает! Спасибо огромное!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования