---
title: "loopa fram tabellinnehåll - en rad för lite.."
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/121865-loopa-fram-tabellinnehåll-en-rad-för-lite"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "yaz"
published: "2005-02-06T21:27:02.000Z"
updated: "2005-02-07T12:05:27.000Z"
replies: 6
views: 482
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/php/121865-loopa-fram-tabellinnehåll-en-rad-för-lite"
---

# loopa fram tabellinnehåll - en rad för lite..

## #1 — yaz, 2005-02-06T21:27Z

Jag försöker loopa fram nyheter från min news-tabell. Den innehåller 3st rader just nu men endast 2 visas på sajten. Beroende på vilken SORT BY jag använder så visas antingen de två sista eller de två första raderna. 

Jag har sökt som en galning efter motsvarigheten till "do until rs.eof" (ASP-snubbe från början) och den kod jag funnit ger mig endast 2 rader. 

Ser ungefär ut så här: 

```php
while ($rowNEWS = mysql_fetch_array($resultNEWS)) {

echo $rowNEWS['date']."__".$rowNEWS['time']; 
echo $rowNEWS['new']; 
}
```

 

adressen är <https://www.ferrypin.net>. Jag kämpar med "news" där till vänster..

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

## #2 — Matte, 2005-02-06T22:05Z

Hur ser din kod ut innan dessa rader ?

Vet inte hur du ha gjort, men någon gång emellanåt ser man dom som kör ett extra mysql_fetch_array() före while-loopen (ger en effekt, ungefär som du beskriver).
Har du en sådan, tag då bort den.

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

## #3 — yaz, 2005-02-06T22:30Z

Påverkas det där jag sätter $rowNEWS till mysql_fetch_array?

```php
$db = mysql_connect('localhost', 'blä', 'blarhblarh'); 
      mysql_select_db('ferrypin_net'); 

// hämtar NEWS och lägger i variabeln resultNEWS 
// och sedan används rowNEWS för att loopa fram info från databasen
$resultNEWS = mysql_query("SELECT date, time, new FROM news") or die (mysql_error()); 
$rowNEWS = mysql_fetch_array($resultNEWS);
```

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

## #4 — yaz, 2005-02-06T23:05Z

Jag har plockat ut koden som inte funkar i en separat fil, för att testa i ren miljö. 

<http://www.ferrypin.net/dbtest.php> 

Jag har nu 4st nyheter i tabellen men endast 3st visas. 

jag använder 

```php
$num_rows = mysql_num_rows($resultNEWS);
echo "$num_rows News";
```

 och där ser man att det verkligen finns 4st rader. 

Här är HELA källkoden för filen **dbtest.php**: 

```php
<?php echo "<"."?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">
<head>
<title>f e r r y p i n</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="ferrypin_default.css" rel="stylesheet" type="text/css" />
</head>
<body bgcolor="#C2C287" text="#000000" id="all" leftmargin="10" topmargin="10" marginwidth="10" marginheight="10" link="#660000" vlink="#660000" alink="#660000">
<?php
// connecting to the base

$db = mysql_connect('localhost', 'blä', 'blarhblarh'); 
      mysql_select_db('ferrypin_net'); 

// hämtar NEWS och lägger i variabeln resultNEWS 
// och sedan används rowNEWS för att loopa fram info från databasen
$resultNEWS = mysql_query("SELECT id, date, time, new FROM news") or die (mysql_error()); 
$rowNEWS = mysql_fetch_array($resultNEWS); 

		while ($rowNEWS = mysql_fetch_array($resultNEWS))
		{
			print "<span class=\"newsDate\">".$rowNEWS['date']."__".$rowNEWS['time']."</span>";
			print $rowNEWS['new']; 
		} 
		
$num_rows = mysql_num_rows($resultNEWS);
echo "$num_rows News";
		?>
</body>
```

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

## #5 — decent, 2005-02-06T23:27Z

Ja, det påverkas av att du läser ett resultat innan du hamnar i loopen. Så tipset att ta bort raden bör kunna hjälpa dig. 

Började undra för mig själv om rewind fungerar på MySQL-resultat.

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

## #6 — aasah, 2005-02-06T23:30Z

Följ Mattes råd! 

```php
$resultNEWS = mysql_query("SELECT id, date, time, new FROM news") 
or die (mysql_error()); 
$rowNEWS = mysql_fetch_array($resultNEWS); //<- ta bort denna rad!!!
while ($rowNEWS = mysql_fetch_array($resultNEWS)) {
   //....
```

Den nyhet som ligger först i ditt recordset kommer inte ut, eftersom du i whileslingan där utskrift sker OMEDELBART skriver över den med rad 2.

Om du tar bort raden, kommer alla rader att gås igenom i whileslingan däremot.

(Sedan hoppas jag att det inte visar mer än du hade tänkt dig i din connect-sats... dvs du har väl dummyvärden där? :o)

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

## #7 — yaz, 2005-02-07T12:05Z

Ja, jag har preparerat connect-infon lite granna ;)

Tack för era tips, ska prova dem direkt! 

EDIT: Men om jag tar bort den raden så "existerar" variablen $rowNEWS inte.. hur ska jag sedan kunna använda den..?

EDIT2: Yesh! Det funkar! NUU förstår jag vad som händer. while-slingan sätter variabeln varje gång så den behöver inte definieras innan. Tack till Matte som kom med svaret och till er andra som hjälpte till att förklara!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/121865-loopa-fram-tabellinnehåll-en-rad-för-lite
