Stránka 1 z 1

array a SQL dotaz

Napsal: čtv 29. říj 2009, 21:52
od esso82
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 ...

Re: array a SQL dotaz

Napsal: čtv 29. říj 2009, 22:05
od Jirka76
tezko rict, co to vlastne chces... :huh:

Re: array a SQL dotaz

Napsal: čtv 29. říj 2009, 22:49
od arxeiss
Pokud chceš získat ty jména z DB tak si zrob cyklus

Kód: Vybrat vše

foreach($user_from as $vysledek){
  $jmeno = mysql_result(mysql_query("SELECT sloupec FROM db WHERE id=".$vysledek."),0);
}
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.

Re: array a SQL dotaz

Napsal: čtv 29. říj 2009, 23:01
od OndraSter
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);
}
... :roll:

$vse = mysql_query ( 'SELECT sloupce FROM tabulka WHERE id IN (' . implode ( ',', $pole ) . ')' );

Takhle si to myslel?

Re: array a SQL dotaz

Napsal: čtv 29. říj 2009, 23:17
od esso82
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 :D

Re: array a SQL dotaz

Napsal: čtv 29. říj 2009, 23:35
od OndraSter
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"

Re: array a SQL dotaz

Napsal: pát 30. říj 2009, 09:19
od esso82
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

Re: array a SQL dotaz

Napsal: pát 30. říj 2009, 10:55
od OndraSter
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

Re: array a SQL dotaz

Napsal: pát 30. říj 2009, 18:59
od esso82
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č