Pereiti prie turinio

Patarkite kaip suprgramuoti


Rekomenduojami pranešimai

Sveiki, forumieciai. Gal kas galetu siektiek pagelebeti programavimo klausimu? o klausimas butu toks:

 

DB lentele:

ID User_ID User2_ID

1 1 2

2 2 3

3 4 4

4 5 5

5 1 2

6 1 2

7 1 2

 

man reikia atspausdinti (SELECT * FROM tabe WHERE User_ID='1' AND User2_ID2='2')

 

1 1 2

5 1 2

6 1 2

7 1 2

 

kaip sakant praleisti suos elementus:

2 2 3

3 4 4

4 5 5

 

naudojau funkcija kuri tikrina ar tokia eilute egzituoja ir ja atspausdina o jai ne padaro tuscia taciau puslapiavimui taip netinka nes gaunasi tuscios eilutes tarpai. Atspausdina tik pirma eilute o likusios 3 is 4 nematomos. Gauname tik 1 rezultata is 4.

1 1 2

2

3

4

5 1 2

6 1 2

7 1 2

 

Didelis dekui jai kas bent paaiskintu kaip ar ka naudoti :)

Redagavo furbis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Modestai atspausdint tai man atspaudina nieko nesakau bet gaunasi tokie tarpai pvz:

Naudoju: "select * from video WHERE User_ID='1' AND User2_ID2='2' ORDER BY ID DESC LIMIT 5"

tai jai noriu atspausdint 5 irasus man gaunasi tik 2 nes is pirmu 5 atitinka tik 2 eilutes.

Taigi pirmas puslapis tures tik 2 irasus o sekantis nuo 5 iki 10 tures daugiau irasu.

 

ID User_ID User2_ID

1 1 2

2

3

4

5 1 2

6 1 2

7 1 2

8 1 2

9 1 2

10 1 2

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Modestai atspausdint tai man atspaudina nieko nesakau bet gaunasi tokie tarpai pvz:

Naudoju: "select * from video WHERE User_ID='1' AND User2_ID2='2' ORDER BY ID DESC LIMIT 5"

tai jai noriu atspausdint 5 irasus man gaunasi tik 2 nes is pirmu 5 atitinka tik 2 eilutes.

Taigi pirmas puslapis tures tik 2 irasus o sekantis nuo 5 iki 10 tures daugiau irasu.

 

ID User_ID User2_ID

1 1 2

2

3

4

5 1 2

6 1 2

7 1 2

8 1 2

9 1 2

10 1 2

 

Negali taip būti ;) Kažką tada tikrai ne taip darai :)

 

Rašyk visą naudojamą kodą - padėsiu :)

 

Tiesa, nepatartina naudoti MySql_* funkcijų ;)

Redagavo ModestasV
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kitaip pameginsu paaiskint: Kai daromas puslapiavimas tarkim imama: 1-5 eiluciu info sekanciam puslapije imamos 6-10 eilutes ir t.t.

tai va jai is tu 1-5eiluciu man atitinka tik pvz 2 eilutes. Aisku pirmame puslapije atspausdins tik 2 eiluciu info o man reik kad per puslapi atspausdintu pirmus 5 atainkancius pvz jai 5 pirmi yrasai isvis neatitinka tai gaunasi pimas puslapiavimo page tuscias. nezinau kaip paaiskint koda cia idejus irgi nebutu kas aiskiau :(

Redagavo furbis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Chebra sori biski cia rimciau yra nei nupasakojau. Pats biski susipainiojau :( va kodas jis reliai didesnis bet as cia aptrumpinau gal neiveliai klaidu:

 

Table1

 

ID______User_ID_______User2_ID

1_______1_____________2_______ +

2_______2_____________3_______

3_______2_____________3_______

4_______1_____________2_______

5_______5_____________5_______

6_______1_____________2_______

7_______1_____________2_______

8_______1_____________2_______

9_______1_____________2_______

10______1_____________2_______

 

Table2

 

ID______U_ID__________U2_ID___

1_______1_____________5_______

2_______2_____________5_______

3_______3_____________5_______

4_______4_____________5_______

5_______5_____________5_______

 

 

 

 

 

$sql = mysql_query("SELECT * FROM Table1 WHERE User_ID='1' User2_ID='2' ORDER BY ID DESC LIMIT 5");

while ($cats = mysql_fetch_array($sql)) {

$id=$cats['User_ID'];

 

if($cat == $id) { $style='style="font-weight:bold;"'; }

 

echo $id;

 

 

$check_subs = mysql_query("SELECT * FROM table2 WHERE U_ID='$id' AND U2_ID='5'");

$ch_rows = mysql_num_rows($check_subs);

 

if($ch_rows == 1){ echo 'teisinga'; }

 

else {} ;

 

};

 

Man dabar matysis tik:

teisinga

teisinga

 

Oturetu buti:

teisinga

teisinga

teisinga

teisinga

teisinga

Redagavo furbis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

$sql = mysql_query("SELECT * FROM Table1 WHERE User_ID='1' User2_ID='2' ORDER BY ID DESC LIMIT 5");

while ($cats = mysql_fetch_array($sql)) {

$id=$cats['User_ID'];

 

echo $id;

 

};

 

 

Tau neveikia ši dalis būtent, taip? Jei taip, tai kur pas tave randasi AND ? :) Jo juk nėra ;)

