Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2008-11-25 08:36:17

  redelek - Członek DUG

redelek
Członek DUG
Skąd: Warszawa
Zarejestrowany: 2008-07-17

Bash i pobieranie danych z MySQL

Witam,

Od wczoraj walczę z podłączeniem się do MySQL i wydanie polecenia SELECT w bash.

Mam bazę danych z takimi polami

id_pracownik
imie
nazwisko
dt_urodzenia
uzytkownik
haslo
dt_rozpoczecia
dt_zakonczenia
itd...

Tamto wszystko działa na PHP i MySQL. Po przyjęciu nowego pracownika dane trafiają do bazy.
Chciałbym zrobić skrypcik który co 24h podłączy się do MySQL sprawdzi czy nie ma nowego pracownika i jeśli go znajdzie
doda mu konto do serwerka i doda pocztę.

Mam problem z pobraniem danych za pomocą bash

Będę wdzięczny za pomoc lub linka gdzie można znaleźć takowe informację


Pozdrawiam
Redelek


Pozdrawiam
Redelek
--------------------------------------------------------
Polecam hosting ViPower https://vipower.pl/panel/aff.php?aff=208, TikTalik https://tiktalik.com/pl/

Offline

 

#2  2008-11-25 11:21:38

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Bash i pobieranie danych z MySQL

Kod:

echo "SELECT * FROM ..." | mysql | awk '...' | while read u fn ...; do ... done

"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#3  2008-11-25 11:40:27

  redelek - Członek DUG

redelek
Członek DUG
Skąd: Warszawa
Zarejestrowany: 2008-07-17

Re: Bash i pobieranie danych z MySQL

bercik napisał(-a):

Kod:

echo "SELECT * FROM ..." | mysql | awk '...' | while read u fn ...; do ... done

oooo dzięki o to chodziło.

Jeszce podpowiedź jak możesz jak pozbyć się nazwy pól z tabeli. Jak daję select to pokazuje mi najpierw pola a potem dopiero dane ?

Dzięki i tak już za wielką pomoc

OKI ZNALAZŁEM --skip-column-name
Pozdrawiam
Redelek

Ostatnio edytowany przez redelek (2008-11-25 12:10:22)


Pozdrawiam
Redelek
--------------------------------------------------------
Polecam hosting ViPower https://vipower.pl/panel/aff.php?aff=208, TikTalik https://tiktalik.com/pl/

Offline

 

#4  2008-11-25 13:43:29

  redelek - Członek DUG

redelek
Członek DUG
Skąd: Warszawa
Zarejestrowany: 2008-07-17

Re: Bash i pobieranie danych z MySQL

No to prawie wszystko działa, problem jest w tym że po pobraniu danych z bazy są zapisywane do pliku.
Pętla która to robi wygląda tak

Kod:

if [ $LICZNIK != 0 ];then

for i in $RESULT;
     do

                echo $i >> nu.tmp
         done
else
         echo "Kupa"
fi

Dane w pliku tak :(
test1
haslotest1
test2
haslotest2
test3
haslotest3

Jak dodam do

Kod:

echo -n $i

to wszystko zapisuje mi się w jednej lini.
test1haslotest1test2haslotest2 ..idt

Macie pomysł jak to zapisać
test1 haslotest1
test2 haslotest2
test3 haslotest3

Będę bardzo zobowiązany za pomoc :)

Redelek

Ostatnio edytowany przez redelek (2008-11-25 14:01:14)


Pozdrawiam
Redelek
--------------------------------------------------------
Polecam hosting ViPower https://vipower.pl/panel/aff.php?aff=208, TikTalik https://tiktalik.com/pl/

Offline

 

#5  2008-11-25 14:01:33

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: Bash i pobieranie danych z MySQL

np. analogicznie do tego:

Kod:

#!/bin/sh

FOO=0
for BAR in $@; do
    echo -n "$BAR " >> /tmp/plik
    if [ $FOO -eq 1 ]; then
        echo >> /tmp/plik && FOO=0
    else
        FOO=$((FOO + 1))
    fi
done

Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#6  2008-11-25 14:24:57

  redelek - Członek DUG

redelek
Członek DUG
Skąd: Warszawa
Zarejestrowany: 2008-07-17

Re: Bash i pobieranie danych z MySQL

azhag napisał(-a):

np. analogicznie do tego:

Kod:

#!/bin/sh

FOO=0
for BAR in $@; do
    echo -n "$BAR " >> /tmp/plik
    if [ $FOO -eq 1 ]; then
        echo >> /tmp/plik && FOO=0
    else
        FOO=$((FOO + 1))
    fi
done

Oki załapałem dzięki :)

Ostatnio edytowany przez redelek (2008-11-25 14:30:55)


Pozdrawiam
Redelek
--------------------------------------------------------
Polecam hosting ViPower https://vipower.pl/panel/aff.php?aff=208, TikTalik https://tiktalik.com/pl/

Offline

 

#7  2009-01-06 21:45:13

  john - Nowy użytkownik

john
Nowy użytkownik
Zarejestrowany: 2009-01-06

Re: Bash i pobieranie danych z MySQL

Podłącze się, gdyż mam podobny choć troszkę inny problem

Kod:

tab=$(echo "SELECT * FROM tabela" | mysql -D ${db} -u ${user} -p${pass} | sed -e '1d' )

Mam zapytanie, które zwraca mi wynik w formie tabeli (x wierszy y kolumn).
Wszystko ładnie działa  tylko wynik zmiennej jest w jednym ciągu znaków oddzielony spacjami.

Jak przerobić to zapytanie by podstawił mi wynik do tabeli, coś ala:
tab[0][0] = 1 wiersz 1 komórka itd....

podejrzewam ze to coś z tym związane

awk '...' | while read u fn ...; do ... done

ale w tym problem że w bashu orłem nie jestem i te "..." nie przemawiają do mnie :D

Może ktoś podać pełny przykład jak ma to wyglądać ??

Offline

 

#8  2009-01-07 19:58:22

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Bash i pobieranie danych z MySQL

wypisujesz ta zmienna poprzez:

Kod:

echo $tab

a jak wypiszesz poprzez

Kod:

echo "$tab"

to bedziesz mial tak jak chcesz ...

pelny przyklad ciezko podac nie wiedzac co ma robic i jakie jest zapytanie et, etc ... radze poczytac o awk - http://www.opcode.eu.org/awk/ (zajrzyj tez w podlinkowania) i bashu - http://www.opcode.eu.org/bash/

Ostatnio edytowany przez bercik (2009-01-07 19:59:03)


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)