Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: MySql

Parašė Qrmiz· 2008 Bir. 11 11:06:16
#1

Gera diena, norėjau paklausti (to kas moka), kaip sujungti atskirų lentelių duomenis?
Bandžiau analizuotis pagal kitus modus ir pan., bet nelabai man veikia padarius.
Tagi pavyzdys:

$result = dbquery("
SELECT tp.*, tf.user_id
FROM ".$db_prefix."thanks tp
LEFT JOIN ".$db_prefix."users tf ON tp.user_name=tf.user_id
WHERE news_id='".$data['news_id']."'");


(Lentelėje thanks yra 3 laukai: thank_id, user_id ir news_id)

Gal kas žinot, galit tiksliau man parašyti, ką daro tie tp.*, ta.* ir t.t.?
Dėkui iš anksto ;)

Parašė ozzWANTED· 2008 Bir. 11 13:06:55
#2

šiaip jau minėjau kad tie tp ir pan. gal būt bet kokie, čia tik fusion standartas:
tp - Take Photos
ta - Take Albums
tu - Take Users
tf - Take Forums
tt - Take Threads
tp - Take Posts
tm - Take Messages

Digis taip sugalvojęs. O gali nors ir xb ar ką kitą, ką priskiri tą ir naudoji.

Šiaip maždaug taip turėtų būti:
$result = dbquery("
SELECT tx.thank_id,news_id, tu.* FROM ".$db_prefix."thanks tx
LEFT JOIN ".$db_prefix."users tu ON tx.user_id=tu.user_id
WHERE tx.news_id='".$data['news_id']."'");




Tas kur boldinau, tai jeigu imi iš main lentelės, tai galima ir nerašyt.




Parašė Qrmiz· 2008 Bir. 11 14:06:59
#3

šiek tiek aiškiau, bet matai, parašei:
tx.user_id=tu.user_id


Mano užklausa vėliau atrodo taip:
if (dbrows($result) != 0) {
while ($data = dbarray($result)) {
echo "<img src='".THEME."images/bullet.gif' alt=''> ";
echo "</span>\n".$data['user_id']."</span>\n"; }
}


Viskas čia veikia, atvaizduoja nario ID, bet man reikia, kad rodytų jo vardą, bandžiau taip:
tx.user_id=tu.user_name


ir tada tvaizdavime dariau: ".$data['user_name'].", tačiau tuomet nieko nerodo...:|

Parašė ozzWANTED· 2008 Bir. 11 14:06:50
#4

Nu nesamone pisi:
tx.user_id=tu.user_name

"1" = "tomas".

Gi niekada tokia lygybė neegzistuotas. Tas sulyginimas, turi būti vienodos 2 reikšmės 2 lentelėse kad galėtų kaip vieną imti.

O jau tada turi būti $data2['user_name']
Ir būtinai $data2, nes $data tu jau esi panaudojęs:
news_id='".$data['news_id']."'");

Parašė Qrmiz· 2008 Bir. 11 15:06:11
#5

tai klausimas, kodėl comments_include.php yra tokia eilutė: LEFT JOIN ".DB_PREFIX."users tcu ON tcm.comment_name=tcu.user_id ?

Parašė swyper· 2008 Bir. 11 16:06:31
#6

Ir pre to pacio gal galite parasyti koda kad roditu daugiausiai vertinamiausias naujienas ir nuotraukas nes nelb zn kaip reik uzklausa padariti, nors uzklausa numestelkit |

Parašė MAnjack· 2008 Bir. 11 16:06:46
#7

swyper, prie kokio to pačio?
Qrmiz, ten taip parašyta, nes į comment_name įrašomas nario id.

Parašė Qrmiz· 2008 Bir. 11 17:06:25
#8

tai kaip man pagal mano tą užklausą, turint nario id, gauti user_name iš lentelės users?

Parašė ozzWANTED· 2008 Bir. 11 17:06:31
#9

Jau parašiau kaip gauti:
https://webdnd.com/forum/viewthr...post_94851

Parašė ramon· 2008 Bir. 11 17:06:12
#10

Megink toki buda:
   $a = dbquery("SELECT x_narys FROM ".$db_prefix."xx");
   $b = dbarray($a);   

   $aa = dbquery("SELECT * FROM ".$db_prefix."users WHERE user_id='".$b['x_narys']."'");
   $bb = dbarray($aa);    

   echo $bb['user_name'];




PS. Is atmintes rasiau tai klaidu gali but.

Parašė Qrmiz· 2008 Bir. 11 18:06:26
#11

Ačiū ramon, padėjai ;)