array a SQL dotaz
- esso82
- Začátečník

- Registrován: 26. pro 2006
- Bydliště: Plymouth (UK)
- Kontaktovat uživatele:
array a SQL dotaz
caute ... robim si na webe chat a potreboval by som radu ...
mam:
$user_from = array("1","23","37","1");
$user_to = array("23","1","0","23");
samozrejme sa to nedostane do pola takto, ale to iba pre prehladnost, tie cisla su ID userov
a teraz potrebujem co najjednoduchsie vybrat mena tych userov z tabulky USERS, tak aby som nemusel robit milion dotazov na DB
tabulka USERS:
ID ----- USERNAME
===============
1 ----- admin
23 ----- petko
37 ----- jozko
0 bude vyfiltrovana este pred tym, ta bude znamenat spravu pre vsetkych
myslim tym, ze potrebujem spravit cyklus, kde bude po riadkoch vypisana sprava po sprave nejako takto:
$user_from => $user_to : $message
cize napr.
admin => petko : ahoj .. ako sa mas?
takze, viete mi poradit ako na to? ... bo taketo nieco som este neskusal
este ma tak napodol LEFT JOIN pri dotaze na DB, len neviem ci mozem dvakrat pytat meno usera (od koho a pre koho je sprava) podla ID z tej istej tabulky, to som este nikdy neskusal
vdaka za kazdu radu ...
mam:
$user_from = array("1","23","37","1");
$user_to = array("23","1","0","23");
samozrejme sa to nedostane do pola takto, ale to iba pre prehladnost, tie cisla su ID userov
a teraz potrebujem co najjednoduchsie vybrat mena tych userov z tabulky USERS, tak aby som nemusel robit milion dotazov na DB
tabulka USERS:
ID ----- USERNAME
===============
1 ----- admin
23 ----- petko
37 ----- jozko
0 bude vyfiltrovana este pred tym, ta bude znamenat spravu pre vsetkych
myslim tym, ze potrebujem spravit cyklus, kde bude po riadkoch vypisana sprava po sprave nejako takto:
$user_from => $user_to : $message
cize napr.
admin => petko : ahoj .. ako sa mas?
takze, viete mi poradit ako na to? ... bo taketo nieco som este neskusal
este ma tak napodol LEFT JOIN pri dotaze na DB, len neviem ci mozem dvakrat pytat meno usera (od koho a pre koho je sprava) podla ID z tej istej tabulky, to som este nikdy neskusal
vdaka za kazdu radu ...
loading...
PSN ID: esso82
PSN ID: esso82
- Jirka76
- Začátečník

-
- Registrován: 13. črc 2007
Re: array a SQL dotaz
tezko rict, co to vlastne chces... 
- arxeiss
- Začátečník

