Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Выборка из множества строк таблицы MySQL, и генерация множества файлов...  (Прочитано 1581 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kolesov

  • Автор темы
  • Участник
  • *
  • Сообщений: 196
    • Просмотр профиля
Здравствуйте!
Подскажите/посоветуйте как реализовать следующую задачу.

Есть таблица в mysql в ней строчки вида:
+------+--------+----------+--------------+--------------------+
| name | secret | username | macaddress   | id_profile         |
+------+--------+----------+--------------+--------------------+
| 7999 | Qwerty | 7999     | 123456789012 | 134                |
| 7888 | Qwerty | 7888     | 000e083bd123 | 204                |
+------+--------+----------+--------------+--------------------+
На основе каждой из строк должны формироваться файлы с именем, в данном случае - 123456789012.xml и 000e083bd123.xml.
Файлы должны формироваться на основе шаблона, в котором name, secret, username, macaddress, id_profile должны помещаться в нужные строки, а на основе значения id_profile в файл должен попадать нужный текст. 

Шаблон для формирования файлов.
(Нажмите, чтобы показать/скрыть)


Соотвественно должно сформироваться два файла сл. вида.
(Нажмите, чтобы показать/скрыть)

Я начал примерно так пытаясь вытянуть значения строк:

#!/bin/bash
END=50
for ((i=1;i<=END;i++));
do
echo "SELECT name, secret, username, macaddress, id_profile  FROM users WHERE id like '$1';" | mysql -uroot -ppassw database > text.txt
done
Но в файл ничего не записывается. И я не совсем уверен, что зашел с правильного конца.
« Последнее редактирование: 12 Сентября 2019, 15:31:05 от kolesov »

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 754
    • Просмотр профиля
Первое - зачем цикл и"WHERE id like"?

Оффлайн bezbo

  • Старожил
  • *
  • Сообщений: 1749
    • Просмотр профиля
#!/bin/bash
for (( i = 1; i <= 999; i++ ))
do
mysql -uroot -ppassw database -e "SELECT name, secret, username, macaddress, id_profile FROM users WHERE id_profile = '$i';" > '$i'_id_profile.txt
done

 

Страница сгенерирована за 0.054 секунд. Запросов: 25.