webForumDet fria alternativet

Lite klurigt. Vill ta bort ett tecken ur loop ;)

PHP

4 svar · 302 visningar · startad av bassebhu

Medlem sedan nov. 20016 480 inlägg
Frågan#1

Hej alla glada!

Jag har trasslat in mig rätt rejält i en funktion där jag loopar ut kategorier som ska finnas med i ett javascript.

Min kod:

echo "catArr[0] = \"0\";";
$num = 1;
while($rad = mysql_fetch_array($result)) {
	$tidigare_kategori = $kategori;
	$kategori = $rad["kat"];
	if($kategori != $tidigare_kategori) {
		if($num > 1) { echo "\";\n"; }
		echo "catArr[".$num."] = \"";
		$num = $num+1;
	}
	echo $rad["id"].";".$rad["underkat"]."|";
} 
echo "\";";

Detta kan resultera följande om man har:
Huvudkategori: kat1 och Underkategorier: ukat1 och ukat2
Huvudkategori2: kat2 och Underkategorier2: ukat3 och ukat4

catArr[0] = "0";
catArr[1] = "1;ukat1|2;ukat2[b]|[/b]";
catArr[2] = "3;ukat3|4;ukat4[b]|[/b]";

Jag har säkert löst det jättedumt och ni förstår kanske inte vad funktionen är till för, men vid varje | så splittas den med en funktion i javascript som skapar ett nytt selectfält.

Allt funkar, men jag vill ha bort de sista | (fetmarkerade ovan) på varje rad.

Hur skriver jag den funktionen? :) Tackar!

Medlem sedan nov. 20016 480 inlägg
#2

woho. löste det själv tro det eller ej. fultrix eller vad haha ;) jaja, det funkar ju så :P

echo "catArr[0] = \"0\";";
$num = 1;
while($rad = mysql_fetch_array($result)) {
	$tidigare_kategori = $kategori;
	$kategori = $rad["kat"];
	if($kategori != $tidigare_kategori) {
		if($num > 1) { $katstring = $katstring."\";\n"; }
		$katstring = $katstring."catArr[".$num."] = \"";
		$num = $num+1;
	}
	$katstring = $katstring.$rad["id"].";".$rad["underkat"]."|";
} 
$katstring = $katstring."\";";
echo str_replace("|\";","\";",$katstring);
Medlem sedan juni 20006 031 inlägg
#3

Bara en liten fundering

Kan du inte kolla med en if sats om $num > 1 så skriver den ut | id;underkat alltså med | först istället.

Medlem sedan okt. 2001538 inlägg
#4

/r : Jag är för trött för att hålla på att koda...
Natti natti

MVH Patrik

Medlem sedan nov. 20016 480 inlägg
#5

Pedda skrev:

Bara en liten fundering

Kan du inte kolla med en if sats om $num > 1 så skriver den ut | id;underkat alltså med | först istället.

Det var också en intressant lösning. Ska kolla på det sen. Kanske smidar upp koden med nån millisekund :) tack :)

279 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
151 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
152 ms — ändringar (db)