Autor | Zpráva | ||
---|---|---|---|
alan1133 Profil * |
#1 · Zasláno: 11. 6. 2012, 17:37:25
Zdravím,dělám si takovej web,kde prostě budou moct si uživatele přidat další uživatele do přátel..
všechno funguje,ale ted mě napadlo... mám stránku,kde zobrazuju všechny uživatele aby si někdo vybral,a přidal si ho.. a napadlo mě,jak udělat,aby mě v tom seznamu nebylo vidět a lidi co už mám přidaný? dá se to nějak udělat ještě v mysql query? nebo se to už bude muset dělat podmínkou popř jiným způsobem? PS k tomuhle mám 2 tabulky uzivatele (tady se po registraci objevěj všichni kde mají informace heslo,jmeno apod..) pratele (tady mám spojení idcek..(mám hlavní ID toho sloupce,pak moje ID a ID toho,koho jsem si přidal) |
||
jdanek Profil |
#2 · Zasláno: 11. 6. 2012, 17:48:21
zkoušel sis to po sobě přečíst? je to nečitelné... už to čtu po třetí a pořád nevím co chceš
|
||
alan1133 Profil * |
#3 · Zasláno: 11. 6. 2012, 17:54:58
tak to se omlouvám,upřesním to..
mám script,kterej vypíše všechny uživatele. (jsem přihlášenej,a mám i nějaký lidi v přátelých) jak udělat,aby v tom seznamu jsem se neobjevil já,i přátelé,který jsem si přidal? |
||
Again Profil |
Pokud jsem to správně pochopil, tak to lze ošetřit přímo v dotazu. Při výběru přátel z databáze stačí přidat:
AND WHERE id != $mojeID; |
||
nemeja Profil |
#5 · Zasláno: 11. 6. 2012, 18:00:41
WHERE id != id_pratele AND id != id_pratele2...
takhle nejak // mobil |
||
alan1133 Profil * |
#6 · Zasláno: 11. 6. 2012, 18:47:01
dobře,díky...
ale ještě,když nemám žádný přátelé,tak mě to napíše chybu,jak tohle obejít?aby to nepsalo chybu když nemám žádný přátelé v databázi? píše to: Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /home/users/alan/../web/uzivatele.php on line 103 |
||
Tori Profil |
Zkusila bych tohle (edit: mělo by to vyřešit i zmíněný problém ↑):
SELECT u.id, u.login FROM uzivatele u WHERE NOT EXISTS (SELECT * FROM pratele p WHERE p.uzivatel = $mojeID AND p.pritel = u.id) AND u.id != $mojeID |
||
alan1133 Profil * |
#8 · Zasláno: 11. 6. 2012, 18:59:10
Tori:
no,já budu muset udělat asi 2 dotazy ne? jeden na jednu tabulku,a druhou na ní nebo ne?.. jelikož potřebuju vědět jak ID přítele,tak i ID uživatele+informace z první tabulky(uzivatel) tady je schema tabulky Tabulka "pratele" sloupce "id,uzivatel,pritel" (id je nastavenej na auto_increment,ostatní jsou ID) Tabulka "uzivatele" sloupce "id,login" |
||
Tori Profil |
#9 · Zasláno: 11. 6. 2012, 19:02:26
Mělo by to jít jedním dotazem, zkuste to.
|
||
alan1133 Profil * |
#10 · Zasláno: 11. 6. 2012, 19:30:54
a jak dát do dotazu 2 tabulky?
|
||
Someone Profil |
#11 · Zasláno: 11. 6. 2012, 19:33:40
alan1133:
Hledej JOIN příp. LEFT JOIN
|
||
alan1133 Profil * |
#12 · Zasláno: 11. 6. 2012, 19:56:12
Tori:
> Zkusila bych tohle (edit: mělo by to vyřešit i zmíněný problém ↑): > > > > SELECT u.id, u.login FROM uzivatele u > WHERE NOT EXISTS (SELECT * FROM pratele p WHERE p.uzivatel = $mojeID AND p.pritel = u.id) > AND u.id != $mojeID můžeš mě prosím ten script objasnit? nějak ho nechápu..díky |
||
Tori Profil |
V proměnné $mojeID je ID přihlášeného uživatele. Poddotaz
SELECT * FROM pratele p WHERE p.uzivatel = $mojeID AND p.pritel = u.id zjistí z tabulky přátel, koho má tento uživatel přidaného. Hlavní dotaz (SELECT u.id, u.login FROM uzivatele u ) vybere všechny uživatele, kteří mají jiné ID než přihlášený uživatel (u.id != $mojeID ) a zároveň to nejsou jeho přátelé (WHERE NOT EXISTS poddotaz ).
|
||
alan1133 Profil * |
#14 · Zasláno: 11. 6. 2012, 20:35:27
aha,můžeš mě to skontrolovat kde mám chybu? jelikož mě to píše
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/users/alan/../web/uzivatele.php on line 102 102 je ten while(.... $query = MySQL_Query("SELECT * FROM uzivatele WHERE NOT EXISTS (SELECT * FROM pratele WHERE uzivatel = '{$_SESSION['id']}' AND pratele = 'id')AND id != '{$_SESSION['id']}'"); while($Vysledek = mysql_fetch_array($query)){ |
||
Tori Profil |
$query = mysql_query("SELECT * FROM uzivatele u WHERE NOT EXISTS (SELECT * FROM pratele WHERE uzivatel = '{$_SESSION['id']}' AND pritel = u.id) AND u.id != '{$_SESSION['id']}'"); |
||
alan1133 Profil * |
#16 · Zasláno: 11. 6. 2012, 21:07:13
jo aha...tak to jsem si neuvědomyl že to tam je schválně...koukám že v mysql query jsem hodně začátečník
Díky moc:) |
||
Časová prodleva: 12 let
|
0