webForumDet fria alternativet

Skriva ut namn en gång vid dubblett

PHP

7 svar · 603 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Frågan#1

Hej
Skriver ut lite data från ett XML dokument.
Nu vill jag bara skriva ut $payout-sitename vid första förekomsten.

Såhär har jag gjort:

foreach($xml->mypayouts->payout as $payout){
	$row_class = ($row_class == "row-even") ? "row-odd" : "row-even";
	print("<tr class=\"" . $row_class . "\">\n"
		 ."<td class=\"table-content\">" . ($sitename == $payout->sitename ? "&nbsp;" : $payout->sitename) . "</td>\n"
		 ."<td class=\"table-content\">" . $payout->datetime . "</td>\n"
		 ."<td class=\"table-content\">" . $payout->period . "</td>\n"
		 ."<td class=\"table-content\">" . $payout->brake . "</td>\n"
		 ."<td class=\"table-content\">" . $payout->bonus . "</td>\n"
		 ."<td class=\"table-content\">" . $payout->nrake . "</td>\n"
		 ."<td class=\"table-content\">" . $payout->rakeback . "</td>\n"
		 ."<td class=\"table-content\">" . $payout->currency . "</td>\n"
		 ."</tr>\n");
	$sitename = $payout->sitename;
}

Jag har testat flera olika saker, men får inget att fungera, hur jag än gör, så innehåller alltid $sitename sidans namn det aktuella varvet.

Har givetsvis sökt på det här innan, men det jag hittade var radfärgning, något som även finns i min kod ovan och som fungerar, men trots att jag använder samma princip får jag inte ordning på det här.

Tack!

Medlem sedan feb. 20034 441 inlägg
#2

Efter en veckas semester högg jag tag i det här igen nu, men får det inte att funka.
Har testat en annan variant:

$sitename	= "";
foreach($xml->mypayouts->payout as $payout){
	$row_class = ($row_class == "row-even") ? "row-odd" : "row-even";
	if(($payout->sitename != $sitename)){
		$sitename = $payout->sitename;
	}else{
		$sitename = "";
	}
	print(	  "<tr class=\"" . $row_class . "\">\n"
		 ."<td class=\"table-content\">" . $sitename . "</td>\n"
		 ."<td class=\"table-content\">" . $payout->datetime . "</td>\n"
		 ."<td class=\"table-content\">" . $payout->period . "</td>\n"
		 ."<td class=\"table-content\">" . $payout->brake . "</td>\n"
		 ."<td class=\"table-content\">" . $payout->bonus . "</td>\n"
		 ."<td class=\"table-content\">" . $payout->nrake . "</td>\n"
		 ."<td class=\"table-content\">" . $payout->rakeback . "</td>\n"
		 ."<td class=\"table-content\">" . $payout->currency . "</td>\n"
		 ."</tr>\n");
	$sitename = $payout->sitename;
}

Men, samma resultat där, det $sitename skrivs ut varje varv i loopen, även fast namnet är detsamma.

Tacksam för alla tips!

Medlem sedan maj 20071 061 inlägg
#3

Jag är helt obekant med XML i PHP och kanske vore det enklare om man fick se XML filen, men jag gör ett försök.

Långsökt men har du prövat att skapa fler site variabler? Borde inte ha den minsta påverkan, men underligare saker har ju hänt så ....

$last_sitename       = "";
foreach($xml->mypayouts->payout as $payout){
        $row_class = ($row_class == "row-even") ? "row-odd" : "row-even";
        $this_sitename = $payout->sitename;
        if(($this_sitename != $last_sitename)){
                $text_sitename = $this_sitename;
                $last_sitename = $this_sitename;
        }else{
                $text_sitename = "";
        }
        print(    "<tr class=\"" . $row_class . "\">\n"
                 ."<td class=\"table-content\">" . $text_sitename . "</td>\n"
                 ."<td class=\"table-content\">" . $payout->datetime . "</td>\n"
                 ."<td class=\"table-content\">" . $payout->period . "</td>\n"
                 ."<td class=\"table-content\">" . $payout->brake . "</td>\n"
                 ."<td class=\"table-content\">" . $payout->bonus . "</td>\n"
                 ."<td class=\"table-content\">" . $payout->nrake . "</td>\n"
                 ."<td class=\"table-content\">" . $payout->rakeback . "</td>\n"
                 ."<td class=\"table-content\">" . $payout->currency . "</td>\n"
                 ."</tr>\n");
}
Medlem sedan feb. 20034 441 inlägg
#4

Tack för förslaget, men tyvärr blir resultatet detsamma.
Är det inte här väldigt konstigt?

Går det att deklarera eller typkonvertera variablar i PHP?

Medlem sedan maj 20071 061 inlägg
#5

Har du kollat så att det är exackt samma skrivet. Inga mellanslag, versaler eller gemener som skiljer ?

MickeA.com skrev:

Går det att deklarera eller typkonvertera variablar i PHP?

Förstår inte vad du menar, troligen pga bristande kunsskap innom området. sorry.

Medlem sedan feb. 20034 441 inlägg
#6

Det här är informationen som skrivs ut:

Eurobet 	20070309 	200703 	1000 	500 	1000 	400 	USD
Full Tilt 	20070516 	200701 	234,43 	2,3 	13,4 	23 	SEK
Full Tilt 	20070516 	200702 	24,43 	27,3 	10,4 	23 	SEK
Full Tilt 	20070516 	200704 	23,43 	13,3 	173,4 	23 	SEK
Full Tilt

Tanken är ju att "Full Tilt" bara ska skrivas ut en gång.

Medlem sedan dec. 2006608 inlägg
#7

Mina kunskaper i php är obefintliga, men i rimlighetens namn borde det ju vara nåt som blir galet i if-satsen.

Ser att du har dubbla parenteser. Ska det vara det?

Medlem sedan maj 20071 061 inlägg
#8

Rensa variabelerna ex. med chop() så vi vet 100% att det inte ligger ett returnslag eller annan skit någonstanns.

263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)