103528
Goto Top

Aus XML ausgelsene Zahl nicht in IF-Abfrage vergleichbar

Morgen miteinander,

ich erstelle mit mehreren PHP Dateien eine HTML Datei für die Sportseite unseres Vereins.
Dafür werden XML Dateien der jeweiligen Mannschaft ausglesen.

die XML Datei sieht beispielsweise wie folgt aus:

<?xml version="1.0" encoding="UTF-8" ?>
<daten>
  <runde>
    <nummer>1</nummer>
    <datum>10. November 2011</datum>
    <heim>Neufarn-Parsdorf 1</heim>
    <gast>Edlw. Kirchseeon 1</gast>
    <frei>0</frei>
    <absolviert>1</absolviert>
    <ergh>1509</ergh>
    <ergg>1500</ergg>
    <vermerk>Start der Hinrunde</vermerk>
  </runde>


und die PHP If-Else Abfrage wie folgt:

$xml = simplexml_load_file($conf['xml']);  

$i = $conf['runden_gesamt'];  
while($i >= 0){
$rnd = $i - 1;
$ergh = $xml->runde[$rnd]->ergh;
$ergg = $xml->runde[$rnd]->ergg;
$punkte_h = $xml->runde[$rnd]->punkte_h;
$punkte_g = $xml->runde[$rnd]->punkte_g;

If($conf['modus'] == 0){  
  if($ergh > $ergg){
  $hm = "g";  
  $gm = "v";  
  }elseif($ergh < $ergg){
  $hm = "v";  
  $gm = "g";  
  }else{
  $hm = "g";  
  $gm = "";  
  }
}elseif($conf['modus'] == 1){  
  if($punkte_h > $punkte_g){
  $hm = "g";  
  $gm = "v";  
  }elseif($punkte_h < $punkte_g){
  $hm = "v";  
  $gm = "g";  
  }else{
  $hm = "";  
  $gm = "";  
  }
}

Erklärung:

Erste If-Ebene frägt ab welche Art von Rundenwettkampf es ist.
Da wir Mannschaften haben in deren Ligen das Gesamtergebniss gewertet wird und eine in der
die Gesamtpunktzahl wertet.
0-> bedeutet Gesamtergebniss und 1 -> Punkte

Die zweite if-Ebene wertet aus welches Ergebniss besser is je nach dem die Punkte oder die erzielten Ringe (ist ein Schützenverein).

$hm und $gm stehen für Heimmarkierung und Gastmarkierung.
-> Wird in der HTML Datei verwendet für eine Markierung des Gewinners und des Verlieres.

---
Das Problem:

Es findet keine Formatierung statt.
Ich habe es bereits getestet.
Alle 14 durchrechnetet XML Einträge landen im Else-Bereich.

---
Erkennt jemand das Problem?
Ich bin da inzwischen leicht verwirrt, da ich aber schulisch auch aktuell kaum Zeit habe
stundenlang nach dem Problem zu suchen, zumal ich bereits einige Stunden investiert habe.
Daher hoffe ich mal hier findet sich der ein oder andere kluge Kopf
dem auffällt wo ich wieder einen dummen Fehler produziert habe.

In einer Alten Version hat es schließlich noch funkioniert.
Nur das es damals aus einer CSV datei ausgelesen wurde.


würde mich freuen
mfg Flo

Content-Key: 191814

Url: https://administrator.de/contentid/191814

Printed on: April 18, 2024 at 21:04 o'clock

Member: EvilMoe
EvilMoe Sep 25, 2012, updated at Sep 26, 2012 at 13:02:15 (UTC)
Goto Top
Hallo,

versuche es mal so
If($conf['modus'] == "0")  

Dementsprechend beim elseif.


EDIT: Du meintest glaube ich die anderen Abfragen.
Versucht die Variablen zu konvertieren?

$ergh = (int)$xml->runde[$rnd]->ergh; 
$ergg = (int)$xml->runde[$rnd]->ergg; 
$punkte_h = (int)$xml->runde[$rnd]->punkte_h; 
$punkte_g = (int)$xml->runde[$rnd]->punkte_g;
Member: nxclass
nxclass Sep 26, 2012 at 12:11:41 (UTC)
Goto Top
füge mal in Zeile 10 ein:
var_dump( array( $ergh, $ergg, $punkte_h, $punkte_g ) );
... dann siehst du sicher das Problem.
Mitglied: 103528
103528 Sep 26, 2012 at 17:32:04 (UTC)
Goto Top
Danke an nxclass und besonders EvilMoe.

Ich hab mir
var_dump( array( $ergh, $ergg, $punkte_h, $punkte_g ) );
gespart.

mit (int) hat es funktioniert.
Ich hatte schon die fermutung das es eventuell daran liegt das PHP die Zahlen als String sieht nicht als Zahl.

Danke für die Hilfe bie dem eher pipifax Problem.

Stand die letzten Tage extrem auf dem Schlauchd ie letzten Tage vor allem weil ich kaum Zeit habe die Letzte Zeit durch meine Schule vor 5 bin ich nich daheim.
Und Möglichst bis Oktober sollte es fertig sein also war das die schnellste Variante.

Also nochmals vielen dank. face-smile

mfg Flo