Jag ser inte varför man är blockad när man ska se sin egna sida så som andra ser den när man har någon annan på blocken, det är bara den personen och enbart den som ska vara blockad från att se sidan
jag har userID 1 och om jag ex blockar userID 120 så ska inte personen med userID 120 kunna se min sida men kunna se andras sidor och jag ska kunna se min egna sida när jag "besöker mig själv"
<%set RS = objConn.Execute("SELECT * FROM tblUsers INNER JOIN tblUsers_block ON tblUsers.userID = tblUsers_block.vemArBlockad")
If Int(uid) = RS("vemBlockar") then
Response.Redirect "visablocksida.asp"
Else%>
Resten av sidan
<%End If%>
Den jämför väl tabellerna tills den hittar en träff, SELECT * FROM tblUsers INNER JOIN tblUsers_block ON tblUsers.userID = tblUsers_block.vemBlockar gick inte heller, så där var inte heller felet
Ett tips när man skriver sina SQL-frågor är att först testa dom direkt mot databasen via en klient exempelvis mySQL-administrator. Då ser du direkt vad din SQL-fråga ger för resultat. När du fått bekräftat att din SQL-fråga ger dig det resultat som du förväntar dig så är det oftast bara att tuta ock köra.
Of-topic: Personligen är jag allergisk mot att använda asterisk dvs SELECT * FROM vid sql-frågor. Det bästa är att om du vet vilka kolumner du är intresserad av definiera dessa i din SQL-fråga, exempelvis SELECT bla1, bla2 FROM myTable
Eftersom blocklistan är tom då funktionen inte har fungerat så är den ju tom, så jag kan inte testa nåt med SELECT * FROM tblUsers u INNER JOIN tblUsers_block b ON u.userID = b.vemArBlockad heller
Den jämför väl tabellerna tills den hittar en träff, SELECT * FROM tblUsers INNER JOIN tblUsers_block ON tblUsers.userID = tblUsers_block.vemBlockar gick inte heller, så där var inte heller felet
SQL-satsen hämtar ut alla användare som är blockade av någon, vem som helst. Varför? Vore det inte smidigare att bara kolla om den specifika användaren är blockad? Fråga databasen, den vet.
....och om du verkligen vill hämta ut alla blockade användare så måste du ju åtminstone loopa igenom resultatet för att hitta någon träff.
Eftersom blocklistan är tom då funktionen inte har fungerat så är den ju tom, så jag kan inte testa nåt med SELECT * FROM tblUsers u INNER JOIN tblUsers_block b ON u.userID = b.vemArBlockad heller
Okej, hur som helst så är det ingenting som hindrar dig från att lägga dit test-data. Som sagt så var det ett tips som kan vara smidigt att använda.
set RS = objConn.Execute("SELECT * FROM tblUsers INNER JOIN tblUsers_block ON tblUsers.userID = tblUsers_block.vemArBlockad where vemBlockar="& UserID) var inte så enlelt heller, UserID är den inloggades SessionsID (userID i db)
Känner mig helt snurrig n så jag har ingen aning om hur det ska skrivas, har testat olika versioner av sqlfrågan men inte hjälpt. Känns som om jag är helt blåst just nu :-)
Läs mitt föregående inlägg, och ställ dig frågan : "Hur skriver jag en SQL-fråga som kollar i tblUsers_block om det finns en blockering där den som är blockad är samma användare som försöker titta på sidan, och den som blockar är den som "äger" sidan?"
Detta verkar fungera, jag kan inte besöka den som blockade mig men jag kan besöka andra och mig själv
set RS = objConn.Execute("SELECT * FROM tblUsers u INNER JOIN tblUsers_block b ON u.userID = b.vemArBlockad where vemBlockar="& uid &" and vemArBlockad="& UserID)
If not RS.EOF then
Response.Redirect "visablocksida.asp"
End If