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

Форум MySQL

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

 

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

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

тема: Неопределенное кол-во файлов
 
 автор: Night_Charter   (12.04.2006 в 18:00)   письмо автору
 
 

Добрый день!
Есть скрипт mp3-арива, mysql+php. (сам пишу)))
При добавлении нового альбома в базу, он может содержать как от 3 так и до 20 треков.
Как правильно спроектировать запрос на доваление?

   
 
 автор: Trianon   (12.04.2006 в 18:05)   письмо автору
 
   для: Night_Charter   (12.04.2006 в 18:00)
 

Главное - правильно спроектировать базу.
Albums: |Album_id|Album_name|Album_preferences....|
Tracks: |Track_id|Track_name|Album_id|Track_preferences....|

   
 
 автор: Night_Charter   (12.04.2006 в 18:35)   письмо автору
 
   для: Trianon   (12.04.2006 в 18:05)
 

Это понятно...
Как правильно составить форму добавления и уже сам код добавления в базу информации?
Проблема в том, что диск может содержать как 10 так и 20 песен.

   
 
 автор: Trianon   (12.04.2006 в 18:45)   письмо автору
 
   для: Night_Charter   (12.04.2006 в 18:35)
 

Примерно так, как на странице phpMyAdmin добавляются таблицы и их столбцы .
В форме добавления/редактирования альбома предусмотреть поле (добавить N треков)
Если в одной форме заполняются данные сразу по всем трекам, то в этой форме предусмотреть поле (добавить еще N треков) и отдельную кнопку submit для этого.
Запрос к БД формируется с применением INSERT-оператора многострочной вставки и функции implode() для формирования списка для этого оператора.

   
 
 автор: Night_Charter   (13.04.2006 в 00:17)   письмо автору
 
   для: Trianon   (12.04.2006 в 18:45)
 

А можно какой-нибудь маленький примерчик?

   
 
 автор: cheops   (13.04.2006 в 00:17)   письмо автору
 
   для: Night_Charter   (12.04.2006 в 18:35)
 

Следовательно таблица Tracks будет содержать 10 или 20 записей. Что вызывает сложность? Механизм добавления? Вы хотите все записи альбома добавить сразу (или в каждый альбом можно по одной песни добавлять)?

   
 
 автор: Night_Charter   (13.04.2006 в 00:20)   письмо автору
 
   для: cheops   (13.04.2006 в 00:17)
 

Хочу добавить сразу...
А вообще я тут подумал...
Легче наверно будет просканировать нужную папку, найти mp3 -файлы, вытащить id3-теги и циклом добавить текст о файлах в таблицу.
Возможно ли так сделать? )

   
 
 автор: Night_Charter   (13.04.2006 в 00:28)   письмо автору
 
   для: Night_Charter   (13.04.2006 в 00:20)
 

Тоесть будет существовать две талицы.
1 - альбомы, содержашие несколько столбиков (id, описание, жанр, картинку)
2 - файлы, содержат id-3 теги и albumid - ключ пренадлежащий таблице альбомы.
При добавлении нового альбома, я заполняю немного о нем инфы, добавляю картинку, указываю урл - какую папку надо просканировать, считаю кол-во файлов, делаю цикл по кол-ву фалов, добавляю альбом в таблицу albums и файлы в таблицу files.
Как идея?
Вот только не знаю как цикл реализовать.. foreach думаю подойдет!

   
 
 автор: cheops   (13.04.2006 в 01:21)   письмо автору
 
   для: Night_Charter   (13.04.2006 в 00:28)
 

Вы это для локальных целей делаете или для Интеренет-сайта?

   
 
 автор: Night_Charter   (13.04.2006 в 09:27)   письмо автору
 
   для: cheops   (13.04.2006 в 01:21)
 

Делаю для локальных целей.
p.s.
Вы не в курсе, id3-скрипт может просканировать ftp?

   
 
 автор: cheops   (13.04.2006 в 11:30)   письмо автору
 
   для: cheops   (13.04.2006 в 01:21)
 

Тогда да, можно просканировать отдельную директорию. Про id3 не в курсе.

   
 
 автор: Night_Charter   (13.04.2006 в 11:48)   письмо автору
 
   для: cheops   (13.04.2006 в 11:30)
 

Пока разобрался))
Ждите меня с новыми вопросами;)

   
 
 автор: Night_Charter   (15.04.2006 в 10:32)   письмо автору
 
   для: cheops   (13.04.2006 в 11:30)
 

Ну решился создавать новую тему!
Вообще есть массив:

  $car[1] = "passenger car";
   $car[2] = "land-rover";
   $car[3] = "station-wagon";

Каким образом мне занести в базу только выбранные данные, допустим я выбираю passenger car и station-wagon.
Это пол беды....
Теперь мне надо вытащить эти значения из базы и по ним снова найти описание.
Помогите!!!

   
 
 автор: cheops   (15.04.2006 в 12:42)   письмо автору
 
   для: Night_Charter   (15.04.2006 в 10:32)
 

Погодите а описание у вас в базе данных находится или где-то ещё. Нужно больше информации...

PS Под новые вопросы, лучше заводить новые темы.

   
 
 автор: Night_Charter   (15.04.2006 в 14:15)   письмо автору
 
   для: cheops   (15.04.2006 в 12:42)
 

Вообщем есть база.
Назовем ее checkbox!
В ней хранятся записи id | name
1 | test
2 | test2
3 | test3
4 | test4
В форме циклом вывожу
<input type=checkbox name=check[] value=$id>$name<br>
1) Как правильно обработать запрос и занести выбранные checkbox'ы в BD?
2) Как потом правильно вывести данные из BD?
Допустим мы выбрали (2, 4, 1).
Как сделать запрос и выбрать вот так:
2-test2
4-test4
1-test

   
 
 автор: cheops   (15.04.2006 в 22:24)   письмо автору
 
   для: Night_Charter   (15.04.2006 в 14:15)
 

>1) Как правильно обработать запрос и занести выбранные checkbox'ы в BD?
Вы в таблицу какой структуры заносите информацию? Тип поля ENUM?

   
 
 автор: Night_Charter   (16.04.2006 в 00:44)   письмо автору
 
   для: cheops   (15.04.2006 в 22:24)
 

Нет! ENUM не пойдет.
Ладно сформулирую вопрос по другому...
Как мне вывести в одном запросе, сразу несколько значений?
Например
Есть переменная, которая содержит в себе запись: 1. 4. 3. 8. 5. (обратите внимание на точки - это нужный мне разделитель)
Как сформулировать в таком случае запрос? ;)
select * from table where id 1 и 4 и 3 и 8 и 5 ?

   
 
 автор: cheops   (16.04.2006 в 13:06)   письмо автору
 
   для: Night_Charter   (16.04.2006 в 00:44)
 

А переменная эта в PHP или в MySQL, если в PHP можно поступить следующим образом
<?php 
  $var 
"1. 4. 3. 8. 5.";
  
$arr explode(". "$var);
  for(
$i 0$i count($arr); $i++)  $arr[$i] = (int)$arr[$i];
  
// Формируем SQL-запрос
  
$query "SELECT * FROM table WHERE id IN (".implode(",",$arr).")";
  echo 
$query;
?>

   
Rambler's Top100
вверх

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