Hi ich programmiere gerade eine Aufstellung mit den Formationen und Aufstellung abspeichern.
Jetzt hab ich einen Fehler gefunden der echt schlimm ist, dennoch finde ich ihn nicht.
Es geht darum das bei der Aufstellungsseite die im Anhang dabei ist.
Dort sieht man welche Spieler man aufstellen kann und welche gerade aufgestellt sind.
Mein Problem ist das immer wenn ich auf Aufstellung speichern klicke. Alle Spielernamen perfekt in der Datenbank gespeichert werden außer meine Stürmer. Es ist immer ein Leerzeichen nach dem Namen dabei und so werden die Namen nicht richtig auf die Spiele übertragen.
Also ich erkläre mal den Ablauf. Zuerst werden mal alle Spielernamen und Stärken in Arrays der jeweiligen Positionen gespeichert.
aufstellung.php
Danach werden diese in einer Drop-Down Liste zur Auswahl angezeigt. Beispiel wir haben 4 Stürmer zur Auswahl wobei man nur einen auswählen kann. Die Spielernamen werden angezeigt und die Stärke in der Klammer sieht man beim Bild im Anhang.
formationen.php (Datei ist in aufstellung.php eingebunden)
So wenn man jetzt auf Aufstellung speichern klickt. wird nun das aufstellen.php aufgerufen. Das teilt nun beim Leerzeichen den String in die Teile Stärke in der Klammer und den Nachnamen. Nun soll es den Nachnamen in die Datenbank in die jeweilige Position speichern. Funktioniert überall einwandfrei nur bei den Stürmer ist immer ein Leerzeichen zuviel obwohl ich es genau gleich habe wie bei den anderen Positionen. Jetzt würdet ihr sagen ist leicht zu beheben schneide einfach noch einen Buchstaben weiter ab. Würde auch funtkionieren, doch das dumme ist das es bei den Freistoßschützen, Elfmeterschützen usw. genau das gleiche Problem ist.
Wähle ich einen Torwart als Kapitän wird sein Nachname ohne Leerzeichen danach gespeichert. Wähle ich einen Stürmer wird sein Nachname mit einem Leerzeichen danach gespeichert. Das ist echt problematisch.
aufstellen.php
Wo liegt mein Fehler????


Sind jeweils immer Teile von den Dateien. Denke das sollte genügen.
Jetzt hab ich einen Fehler gefunden der echt schlimm ist, dennoch finde ich ihn nicht.
Es geht darum das bei der Aufstellungsseite die im Anhang dabei ist.
Dort sieht man welche Spieler man aufstellen kann und welche gerade aufgestellt sind.
Mein Problem ist das immer wenn ich auf Aufstellung speichern klicke. Alle Spielernamen perfekt in der Datenbank gespeichert werden außer meine Stürmer. Es ist immer ein Leerzeichen nach dem Namen dabei und so werden die Namen nicht richtig auf die Spiele übertragen.
Also ich erkläre mal den Ablauf. Zuerst werden mal alle Spielernamen und Stärken in Arrays der jeweiligen Positionen gespeichert.
aufstellung.php
PHP-Code:
$result2 = mysql_query("SELECT * FROM spieler WHERE Verein = '$row[Vereinsname]' ORDER BY Staerke DESC");
$sturm = array();
$mittelfeld = array();
$abwehr = array();
$torwart = array();
while ($row2 = mysql_fetch_assoc($result2)) {
if($row2["Position"] == "Sturm") {
$sturm[] = $row2["Nachname"];
$sturm[] = $row2["Staerke"];
} elseif($row2["Position"] == "Mittelfeld") {
$mittelfeld[] = $row2["Nachname"];
$mittelfeld[] = $row2["Staerke"];
} elseif($row2["Position"] == "Abwehr") {
$abwehr[] = $row2["Nachname"];
$abwehr[] = $row2["Staerke"];
} elseif($row2["Position"] == "Torwart") {
$torwart[] = $row2["Nachname"];
$torwart[] = $row2["Staerke"];
}
}
formationen.php (Datei ist in aufstellung.php eingebunden)
PHP-Code:
<select name="Sturm1">
<?php
$end = count($sturm);
$x = 0;
while ($x < $end) {
$y = $x + 1;
if ($row2["Spieler6"] == $sturm[$x]) {
echo "<option selected='selected'>$sturm[$x] ($sturm[$y])</option>";
} else {
echo "<option>$sturm[$x] ($sturm[$y])</option>";
}
$x = $x + 2;
}
?>
</select>
<select name="Mittelfeld1">
<?php
$end = count($mittelfeld);
$x = 0;
while ($x < $end) {
$y = $x + 1;
if ($row2["Spieler4"] == $mittelfeld[$x]) {
echo "<option selected='selected'>$mittelfeld[$x] ($mittelfeld[$y])</option>";
} else {
echo "<option>$mittelfeld[$x] ($mittelfeld[$y])</option>";
}
$x = $x + 2;
}
?>
</select>
<?php
$result3 = mysql_query("SELECT * FROM spieler WHERE Verein = '$row[Vereinsname]' ORDER BY Marktwert DESC");
?>
<select name="Elfmeter">
<?php
while ($row3 = mysql_fetch_assoc($result3)) {
$result4 = mysql_query("SELECT * FROM attribute WHERE Username = '$row3[Username]'");
$row4 = mysql_fetch_assoc($result4);
$elfmeter = ($row4["SK"] + $row4["SG"]) / 2;
$elfmeter = round($elfmeter);
if ($row2["Elfmeter"] == $row3["Nachname"]) {
echo "<option selected='selected'>$row3[Nachname] ($elfmeter)</option>";
} else {
echo "<option>$row3[Nachname] ($elfmeter)</option>";
}
}
?>
</select>
Wähle ich einen Torwart als Kapitän wird sein Nachname ohne Leerzeichen danach gespeichert. Wähle ich einen Stürmer wird sein Nachname mit einem Leerzeichen danach gespeichert. Das ist echt problematisch.
aufstellen.php
PHP-Code:
$teile = explode(" ", $_POST["Sturm1"]);
if ($teile[1] == "(100)") {
$spieler6 = substr($_POST["Sturm1"], 0 , strlen($_POST["Sturm1"])-5);
} else {
$spieler6 = substr($_POST["Sturm1"], 0 , strlen($_POST["Sturm1"])-4);
}
$teile = explode(" ", $_POST["Mittelfeld2"]);
if ($teile[1] == "(100)") {
$spieler5 = substr($_POST["Mittelfeld2"], 0 , strlen($_POST["Mittelfeld2"])-5);
} else {
$spieler5 = substr($_POST["Mittelfeld2"], 0 , strlen($_POST["Mittelfeld2"])-4);
}
$teile = explode(" ", $_POST["Elfmeter"]);
if ($teile[1] == "(100)") {
$elfmeter = substr($_POST["Elfmeter"], 0 , strlen($_POST["Elfmeter"])-5);
} else {
$elfmeter = substr($_POST["Elfmeter"], 0 , strlen($_POST["Elfmeter"])-4);
}
Wo liegt mein Fehler????



Sind jeweils immer Teile von den Dateien. Denke das sollte genügen.

Kommentar