Ich hoffe mir kann jmd helfen, ich schau da seid 2 Tagen drauf und seh den Fehler net, vermutlich ist es was ganz einfaches und ich bin schon betriebsblind
Ich habe Truppendaten gespeichert, mit
Anzahl (truppen_anzahl)
Kennnummer PID (truppen_nummer)
Einheitentyp (truppen_kennung)
Armee (armee)
Folgendes will ich erreichen, pro Armee sollte jeder Einheitentyp (truppen_kennung) nur einmal vorkommen, leider ist dies nicht der Fall und den Fehler muss ich ersteinmal beheben
Dazu will ich also alle Armeen finden, in denen ein Einheitentyp mehrfach vorkommt, um diese Einheitentypen zu löschen, und einen neuen Eintrag erstellen, der die Summe dieser ganzen Einheiten enthält, quasi die Summe der Spalte truppen_anzahl bei denen armee und truppen_kennung gleich ist
Ich dachte auch es funktioniert, aber manchmal kommen Zahlen raus, die ich nicht verstehe
Zum verständnis der SQL Code und dann ne Ausgabe, ich würde mich sehr freuen, wenn mir jemand helfen kann
Um diesen Befehl gehts
beispiel Ausgaben
da klappts zb
nummer: 220 besitzer: 5 kennung: 89 anzahl: 202 armee: 7 anz: 257
+++ nummer: 220 besitzer: 5 kennung: 89 anzahl: 202 armee: 7
+++ nummer: 24 besitzer: 5 kennung: 26 anzahl: 2 armee: 7
+++ nummer: 35 besitzer: 5 kennung: 58 anzahl: 99 armee: 7
+++ nummer: 42 besitzer: 5 kennung: 89 anzahl: 55 armee: 7
+++ nummer: 103 besitzer: 5 kennung: 183 anzahl: 1 armee: 7
+++ nummer: 185 besitzer: 5 kennung: 251 anzahl: 1 armee: 7
da net
nummer: 326 besitzer: 78 kennung: 341 anzahl: 90 armee: 62 anz: 294
+++ nummer: 326 besitzer: 78 kennung: 341 anzahl: 90 armee: 62
+++ nummer: 336 besitzer: 78 kennung: 343 anzahl: 1 armee: 62
+++ nummer: 610 besitzer: 78 kennung: 488 anzahl: 36 armee: 62
+++ nummer: 655 besitzer: 78 kennung: 488 anzahl: 1 armee: 62
+++ nummer: 676 besitzer: 78 kennung: 488 anzahl: 3 armee: 62
+++ nummer: 706 besitzer: 78 kennung: 488 anzahl: 1 armee: 62
+++ nummer: 782 besitzer: 78 kennung: 341 anzahl: 2 armee: 62
+++ nummer: 772 besitzer: 78 kennung: 341 anzahl: 2armee: 62
+++ nummer: 795 besitzer: 78 kennung: 341 anzahl: 4 armee: 62
der fehler beträgt den faktor 3, dass kann man ein paar mal beobachten, leider weiss ich net wie mir das helfen soltle
Ich habe Truppendaten gespeichert, mit
Anzahl (truppen_anzahl)
Kennnummer PID (truppen_nummer)
Einheitentyp (truppen_kennung)
Armee (armee)
Folgendes will ich erreichen, pro Armee sollte jeder Einheitentyp (truppen_kennung) nur einmal vorkommen, leider ist dies nicht der Fall und den Fehler muss ich ersteinmal beheben
Dazu will ich also alle Armeen finden, in denen ein Einheitentyp mehrfach vorkommt, um diese Einheitentypen zu löschen, und einen neuen Eintrag erstellen, der die Summe dieser ganzen Einheiten enthält, quasi die Summe der Spalte truppen_anzahl bei denen armee und truppen_kennung gleich ist
Ich dachte auch es funktioniert, aber manchmal kommen Zahlen raus, die ich nicht verstehe
Zum verständnis der SQL Code und dann ne Ausgabe, ich würde mich sehr freuen, wenn mir jemand helfen kann
Um diesen Befehl gehts
PHP-Code:
"SELECT DISTINCT t1.*, SUM(t1.truppen_anzahl) as anz
FROM truppen t1, truppen t2 WHERE t1.armee=t2.armee
AND t1.truppen_nummer<>t2.truppen_nummer
AND t1.truppen_kennung=t2.truppen_kennung
GROUP BY armee, truppen_kennung"
PHP-Code:
$query = "SELECT DISTINCT t1.*, SUM(t1.truppen_anzahl) as anz
FROM truppen t1, truppen t2 WHERE t1.armee=t2.armee
AND t1.truppen_nummer<>t2.truppen_nummer
AND t1.truppen_kennung=t2.truppen_kennung
GROUP BY armee, truppen_kennung";
$result = mysql_query($query, $link)
or die("Fehlersuche nicht erfolgreich");
while($row = mysql_fetch_array($result)) {
echo "nummer: ".$row[truppen_nummer].
" besitzer: ".$row[truppen_besitzer].
" kennung: ".$row[truppen_kennung].
" anzahl: ".$row[truppen_anzahl].
" armee: ".$row[armee]."<b> anz: ".$row[anz]."</b><br>";
$query1 = "SELECT t1.* as anz
FROM truppen t1
WHERE t1.armee=".$row[armee];//."
AND t1.truppen_kennung=".$row[truppen_kennung];
$result1 = mysql_query($query1, $link)
or die("Fehlersuche nicht erfolgreich");
while($row1 = mysql_fetch_array($result1)) {
if ($row1[truppen_kennung] == $row[truppen_kennung]) {
echo "+++ nummer: ".$row1[truppen_nummer]." besitzer: ".$row1[truppen_besitzer].
" kennung: <b>".$row1[truppen_kennung].
"</b><b> anzahl: ".$row1[truppen_anzahl].
"</b> armee: ".$row1[armee]."<br>";
}
else {
echo "+++ nummer: ".$row1[truppen_nummer].
" besitzer: ".$row1[truppen_besitzer].
" kennung: ".$row1[truppen_kennung].
"<b> anzahl: ".$row1[truppen_anzahl].
"</b> armee: ".$row1[armee]."<br>";
}
}
}
da klappts zb
nummer: 220 besitzer: 5 kennung: 89 anzahl: 202 armee: 7 anz: 257
+++ nummer: 220 besitzer: 5 kennung: 89 anzahl: 202 armee: 7
+++ nummer: 24 besitzer: 5 kennung: 26 anzahl: 2 armee: 7
+++ nummer: 35 besitzer: 5 kennung: 58 anzahl: 99 armee: 7
+++ nummer: 42 besitzer: 5 kennung: 89 anzahl: 55 armee: 7
+++ nummer: 103 besitzer: 5 kennung: 183 anzahl: 1 armee: 7
+++ nummer: 185 besitzer: 5 kennung: 251 anzahl: 1 armee: 7
da net
nummer: 326 besitzer: 78 kennung: 341 anzahl: 90 armee: 62 anz: 294
+++ nummer: 326 besitzer: 78 kennung: 341 anzahl: 90 armee: 62
+++ nummer: 336 besitzer: 78 kennung: 343 anzahl: 1 armee: 62
+++ nummer: 610 besitzer: 78 kennung: 488 anzahl: 36 armee: 62
+++ nummer: 655 besitzer: 78 kennung: 488 anzahl: 1 armee: 62
+++ nummer: 676 besitzer: 78 kennung: 488 anzahl: 3 armee: 62
+++ nummer: 706 besitzer: 78 kennung: 488 anzahl: 1 armee: 62
+++ nummer: 782 besitzer: 78 kennung: 341 anzahl: 2 armee: 62
+++ nummer: 772 besitzer: 78 kennung: 341 anzahl: 2armee: 62
+++ nummer: 795 besitzer: 78 kennung: 341 anzahl: 4 armee: 62
der fehler beträgt den faktor 3, dass kann man ein paar mal beobachten, leider weiss ich net wie mir das helfen soltle
Kommentar