---
title: "while, echo funkar men inte $echo"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/16092-while-echo-funkar-men-inte-echo"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "BeaR123"
published: "2001-09-13T19:20:00.000Z"
updated: "2001-09-13T21:12:00.000Z"
replies: 5
views: 188
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/16092-while-echo-funkar-men-inte-echo"
---

# while, echo funkar men inte $echo

## #1 — BeaR123, 2001-09-13T19:20Z

Grr!! Jag har gjort ett script och i en del ska det visa all text i några kolumner i en mysql databas. 

Jag har använt mig utav koden: 

```
$svar = mysql_query("SELECT * FROM counter");
	while($stats = mysql_fetch_array($svar)) {		
	echo "$stats[ID] & $stats[Namn]"; }
```

Det fungerar utmärkt och skriver ut alla efter varandra, men sen måste jag göra om det så man kan skriva ut lite html högst upp och sedan i mitten den texten och till sist lite mer html. Så jag gjorde samma som ovan fast istället för echo ""; använde jag $echo = "";

För att senare i html koden kunna skriva ut $echo där jag vill ha all text från databsen. Men det fungerar inte. Den bara skriver ut den sista kolumnen i databasen. Är det någon som vet varför?

Fråga 2:
Kan man hämta info från en databas och skriva ut första kolumnen i en html tabell med en bg färg och sedan kolumn 2 i en annan bg färg och sedan kolumn 3 i den första bg färgen igen, också vidare...?

Tack för svar...
// Björn

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

## #2 — 2bas, 2001-09-13T20:45Z

Hejsan,

fråga 1: 
beror på att du loopar genom alla svaren från databasen och skriver över $echo hela tiden. Därför ser du bara den sista. Ett sätt att ordna det tex lägga in alla rader i en array.

```
$svar = mysql_query("SELECT * FROM counter");
while($stats = mysql_fetch_array($svar)) { 
$echoarray[]= "$stats[ID] & $stats[Namn]"; }
```

sen kan du skriva ut vilken av raderna du vill mha echo $echoarray\[nr\] där nr är någon av raderna.

fråga 2:

Ett enkelt sätt är:

```
$bgcol1="#FFFFFF";
$bgcol2="#EEEEEE";
$vippa=1;
$svar = mysql_query("SELECT * FROM counter");
echo "<TABLE>";
while($stats = mysql_fetch_array($svar)) { 
if($vippa>0){
echo "<TR bgcolor=\"$bgcol1\"><TD>hej</TD></TR>";
$vippa=$vippa*-1;
}else{
echo "<TR bgcolor=\"$bgcol2\"><TD>hej</TD></TR>";
$vippa=$vippa*-1;
}
}
```

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

## #3 — pimme, 2001-09-13T20:47Z

Använd $echo .= "hepp";
Det lägger till "hepp" sist i strängen. 

Fråga 2: skriv såhär: for($i=0;$i\<$antal_rader; $i++){
$check = $i % 2;
switch($i){
CASE 0: $farg = "";BREAK;
CASE 1: $farg = "";BREAK;
}
}
Sen skriver du $farg som bakgrundfärg....

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

## #4 — BeaR123, 2001-09-13T21:05Z

OK tack, men lite problem... :D 

"sen kan du skriva ut vilken av raderna du vill mha echo $echoarray\[nr\] där nr är någon av raderna."

Här skulle jag vilja skriva ut alla raderna genom att bara skriva ett kommando eller något. Eftersom det kan variera från 1 rad till 4000 rader så verkar det lite jobbigt att skriva ut $echoarray\[1\] $echoarray\[2\] $echoarray\[3\] ect. 
Går det att fixa?!

// Björn

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

## #5 — 2bas, 2001-09-13T21:10Z

Visst går det att loopa igenom arrayen.

```
for ($i=0;$i<count($echoarray);$i++){
echo $echoarray[$i];
}
```

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

## #6 — BeaR123, 2001-09-13T21:12Z

OK. Tack! 

Jag ska testa det... Jag återkommer!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/16092-while-echo-funkar-men-inte-echo
