Автор Тема: данные из запроса mysql в массив [решено]  (Прочитано 7203 раз)

Оффлайн romario

  • Участник
  • *
  • Сообщений: 621
    • ЮНИКС
Народ подскажите как полученные данные из запроса в mysql перенести в массив.
« Последнее редактирование: 12.03.2011 08:02:12 от Skull »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: данные из запроса mysql в массив
« Ответ #1 : 09.03.2011 14:36:39 »
Сформулируйте свой вопрос более конкретно.

Оффлайн romario

  • Участник
  • *
  • Сообщений: 621
    • ЮНИКС
Re: данные из запроса mysql в массив
« Ответ #2 : 09.03.2011 14:43:27 »
есть БД, в ней таблица, при запросе выводится несколько значений, их надо раскидать в разные переменные, как это сделать средствами shell, вот мой запрос в БД:
rez=$(mysql -NBu root -p123456  test -e 'SELECT * FROM orders')
echo $rez

вот что он выводит:
456234 7892356789 456123 71234567890
мне их раскидать по переменным:

а[1]=456234
 b[1]=7892356789
 a[2]=456123
 b[2]=71234567890


никак не пойму как это сделать?


« Последнее редактирование: 09.03.2011 14:45:40 от romario »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: данные из запроса mysql в массив
« Ответ #3 : 09.03.2011 14:57:36 »
Что-нибудь типа
for alpha in $rez
do
.......
done

Оффлайн romario

  • Участник
  • *
  • Сообщений: 621
    • ЮНИКС
Re: данные из запроса mysql в массив
« Ответ #4 : 09.03.2011 15:15:29 »
вот так сделал:
#!/bin/bash

i=0


rez=$(mysql -NBu root -pc123456  test -e 'SELECT * FROM orders')
echo $rez
array=($(for i in $rez; do echo $i; done))
echo ${array[0]}
echo ${array[1]}
echo ${array[2]}
echo ${array[3]}
exit


вроде работает. Ктсате ы sh нет массивов, только bash

Оффлайн romario

  • Участник
  • *
  • Сообщений: 621
    • ЮНИКС
Re: данные из запроса mysql в массив
« Ответ #5 : 09.03.2011 15:28:51 »
другой вопрос как узнать комличесво элементов в массиве?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: данные из запроса mysql в массив
« Ответ #6 : 09.03.2011 15:32:36 »
Вам ссылку на учебник по bash надо?

Оффлайн romario

  • Участник
  • *
  • Сообщений: 621
    • ЮНИКС
Re: данные из запроса mysql в массив
« Ответ #7 : 09.03.2011 15:40:54 »
да не просто хотел узнать не лазия в учебник:) разобрался уже.

Оффлайн romario

  • Участник
  • *
  • Сообщений: 621
    • ЮНИКС
подскажите пожалуйста как вычесть одно вренмя из другого:
у меня есть 2 переменные формата HH:MM:SS
мне надо вычислить из одной другую чтобы получились минуты и сравнить результат, как это сделать чето никак не пойму.

Оффлайн Карлсон

  • Участник
  • *
  • Сообщений: 1 699
подскажите пожалуйста как вычесть одно вренмя из другого:
у меня есть 2 переменные формата HH:MM:SS
мне надо вычислить из одной другую чтобы получились минуты и сравнить результат, как это сделать чето никак не пойму.

На любом языке программирования (хоть на bash), расчленить на составляющие, перевести все в секунды, вычесть, затем секунды разложить обратно в часы-минуты.

Оффлайн romario

  • Участник
  • *
  • Сообщений: 621
    • ЮНИКС
еще раз всем привет, есть вопрос, в запросе условие такое   
where datetime - now() <1000

по идее это условие означает, что если время в базе больше чем текущее на 10 минут то тогда выводим запрашиваемые нами данные. НоООО
если время в базе например 2011-03-19 11:00:00 , а текущее 2011-03-19 10:52:00 то условие = ложь, результат вычетания равняется не 10 минутам а 48, он думает что в часе 100 минут а не 60, как решить это проблему, зотелосьбы что все в запросе правильно запрашивалось, а не обрабатывать потом это время в скрипте.

если у кого есть мысли поделитесь пожалуйста, mysql знаю не очень глубоко.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Не использовать кривые функции?  Написать свою, правильную? 
PS Что за язык такой, что считает, что в часе 100 минут?


Оффлайн romario

  • Участник
  • *
  • Сообщений: 621
    • ЮНИКС
это запрос в mysql.

Оффлайн NickM

  • Участник
  • *
  • Сообщений: 964

Оффлайн romario

  • Участник
  • *
  • Сообщений: 621
    • ЮНИКС
SEC_TO_TIME и TIME_TO_SEC полезная вещь в моей ситуации, спасибо.