Vinnaren i pepparkakshustävlingen!
2012-01-25, 14:22
  #1
Medlem
pysokats avatar
Hallå!

Jag ska göra en databas över skivor, artister och producenter. Dessa ska vara sammankopplade så att man kan söka på något namn på någon av dessa och då få upp skivan, artisten och producenten. Dessa måste då ha unika IDn för att sedan kunna generera länkar automatiskt.

Fråga är då:

Jag har en skivtabell, med id som använder auto increment (alla skivor kommer vara olika kan vi utgå från). I skivtabellen har jag även ett artist-id. Mitt problem är nu att om jag lägger in en ny skiva och skriver in artistens NAMN, då ska databasen kolla om artistens namn redan finns med i listan och i så fall lägga till ett siffer-id till denna. Om artisten inte finns med kan man skapa ett nytt siffer-id för den, men om den finns med sen tidigare ska man lägga samma siffer-id som redan fanns.

Hur löser man detta?
Citera
2012-01-25, 14:28
  #2
Medlem
SELECT * FROM SkivTabell WHERE artist='$artist' AND album='$album'

if !mysql_numrows
INSERT INTO SkivTabell (col1,col2,col3) VALUES ($artist, $album, $årtal)
else
Gör inget

Kolla med mysql_numrows om det finns eller inte finns någon row där artist har samma värde som $artist variablen och album har samma värde som $album variablen.
Om värdet är noll så kör en INSERT med värdena, annars gör inget / echo "Album finns redan" t.ex
Hoppas det gav någon sorts bild över hur man kan göra, finns säkert effektivare sätt också.
__________________
Senast redigerad av eklips 2012-01-25 kl. 14:32.
Citera
2012-01-25, 14:56
  #3
Moderator
Protons avatar
Hade det bara varit fråga om id eller annat som kunnat tänkas vara persistent över en längre tid hade man ju utan vidare kunnat använda MySQLs förträffliga inbyggda konstruktion ON DUPLICATE KEY UPDATE.

Prova att googla på den ska du få se på en ruskigt användbar sak, den har besparat mej bra många rader kod i mina dagar.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback