Frågan 23 aug. 2007 09:24 #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 ? " " : $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!
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!
Mr T Medlem sedan maj 2007 1 061 inlägg 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");
}
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?
Mr T Medlem sedan maj 2007 1 061 inlägg 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.
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.
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?
Mr T Medlem sedan maj 2007 1 061 inlägg Rensa variabelerna ex. med chop() så vi vet 100% att det inte ligger ett returnslag eller annan skit någonstanns.