Jag har en tabell som innehåller en sidas innehåll. Om användaren inte har skapat ett eget innehåll så ska default-innehållet visas. Jag vill alltså ha en query som i första hand hämtar användarens egna innehåll och om det inte finns så ska default-innehållet istället hämtas. Har användaren skapat ett eget så finns default fortfarande kvar. Hämta antingen det ena eller det andra, inte båda.
Nähe vänta nu... Det fungerar bra om det endast är ett innehåll... Om en sida har flera innehåll så hämtas bara det ena... Den ska ju kunna ha tex. 2 egna innehåll och 3 default innehåll. Kanske var lite oklar... Hjälp!
Låt säga att en sida innehåller 5st default-innehåll. Alla 5 + egen-skapade-innehåll ska loopas ut. Har användaren ändrat något default-innehåll så sparas detta som ett eget innehåll (default-innehållet förblir intakt men visas inte på sidan)...
Alltså en sida kan innehålla fler en ett innehåll, både default (id=0) och egna... Den kod jag fick av dig fungerar perfekt, men endast om det är ett innehåll.
Nej, vänta nu föresten. Det ska ju gå tycker jag... Det som avgör och kan hålla innehållet i sär är dess typ. Så varje sida får inte innehålla innehåll av samma typ.
Alltså:
Hämta text från sidor där id=<id> eller id=0 och typ inte finns med id=<id>
Hämta "text" från "contents" där "id" är "$id" eller där "id" är "0"
Finns både id=$id och id=0 på samma "typ" så skall endast posten med id=$id hämtas. Är det inte samma "typ" så skall båda hämtas - aldrig två av samma typ.
<?
// Hämtar innehåll
$sql= mysql_query("SELECT text FROM sidor WHERE sektion='1' AND userID='$_SESSION[userID]' OR userID='0' AND NOT EXISTS (SELECT userID FROM sidor WHERE userID='$_SESSION[userID]')");
// Loopar ut innehållet
while ($r = mysql_fetch_array($sql)) {
?>
<p><?=$r["text"]?></p>
<?
}
?>
Detta skall då resultera i att sidan fylls med den text som är sparad i databasen för just denna användare. Koden ovan fungerar ifall användaren inte har något eget innehåll, men så fort denne har det så visas bara det och inte de andra default-innehållena.