webForumDet fria alternativet

while, echo funkar men inte $echo

5 svar · 186 visningar · startad av BeaR123

BeaR123Medlem sedan aug. 200190 inlägg
#1

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

2basMedlem sedan juni 2001181 inlägg
#2

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;
}
}

------------------
Gratis hemsideadress och email => http://www.has.it

pimmeMedlem sedan sep. 20011 086 inlägg
#3

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....

------------------
//pimme

BeaR123Medlem sedan aug. 200190 inlägg
#4

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

2basMedlem sedan juni 2001181 inlägg
#5

Visst går det att loopa igenom arrayen.

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

------------------
Gratis hemsideadress och email => http://www.has.it

BeaR123Medlem sedan aug. 200190 inlägg
#6

OK. Tack!

Jag ska testa det... Jag återkommer!

130 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)