Pereiti prie turinio

PHP ir Mysql... net nemoku suformuluoti temos pavadinimo


Rekomenduojami pranešimai

Noriu kažko naujo savo gyvenime ir tas dalykas atrodo paprastas, tačiau nemoku įgyvendinti. Esu matęs php-fusione su admin teisėm. Žodžiu, yra mysql lentelė "pirkejai". Noriu daryti tokį dalyką, kad galėtų prekes pasirinkti (tiksliau id), maksimumas prekių būtų 10. Pagal viską tai turėčiau sukurti laukelius "prekė_1", "prekė_2". Sakykim kad prekių id yra 1, 2, 3 ir t.t. Ar pavyktų padaryti taip? Sukuriu laukelį "prekės" ir pasirinkus prekes jų id įrašytų laukelyje tame tokiu būdu (1 2 3 4) ar pan. Ta prasme, į vieną laukelį suvaryti daug reikšmių. Kaip tai padaryti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

SELECT * FROM prekes WHERE id IN (1,2,3)

Nežinau ar supratau ko tu nori. Tiksliau suformuluok savo mintį.

Jeigu nori įrašyt prekes į pirkėjo eilutę tai SQL uklausa turėtų atrodyti maždaug taip:

UPDATE pirkejai SET prekes='{$_POST['prekes']}' WHERE ...

Po žodžio WHERE turi nurodyti sąlygą pagal kurią turi rasti to pirkėjo eilutę pvz:

UPDATE pirkejai SET prekes='{$_POST['prekes']}' WHERE id={$_SESSION['uid']}

Redagavo Gugiss
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Turiu laukelį. Jame tokios tarkime reikšmės: 1 5 7 6. Tų reikšmių gali būti ir koks 10 ar 20, o o patys skaičiai gali būti maždaug iki 100. Dar vienas pvz: 57 99 10 23 4 59 76 89.

 

Aš noriu su php išrinkti iš to laukelio visas reikšmes, kad vėliau galėčiau daryti tokį dalyką:

if($kazkas == '1') { echo 'preke 1'; }

if($kazkas == '2') { echo 'preke 2'; }

...

if($kazkas == '99') { echo 'preke 99'; }

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gali tiesiog dėti kokį nors JSON'ą į DB, arba netgi paprasčiausiai skaičius, atskirtus tarpais.

 

Bet pagalvok – jei taip reikės ne vienoje vietoje, jei galiausiai reikės filtruoti pagal tas reikšmes, gal geriausia būtų pasidaryti kitą lentelę ir naudoti ryšius?

 

Tuo labiau, jei čia yra, kaip supratau, pirkėjai, ir jų nupirktos prekės, ir yra pirkėjų lentelė bei prekių lentelė, naudok many to many relationship :)

pirkejo_id|prekes_id
----------|----------
        1|         1
        1|         2
        1|         3

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai pirma padaryk užklausą

SELECT * FROM prekes

ar kažką panašaus ir tada išskaidyk prekių laukelį į masyvą pvz.:

$prekes = explode(" ", $row['prekes']);
for($i = 0; $i < count($prekes); $i++) {
   if($prekes[i] == 1) { echo 'preke 1'; }
   ...
}

Bet jeigu tokiu budu darysi tai tikrai labai kvailai padarysi. Turėtų būti kita lentelė "prekės" iš kurios imtų informaciją automatiškai, o ne su if viską tvarkyt.

Redagavo Gugiss
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Noriu kažko naujo savo gyvenime ir tas dalykas atrodo paprastas, tačiau nemoku įgyvendinti. Esu matęs php-fusione su admin teisėm. Žodžiu, yra mysql lentelė "pirkejai". Noriu daryti tokį dalyką, kad galėtų prekes pasirinkti (tiksliau id), maksimumas prekių būtų 10. Pagal viską tai turėčiau sukurti laukelius "prekė_1", "prekė_2". Sakykim kad prekių id yra 1, 2, 3 ir t.t. Ar pavyktų padaryti taip? Sukuriu laukelį "prekės" ir pasirinkus prekes jų id įrašytų laukelyje tame tokiu būdu (1 2 3 4) ar pan. Ta prasme, į vieną laukelį suvaryti daug reikšmių. Kaip tai padaryti?

Jei taip darysi tavo DB lentelė neatitiks pirmos norminės formos, kuri sako, kad visų lentelės atributų (stulpelių) reikšmės būtų atomai. Atomu laikoma reikšmė, kuri nėra nei aibė, nei sąrašas.

Tavo atveju vieno stulpelio reikšmės būtų aibė reikšmių.

Tad siulyčiau daryti atskiras lenteles Pirkejai(id,....), Prekės(id,...), Pirkiniai(Pirkėjo_id, prekės_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ą...