Left Join ?
Eloszor is mySQL 4.1-es adatbazist hasznalok!
Van egy PHP szkript amely 2 option/select menut jelenit meg. Az egyik menu bal oldalon a masik jobb oldalon lathato.
menu1 menu2
A bal oldalon levo menu tartalmaza az osszes felhasznalo nevet a register mySQL tablabol, a jobb oldali menu pedig ures.A bal oldali menubol a felhaznalokat at tudom rakni a jobb oldali menübe.
Most peldaul atrakok ket felhasznalot a jobb oldali menube.
Van egy submit gomb is a lapon. Ha erre a gombra katintok akkor azokat a
felhasznalokat akiket a jobb oldali menube raktam berakja egy mySQL tablaba a kov. keppen:A tabla neve user2groups, es jelenleg az elso szamu es a harmas szamu felhasznalot berakata a masodik csoportba.
Azt szeretnem ha ezek a felhasznalok mar tagja a masodik csoportnak akkor ne jelenitse meg oket a bal oldali menuben, ha ujbol beolvasom a PHP szkriptet.
Allitolag LEFT JOIN-t kene hasznalnom. Valaki tudna segiteni egy peldaval ?
Kosz !
■ Van egy PHP szkript amely 2 option/select menut jelenit meg. Az egyik menu bal oldalon a masik jobb oldalon lathato.
menu1 menu2
A bal oldalon levo menu tartalmaza az osszes felhasznalo nevet a register mySQL tablabol, a jobb oldali menu pedig ures.
<?php
$users = mysql_query("SELECT user_id, username FROM register");
?>
<select name="sel1[]" size="10" multiple="multiple" style="width: 100px">
<?php
while ($row = mysql_fetch_array($users)) {
print "<option value=\"{$row['user_id']}\">{$row['username']}</option>\n";
}
?>
</select>
Most peldaul atrakok ket felhasznalot a jobb oldali menube.
Van egy submit gomb is a lapon. Ha erre a gombra katintok akkor azokat a
felhasznalokat akiket a jobb oldali menube raktam berakja egy mySQL tablaba a kov. keppen:
uid | gid
1 2
3 2
Azt szeretnem ha ezek a felhasznalok mar tagja a masodik csoportnak akkor ne jelenitse meg oket a bal oldali menuben, ha ujbol beolvasom a PHP szkriptet.
Allitolag LEFT JOIN-t kene hasznalnom. Valaki tudna segiteni egy peldaval ?
Kosz !
(rtfm)
FROM register
LEFT JOIN user2groups ON(register.user_id = user2groups.uid)
Egyébként meg RTFM !
kosz
Nem mukodik a peldad!
ok
A kovetkezo keppen mukodik :
Most azt szeretnem hogy jojon elo ujbol az osszes felhasznalo a ball oldali menuben ha a 3-ik csoportba adom hozza oket.
Mindegyik csoportnak megvan a ket menuje. Bal es jobb menuk.
.csoport
selgroup.php?id=2
selgroup.php?id=3
segitseg
kérdezz okosan + türelem
Ha egy kicsit összeszedettebben kérdezel, akkor nagyobb eséllyel fogsz megfelelő választ kapni, ezenkívül nem érdemes "Nem hiszem el, hogy senki ne tudjon egy valaszt adni !" típusú hozzászólásokat tenni, mert ezzel nem érsz el semmit.
Amire pedig szükséged van: még egy plusz feltétel az összekapcsolásban:
Felhő
Te találtad ki?
ok
Akkor?
ok
Van ket menu, az elso ahogy irtam tartalmaza az osszes felhasznalot, a masodik azokat a felhasznalokat amiket en hozaadtam a csoporthoz.
A kov koddal adom hozza oket a csoporthoz.
Valahogy igy nez ki:
Hogyan lehetne megoldani ? Otlet is jo lenne, hogy ne mondjatok, hogy lama vagyok es csak kodot jovok kerni.
kerdes
Vonatkoztass el
Három halmazod van:
1. Menu1
2. Menu2
3. X táblában rögzített felhasználók (ez lehet bármelyik tábla!)
Szándéktól függ, melyiket kell behelyettesítened, de tegyük fel, hogy Menu1-ből pakoltál át usereket Menu2-be (vagy akár vissza, netán ide is, oda is), és a Menu2 usereit akarod rögzíteni táblában. Tegyük fel azt is, hogy Menu2 userei tartoznak egy adott csoportba.
-> nem kell hozzáadni, sem törölni, jó helyen van ott...
-> INSERT
-> DELETE
Submit után Menu2 elemeit tömbben kapod (legyen ez a select tömb).
Szintén submit után lekéred X tábla soraiból a usereket, ezeket szintén tömbben tárolod (legyen ez a tábla tömb).
A két tömb különbségét veszed, vagyis törlöd mindazon tömbelemeket (usereket), melyek mindkét tömbben szerepelnek (hisz ők a Menu2-ben + X táblában is jelenlévő userek, lásd fentebbi felsorolás első pontja).
-> a select tömbben maradó userek mehetnek INSERT-tel X táblába
-> tábla tömbben maradó usereket törölni kell DELETE-tel X táblából
Ha nem vagy SQL mágus, ez pl. egy megoldás.
U.I.: "Érdekes" a stílusod, úgyhogy ha megengedsz egy tanácsot (szigorúan privát vélemény): változtass rajt, hosszú távon megbosszulja magát.
kosz
Figyu, azert van forum, hogy kerdezek. Ha nem tetszik valamelyik moderatornak akkor banoljon ki, az sem erdekel. Ha pedig nem akkor ne valaszolj es az is megteszi.
kerdes
OFF: csak így tovább!
Nyilván.
Látatlanban is elhiszem, hogy a Te édesapád erősebb.
Így lesz, Anonymous.