Redagavo ModestasV
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Yra yra padariau cia klaidele berasydamas nes ten ilgas kodas yra nenukopinau viso iskarpiau staigiai yra AND

 

Tiesiog genijus...

 

Tu antroje užklausoje žiūri pagal kategorijos id, tai kaip tau viską išves, jei tu kreipies tik vieną kartą? T.y. išgauni vienus duomenis? Pagal tavo duotą DB struktūrą - VISKAS IDEALU :) Tačiau, jei reikia visų rezultatų - darai visiškai ne taip :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tiesiog genijus...

 

Tu antroje užklausoje žiūri pagal kategorijos id, tai kaip tau viską išves, jei tu kreipies tik vieną kartą? T.y. išgauni vienus duomenis? Pagal tavo duotą DB struktūrą - VISKAS IDEALU :) Tačiau, jei reikia visų rezultatų - darai visiškai ne taip :)

Tai va modestai su sitokiu dar nebuvau susidures cia kazkokia ktokia funkcija reik naudot nezinau kokia tik :/

Nuoroda į pranešimą
Dalintis kituose puslapiuose

O tu tikrai uzrasei viska ka spausdina, nuo A...Z?

Parasyk pilna rezultata.

 

Ir dar panaudok print_r ($sql) ar print_r ($cats). Matysi lenteles struktura, bus lengviau.

 

Amat, žiūrėk kaip pas jį yra:

Jis pirmą lentelę pereina su while ciklu, tai tikrina visus duomenis, o antroje jis padaro vieną užklausą ir paima tik vieną row'ą :) Va pas jį bėda ;) Jam reikia antroje užklausoje sukti ciklą ir gaus tai ko nori jis :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gali buti ir taip ir taip, priklausomai nuo uzduoties. Jei paziuresi pacia pirma salyga ten gi atrenka is 1 lenteles, veliau jau ir is dvieju. Reikia tikslumo uzduotyje. Bet jei atsiranda tik 2 irasai po spausdinimo, sakyciau

beda sql atrinkime.

ID______User_ID_______User2_ID

1_______1_____________2_______ +

2_______2_____________3_______

3_______2_____________3_______

4_______1_____________2_______

5_______5_____________5_______

 

nes pirmos 5 eilutes ir atitinka jo uzklausa, t.y.

1_______1_____________2_______

4_______1_____________2_______

 

is cia ir gaunamos 2 eilutes

as daryciau print_r ($sql) pries cikla, koks atrinkimo rezultatas. Jei negerai - sintakses, kintamuju neatitikimas uzklausoje ir lenteleje.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Chebra sori biski cia rimciau yra nei nupasakojau. Pats biski susipainiojau :( va kodas jis reliai didesnis bet as cia aptrumpinau gal neiveliai klaidu:

 

Table1

 

ID______User_ID_______User2_ID

1_______1_____________2_______ +

2_______2_____________3_______

3_______2_____________3_______

4_______1_____________2_______

5_______5_____________5_______

6_______1_____________2_______

7_______1_____________2_______

8_______1_____________2_______

9_______1_____________2_______

10______1_____________2_______

 

Table2

 

ID______U_ID__________U2_ID___

1_______1_____________5_______

2_______2_____________5_______

3_______3_____________5_______

4_______4_____________5_______

5_______5_____________5_______

 

 

 

 

 

$sql = mysql_query("SELECT * FROM Table1 WHERE User_ID='1' User2_ID='2' ORDER BY ID DESC LIMIT 5");

while ($cats = mysql_fetch_array($sql)) {

$id=$cats['User_ID'];

 

if($cat == $id) { $style='style="font-weight:bold;"'; }

 

echo $id;

 

 

$check_subs = mysql_query("SELECT * FROM table2 WHERE U_ID='$id' AND U2_ID='5'");

$ch_rows = mysql_num_rows($check_subs);

 

if($ch_rows == 1){ echo 'teisinga'; }

 

else {} ;

 

};

 

Man dabar matysis tik:

teisinga

teisinga

 

Oturetu buti:

teisinga

teisinga

teisinga

teisinga

teisinga

Manau turėtų būti taip:

 

 


$sql = mysql_query("SELECT * FROM Table1 AS T1 

RIGHT JOIN table2 AS T2 ON T2.U_ID = T1.User_id AND T2.U2_ID = 5

WHERE T1.User_ID='1' AND T1.User2_ID='2'  ORDER BY T1.ID DESC LIMIT 5");


while ($cats = mysql_fetch_array($sql)) { 
$id=$cats['User_ID'];

if($cat == $id) { $style='style="font-weight:bold;"'; }

echo $id;


}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...