- Registrován: 19. črc 2008
- Bydliště: Krmelín (předměstí Ostravy)
- Kontaktovat uživatele:
Re: array a SQL dotaz
Pokud chceš získat ty jména z DB tak si zrob cyklus
Kde místo $jmeno si to dosadíš třeba do pole. OOP zatím neovládám, a co jsem se díval tak jěště dlouho nebudu tak snad jsem ti pomohl aspoň s tímto.
Kód: Vybrat vše
foreach($user_from as $vysledek){
$jmeno = mysql_result(mysql_query("SELECT sloupec FROM db WHERE id=".$vysledek."),0);
}PC : CPU: C2D E5200 2500Mhz @ 3750Mhz a AC Freezer 7PRO MB: Gigabyte GA-P31-DS3L rev.2,1 GPU: ATI Radeon 3650HD 256MB RAM: A-Data Vitesta 2x2GB Zdroj: Forton OEM 400W HDD: Samsung F2 500GB
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
- OndraSter
- Středně pokročilý

- Registrován: 22. úno 2006
- Bydliště: Praha / ČVUT FIT
- Kontaktovat uživatele:
Re: array a SQL dotaz
esso82 píše:a teraz potrebujem co najjednoduchsie vybrat mena tych userov z tabulky USERS, tak aby som nemusel robit milion dotazov na DB
...arxeiss píše:Kód: Vybrat vše
foreach($user_from as $vysledek){ $jmeno = mysql_result(mysql_query("SELECT sloupec FROM db WHERE id=".$vysledek."),0); }
$vse = mysql_query ( 'SELECT sloupce FROM tabulka WHERE id IN (' . implode ( ',', $pole ) . ')' );
Takhle si to myslel?
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
- esso82
- Začátečník

- Registrován: 26. pro 2006
- Bydliště: Plymouth (UK)
- Kontaktovat uživatele:
Re: array a SQL dotaz
arxeiss: dik, ale to som prave nechcel spravit kazde dve sekundy asi sto dotazov na DB kvoli chatu
Ondra .. jj tak som to myslel, a aj spravil, ale az potom mi doslo, ze ked su tam dve spravy od toho isteho usera a po jednej sprave od dalsich dvoch userov, tak z DB dostanem iba tri zaznamy
cize:
sprava od usera ID: 13,24,36,13
z DB dostanem mena jozko (user s ID 13), palko (user s ID 24) a petko (user s ID 36)
mozno som sa zle vyjadril, ale potrebujem tie mena dostat do pola presne tak ako su ID userov
cize z tohoto:
a = 13,24,36,13
potrebujem spravit toto:
a = jozko,palko,petko,jozko
uz je hadam jasne co potrebujem
Ondra .. jj tak som to myslel, a aj spravil, ale az potom mi doslo, ze ked su tam dve spravy od toho isteho usera a po jednej sprave od dalsich dvoch userov, tak z DB dostanem iba tri zaznamy
cize:
sprava od usera ID: 13,24,36,13
z DB dostanem mena jozko (user s ID 13), palko (user s ID 24) a petko (user s ID 36)
mozno som sa zle vyjadril, ale potrebujem tie mena dostat do pola presne tak ako su ID userov
cize z tohoto:
a = 13,24,36,13
potrebujem spravit toto:
a = jozko,palko,petko,jozko
uz je hadam jasne co potrebujem
loading...
PSN ID: esso82
PSN ID: esso82
- OndraSter
- Středně pokročilý

- Registrován: 22. úno 2006
- Bydliště: Praha / ČVUT FIT
- Kontaktovat uživatele:
Re: array a SQL dotaz
A nechceš si je nejdříve vytáhnout všechny, uložit do pole a pak jen udělat
echo $uzivatele[$from[1]] . ' => ' . $uzivatele[$to[1]];
(resp podobně)? Když už nemáš zprávy a od + komu v DB.
kde $uzviatele je to pole s jmenama, $from je pole s jednotlivejma "od" a $to je s jednotlivejma "pro"
echo $uzivatele[$from[1]] . ' => ' . $uzivatele[$to[1]];
(resp podobně)? Když už nemáš zprávy a od + komu v DB.
kde $uzviatele je to pole s jmenama, $from je pole s jednotlivejma "od" a $to je s jednotlivejma "pro"
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
- esso82
- Začátečník

- Registrován: 26. pro 2006
- Bydliště: Plymouth (UK)
- Kontaktovat uživatele:
Re: array a SQL dotaz
no jo ... o to prave ide .... skusim vysvetlit este podrobnejsie ...
mam tabulku MESSAGES .. kde kazdy zaznam obsahuje toto info:
od koho (ID usera) --- pre koho (ID usera) --- cas (UNIX timestamp) --- text spravy
a potom mam tabulku USERS, kde je:
user ID --- username --- ... ... ... ...
chapes? .... cize ja potrebujem co najjednoduchsie vybrat povedzme poslednych 30 sprav, ale zobrazit namiesto ID userov ich mena, cize vyberiem si 30 sprav, ulozim do jedneho pola od koho su, do druheho pola pre koho su atd. a potom tie cisla v poliach potrebujem nahradit menami tych userov a vypis spravy potom uz bude malina... len akosi mi teraz posilhava logika ... takze sa s tym trapim a nechcem mat ako som pisal asi 100 dotazov na DB kazdu sekundu
mam tabulku MESSAGES .. kde kazdy zaznam obsahuje toto info:
od koho (ID usera) --- pre koho (ID usera) --- cas (UNIX timestamp) --- text spravy
a potom mam tabulku USERS, kde je:
user ID --- username --- ... ... ... ...
chapes? .... cize ja potrebujem co najjednoduchsie vybrat povedzme poslednych 30 sprav, ale zobrazit namiesto ID userov ich mena, cize vyberiem si 30 sprav, ulozim do jedneho pola od koho su, do druheho pola pre koho su atd. a potom tie cisla v poliach potrebujem nahradit menami tych userov a vypis spravy potom uz bude malina... len akosi mi teraz posilhava logika ... takze sa s tym trapim a nechcem mat ako som pisal asi 100 dotazov na DB kazdu sekundu
loading...
PSN ID: esso82
PSN ID: esso82
- OndraSter
- Středně pokročilý

- Registrován: 22. úno 2006
- Bydliště: Praha / ČVUT FIT
- Kontaktovat uživatele:
Re: array a SQL dotaz
Aha, v tom případě zkus něco takovéhoto:
SELECT od.jmeno AS od, pro.jmeno AS pro, zprava.cas, zprava.text FROM uzivatele AS od, uzivatele AS pro, zprava WHERE od.id=zprava.od AND pro.id=zprava.pro GROUP BY zprava.id
SELECT od.jmeno AS od, pro.jmeno AS pro, zprava.cas, zprava.text FROM uzivatele AS od, uzivatele AS pro, zprava WHERE od.id=zprava.od AND pro.id=zprava.pro GROUP BY zprava.id
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
- esso82
- Začátečník

- Registrován: 26. pro 2006
- Bydliště: Plymouth (UK)
- Kontaktovat uživatele:
Re: array a SQL dotaz
aha ,... no prave AS som nikdy zatial nepouzival ... skusim to neskor, lebo nemam teraz cas ... kazdopadne vdaka zatial .... este sa ozvem ako som to vyriesil ...
dik Ondro
// OndraSter - není zač
dik Ondro
// OndraSter - není zač
loading...
PSN ID: esso82
PSN ID: esso82