Mellan anropet till mysql_query och din while-loop så anropar du mysql_fetch_array(). Det gör att du hämtar första raden i resultatet. Sen gör du ingenting med den raden, utan kör din while-loop där du hämtar nästa rad i resultatet.
P.S. mysql-funktionerna i PHP är deprecated vilket betyder att de kommer att försvinna i någon framtida version av PHP. Att använda sig av dessa funktioner är alltså inte att rekommendera. Titta gärna på mysqli eller pdo istället. D.S.
Med mysqli kan du välja att jobba antingen objektorienterat eller procedurellt.
Objektorienterat:
$mysqli = new mysqli("localhost", "user", "password", "database");
$res = $mysqli->query('SELECT * FROM aktiviteter WHERE Datum > now() ORDER BY Datum ASC LIMIT 4');
while ($row = $res->fetch_assoc()) {
echo $row['Titel'], '<br />';
}
Procedurellt:
$mysqli = mysqli_connect("localhost", "user", "password", "database");
$res = mysqli_query($mysqli, "SELECT * FROM aktiviteter WHERE Datum > now() ORDER BY Datum ASC LIMIT 4");
while ($row = mysqli_fetch_assoc($res)) {
echo $row['Titel'], '<br />';
}
Själv gillar jag PDO väldigt mycket, det är då enklare om man i framtiden vill byta till en annan typ av databas, t.ex. postgreSQL. Med PDO är det objektorienterat som gäller :)
PDO:
$pdo = new PDO('mysql:dbname=database;host=localhost', 'user', 'password');
$sql = 'SELECT * FROM aktiviteter WHERE Datum > now() ORDER BY Datum ASC LIMIT 4';
foreach ($pdo->query($sql) as $row) {
echo $row['Titel'], '<br />';
}
Både mysqli och pdo har stöd för prepared statements vilket hjälper till att skydda mot sql injections.