---
title: "Hämtar inte sista/första posten i databasen"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/192566-hämtar-inte-sista-första-posten-i-databasen"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Inferis"
published: "2015-01-08T14:29:14.000Z"
updated: "2015-01-09T10:49:56.000Z"
replies: 5
views: 1816
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/192566-hämtar-inte-sista-första-posten-i-databasen"
---

# Hämtar inte sista/första posten i databasen

## #1 — Inferis, 2015-01-08T14:29Z

Hej!
Vill någon själ förklara för mig varför jag inte får fram den första resp sista posten i databasen?

```
mysql_query("SET NAMES 'utf8'");

 $sql = mysql_query("select * from aktiviteter WHERE Datum > now() ORDER BY Datum ASC LIMIT 4");
 $row=mysql_fetch_array($sql);

while($row=mysql_fetch_array($sql))
 {

 $titeln=$row['Titel'];
 $id=$row['ID'];
 $msg=$row['Innehall'];
 $datumet=$row['Datum'];
 $adressen=$row['adress'];

$time  = strtotime($datumet);
$day   = date('d',$time);
$month = date('m',$time);
$year  = date('Y',$time);

echo "<li><div class='entry-meta'>";
echo "<span class='date'>$day</span><span class='month'>";
echo "$month";
echo "</span></div>";
echo "<h6><a href='aktiviteter.php?id=$id'>$titeln</a></h6>";
echo "<span class='place'>$adressen</span>";
echo "</li>";

}
```

Permalänk: https://www.webforum.nu/p/192566

## #2 — metalboy, 2015-01-08T14:33Z

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.

Permalänk: https://www.webforum.nu/p/2318144

## #3 — Inferis, 2015-01-08T14:35Z

Tack för svar. 
Hur skulle det se ut med mysqli istället då?

Permalänk: https://www.webforum.nu/p/2318145

## #4 — metalboy, 2015-01-08T14:51Z

Med mysqli kan du välja att jobba antingen objektorienterat eller procedurellt.

Objektorienterat:

```php
$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:

```php
$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:

```php
$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.

Permalänk: https://www.webforum.nu/p/2318146

## #5 — Pedda, 2015-01-08T14:58Z

\+1 för PDO

<http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html>

Permalänk: https://www.webforum.nu/p/2318147

## #6 — Inferis, 2015-01-09T10:49Z

Tack för ett väldigt utförligt svar, metalboy! Och tack Pedda för länken!

Permalänk: https://www.webforum.nu/p/2318150

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/192566-hämtar-inte-sista-första-posten-i-databasen
