![]() |
Visa liknande titlar
Hej.
Jag försöker klura ut hur jag hämtar liknande titlar som har likadan genres som den titeln man är inne på för tillfället, men det går inte riktigt som jag vill. Min lösning visar inga liknande titlar alls, även att det finns 1 liknande. PHP-kod:
Kan ni se vad som är problemet måntro? Hade varit tacksam för ett snabbt svar. Tack på förhand. |
Ganska svårt att avgöra utan att se data, en dump av titles & title_genres med de berörda raderna hade hjälpt.
Och vart landar du..? På "echo 'Inga liknande titlar kunde hittas';" eller? Utan data är det inte lätt för en utomstående att avgöra. |
Tack för ditt svar, Reconsider.
Japp, jag landar på "Inga liknande titlar kunde hittas". Om du menar hur SQL'n för titles och title_genres ser ut, så kommer den här: Kod:
CREATE TABLE IF NOT EXISTS `titles` ( |
Eftersom du använder dig av INT tror jag inte det är bra att placera '' runt datan..
Sen hade jag väl lagt upp det såhär istället.. PHP-kod:
Du hade WHERE villkor1 AND villkor2 OR villkor1 AND villkor3 Genom att lägga in () delar du upp det till WHERE (villkor1 AND villkor2) OR (villkor1 AND villkor3) Dock förkortade jag också ledet genom att eliminera andra placeringen av villkor1. |
Tack för ditt snabba svar, Reconsider :)
Jag testade att lägga in din lösning, men jag får fortfarande samma "fel" som jag skrev i mitt förra inlägg. När jag valde att eka ut SQL-frågan, blev resultatet såhär: SELECT * FROM titles WHERE id != 1 AND (post_genre_01 = 17 OR post_genre_02 = 19) ORDER BY post_name ASC Jag var då inne på informations-sidan om titeln som har ID-numret 1, som i sin tur har ID-numren 17 (drama) och 19 (romantik) för genren. Det finns en till titel inlagd i databasen, som stämmer överrens med genren drama, men denna vill inte visas. |
Inte så att du har genre_01 och genre_02 "tvärtom" mot hur du egentligen tänker?
Kanske menar du egentligen SELECT * FROM titles WHERE id != 1 AND (post_genre_01 = 17 OR post_genre_02 = 19 OR post_genre_01 = 19 or post_genre_02 = 17) ORDER BY post_name ASC |
används "field != value " i SQL?
är det inte "field NOT IS value" eller "field<> value" |
Citat:
Kod:
SELECT * FROM titles WHERE id != '".$title['id']."' AND post_genre_01 = '".(int)$genre1['id']."' OR id != '".$title['id']."' AND post_genre_02 = '".(int)$genre2['id']."' OR id != '".$title['id']."' AND post_genre_01 = '".(int)$genre2['id']."' OR id != '".$title['id']."' AND post_genre_02 = '".(int)$genre1['id']."' ORDER BY post_name ASC |
Citat:
!= är icke-ANSI-varianten av <> men en del databaser har stöd för den operatorn också. |
Alla tider är GMT +2. Klockan är nu 08:07. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson