Kvitter.eu

Jag och en kompis har börjat bygga en realtidssökmotor kallad Kvitter.eu. Just nu är version 0.8 släpt som är en betaversion för att få lite feedback från användarna. Gå in och sök och ge lite bra feedback. Vi behöver all vi kan få.

Och håll ögonen öppna för version 1. Då väntas saker som geo-sökning, mobil sida och filter.

Publicerat i Om mig, Programmering | Stängt för kommentarer

Aptana Studio

Hej, ville bara tipsa om ett bra program som jag använder när jag gör webbsidor. Aptana Studio heter det. Har du använt Eclipse någon gång så kommer du märka att det är väldigt likt. Aptana hanterar sedan alla filer i projekt, man kan enkelt koppla en ftp till ett projekt så går det jättesmidigt att ladda upp filer. Enda nackdelen som jag ser det är att det är ganska stort. Mer ett Outlook än en textredigerare vilket gör att det blir en hel del inställningar innan man är igång.  Men jag tycker du borde testa det, när man är igång är det mycket bättre än Notepad++.

Publicerat i Programmering | Stängt för kommentarer

MYSQL self join

Som jag skrev innan så håller jag nu på med en app till Facebook. Användare skall enkelt kunna gilla låtar, sedan skall man kunna se vilka användare som gillar samma musik. Därför namnet Music Alike, Lika Musik typ.

Jag satt här i dagarna och försökte komma på hur jag skall kunna få fram just detta från databasen. Databasen hänger ihop såhär (förenklad):

  • liked: Varje gång en användare gillar en låt så hamnar det här
  • tracks: Varje rad i Liked innehåller ett track_id som kopplas till en låt som giller här
  • user: En tabell för att användarana skall kunna ställa in saker, här främst för att de skall kunna visas som anonyma

För att hitta alla låtar som jag gillar, samt alla andra som gillar dem och hur många.  Så använder jag mig av något som kallas self join. Jag lägger alltså ihop en tabell med sig själv. Jag ska förklara litegranna ska vi se.

SELECT *,COUNT(*) as count FROM liked AS first
JOIN liked ON(first.track_id=liked.track_id AND first.uid=$user_id)
LEFT JOIN user ON(liked.uid=user.uid)
GROUP BY liked.uid
ORDER BY count DESC
LIMIT 1,50

Förklaring

  1. Väljer allt från liked samt räknar raderna (de som jag grupperar på), kallar även det här första valet för first, varför? Jo för att göra en join och där med en self join så måste man ha 2 st tabeller. Det jag gör är att jag döper om den första till first så att jag kan använda liked igen senare.
  2. Här joinar jag tabellen first med liked där first.track_id=liked.track_id. Alltså där låtarnas id är samma. Samt även på first.uid=$user_id. Här används $user_id, som är ett id-nummer för den inloggade användaren, för att välja ut alla låtar som den som är inloggad gillar. Nu finns bara de låtar som användaren gillar kvar från första tabellen (first). Sedan när jag joinar med tabellen liked igen så väljer jag alla låtar med samma track_id som i första(first). Det som är kvar är alla låtar som användaren gillar, samt även alla andra som gillar dessa låta r(eftersom de finns med i tabellen liked och deras rader också har track_id något från tabellen first).
  3. Det här steget behöver du bara om du vill ha en till tabell med i resultatet, annars hoppar du till rad 4.  Nu tar jag resultatet från innan och lägger ihop med tabellen user där uid är samma. Då får jag även med användaruppgifter, i mitt fall om användarens namn får visas eller om det ska stå anonym. Det viktiga i mitt fall.
  4. Nu grupperar jag alla rader på användar-id (uid). Man lägger ihop alla rader som har samma användar-id. Detta gör att vi bara får med en rad för varje användare. När databasen gör detta används även COUNT(*) vilket gör att den även räknar hur många rader den har lagt ihop.
  5. Sedan sorteras resultatet på count vilket är den kolumn som har räknat raderna som har lagts ihop.
  6. Jag använder LIMIT 1,50 för att bara få ut de 49 första, men även 1:an är viktig i det här fallet för annars får användaren med sig själv som den som har mest låtar gemensamt.

Det som har gjorts nu är att vi har fått ut en tabell med alla som gillar samma låt som användaren som är inloggad. Samt även hur många låtar som de har gemensamt. Nice va?

Något man kan tänka på är att det väldigt ofta blir flera kolumner med samma namn, detta kan ibland vara ett problem. En lösning är då att man kan använda MYSQL_NUM och ange vilket nummer kolumnen har istället för namn. Exempel:

while($row=mysql_fetch_array($result, MYSQL_NUM))
{
     echo $row[1];//Kommer då skriva ut värdet i kolumn 1
}

Publicerat i Invecklat, Programmering | Taggat , | Stängt för kommentarer

Tema

Hej, har ju försökt att hitta ett snyggt tema, som funkar! Alla snygga teman saknar en stilmall som behövs. Så ist så försöker jag nu göra mitt egna. Har hittat ett snyggt framework som jag kan börja bygga på så nu är det väl bara att sätta igång.

Annars har jag börjat göra en app till facebook, Music Alike, gå in och kolla vet jag.

Publicerat i Om bloggen | Taggat , | Stängt för kommentarer

One Line IF Statement

När du läser det här har jag väl förhoppningsvis fått igång min blogg igen. Håller just nu på med att fixa till en bra mall och lite småfix. Skulle nämligen vara kul att ha en blogg ingen.
Jag tänkte tipsa om en grymt bra grej som jag ofta använder. Ett ”One Line IF Statement”
Det är alltså en kort IF-sats som man har stor användning av vid tex följande.
1 Kommentar, 2 Kommentarer

När du läser det här har jag väl förhoppningsvis fått igång min blogg igen. Håller just nu på med att fixa till en bra mall och lite småfix. Skulle nämligen vara kul att ha en blogg ingen.
Jag tänkte tipsa om en grymt bra grej som jag ofta använder. Ett ”One Line IF Statement”Det är alltså en kort IF-sats som man har stor användning av vid tex följande.

1 kommentar men 2 kommentarer

Ser ut som följande:

I Php:

$num =0; //Random variabel du kollar efter
//((om detta)?gör detta:annars detta;
(echo $num.(($num==1)?" kommentar":" kommentarer");)
//Skriver ut kommentarer

Ni förstår principen.

Och i Javascript:

var num=1 //Random variabel du kollar efter
//(om detta?gör detta:annars detta);
(num==1?" kommentar": " kommentarer");
//SKriver ut kommentar, inte kommentarer

Lite snyggare i Javascript tycker jag men men. Ha det bra, syns snart

Publicerat i Programmering | Taggat , , , | Stängt för kommentarer