array in ner for schleife?

2Pac

Erfahrenes Mitglied
Hallo Leute!
Ich möchte aus einer Datenbank mit
$tore1 = mysql_db_query("$DatabaseName", "SUM(tore1) FROM statistiken WHERE spieler = '$name'"); etwas auslesen und eben die zeilen von den einträgen zusammenrechnen mit sum (sind mehrer einträge wo spieler = $name
Dazu mache ich vorher mit ner for schleife for ($i=0;$<$datensätze;$++)
{
$name = mysql_result($res, $i, "nickname");
}
$res ist hierbei das selecten der nciknamen aus einer 2. tabelle
So und nun wollte ich eigentlich aus $tore1 ein array machen über
$tore1 = mysql_fetch_row($tore1);
und dann wollte ich es wieder ausgeben
echo "$tore1[$i]";
aber halt noch in ner tabelle. Dabei habe ich 2 Probleme 1. die Tabelle wird total verschoben und hat nicht die Farben die sie soll und 2. schreibt er nichts hinein von dem ausgelesenen. Gar nix nur den Tabellenkopf. Mehr nicht. Aber diesen schreibe ich schon am Anfang vor dem connecten zur DB hin. Weiss jemand worans liegen kann bzw. vielleicht hab ich ein denkfehler gemacht? Wäre erfreut über Hilfe denn verzweifle hab schon alles versucht auch mit while und anderen Dingen :(
 
$tore1 = mysql_db_query("$DatabaseName", "SUM(tore1) FROM statistiken WHERE spieler = '$name'");

zwei fehler:

mysql_db_query sollte man nicht mehr benutzen
und die sql abfrage ist falsch

besser:

$err = mysql_select_db("$DatabaseName");

$tore1 = mysql_query("select SUM(tore1) FROM statistiken group by spieler WHERE spieler = '$name'");


was du mit der forschleife vor hast habe ich noch nicht verstanden

aber ist die var $datensäze überhaupt belegt?
($i=0;$i<$datensätze;$i++)
da fehlte 2mal das i

$name = mysql_result($res, $i, "nickname");
das macht kein sinn ...
 
naja datensätze is mysql_num_rows
ja ist belegt geht auch
die I s sind in meinem script drin war nurn tippfehler...

Und das wegen dem letzten das ist das auslesen aller daten von nickname aus meiner 1. tabelle...

P.S.: wieso macht das kein Sinn ich brauche das ja aus meiner 1. tabelle weil es sind 2 tabellen einmal in denen alle nicknamen stehen und einmal wo paarungen drinne stehen der spieler
da steht dann drin sowas hier:

spieler gegner tore1 gegentore1
.....
und da kann ich schlecht aus der 2. die nicknamen auslesen...
 
Zuletzt bearbeitet:
ok man kann auch zwei tabellen gleichzeitig auslesen
aber zu deiner abfrage:

wenn deine tabelle so ausssieht:

spieler gegner tore1 gegentore1

PHP:
$erg = mysql_query("select spieler,sum(tore1) as tore from  statistiken group by spieler",$dblink);
$zeilen = mysql_num_rows($erg);
for ($lo=0;$lo<$zeilen;$lo++) {
 $row = mysql_fetch_row{$erg);
 echo "Spieler $row[0] hat $row[1] Tore<br>";
}

dann listet der code den spieler und die tore auf und ich denke das wollteste erreichen
 
em das ganze ist aber so es steht nicht fest wieviele spieler es sind weisste und da passt das

$row = mysql_fetch_row{$erg);
echo "Spieler $row[0] hat $row[1] Tore<br>";

irgendwie nicht weil $row[0] ist ja nur für den 1. datensatz oder?
aber es soll ja praktisch eine tabelle enstehen mit vielen usern und ihren tore....
 
schade eigendlich das du den code nicht ausprobiert hast :-(

$row = mysql_fetch_row{$erg); #liest den datensatz aus; beim nächten aufruf holt er den nächsten datensatz
echo "Spieler $row[0] hat $row[1] Tore<br>"; #zeigt den datensatz

und da das ganze in einer schleife war zeigt er alle spieler und die dazugehörigen tore an


$zeilen = mysql_num_rows($erg);
damit erfahre ich ja wieviele spieler es gibt
 
hmmm also ich habe jetzt noch ein Paar Sachen hinzugefügt und wollte es ausprobieren wie du meintest aber hmmm geht nicht kommt Parse Error in line blabla

so sieht der Quelltext aus:
<script language="php">
$DatabaseName = "daten";
$DbHostName = "daten";
$DbUserName = "daten";
$DbPassWord = "daten";
$db = mysql_connect("$DbHostName", "$DbUserName", "$DbPassWord");
$res = mysql_db_query("$DatabaseName", "SELECT * from ewigemembers");
$num = mysql_num_rows($res);
echo "<center><table border='0' cellpadding='1' cellspacing='2' width='300'>";
echo "<tr>
<td width='160' bgcolor='#851111'><b><font size='1' face='Verdana'>Name</font></b></td>
<td width='20' bgcolor='#851111'><b><font size='1' face='Verdana'>Sp</font></b></td>
<td width='20' bgcolor='#851111'><b><font size='1' face='Verdana'>S</font></b></td>
<td width='20' bgcolor='#851111'><b><font size='1' face='Verdana'>U</font></b></td>
<td width='20' bgcolor='#851111'><b><font size='1' face='Verdana'>N</font></b></td>
<td width='20' bgcolor='#851111'><b><font size='1' face='Verdana'>T</font></b></td>
<td width='20' bgcolor='#851111'><b><font size='1' face='Verdana'>GT</font></b></td>
<td width='20' bgcolor='#851111'><b><font size='1' face='Verdana'>Dif</font></b></td>
</tr>";
for ($i=0;$i<$num;$i++)
{
$name = mysql_result($res, $i, "nickname");
$erg = mysql_query("select spieler,sum(tore1) as tore1,sum(tore2) as tore2,sum(tore3) as tore3, sum(gegentore1) as gegentore1,sum(gegentore2) as gegentore2,sum(gegentore3) as gegentore3,sum(siege) as siege1,sum(niederlagen) as niederlagen1,sum(unentschieden) as unentschieden1 from statistiken WHERE spieler = '$name' group by spieler",$DatabaseName);
$zeilen = mysql_num_rows($erg);
for ($lo=0;$lo<$zeilen;$lo++)
{
$row = mysql_fetch_row($erg);
if ($zeilen != 0)
{
$spiele = $row[7] + $row[8] + row[9];
$tore = $row[1] + $row[2] + $row[3];
$gegentore = $row[4] + $row[5] + $row[6];
$dif = $tore - $gegentore;
echo "<tr>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$row[0]</font></b></td>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$spiele</font></b></td>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$row[7]</font></b></td>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$row[9]</font></b></td>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$row[8]</font></b></td>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$tore</font></b></td>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$gegentore</font></b></td>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$dif</font></b></td>
</tr></table></center>";
}
}
}
mysql_close($db);
</script>
Wo ist der Fehler übrigens die Zeile die er angibt beim Error ist folgende:
$spiele = $row[7] + $row[8] + row[9];
 
PHP:
$DatabaseName = "daten";
$DbHostName = "daten";
$DbUserName = "daten";
$DbPassWord = "daten";
$db = mysql_connect("$DbHostName", "$DbUserName", "$DbPassWord");
$err = mysql_select_db("$DatabaseName",$db);
# der folgende teil ist überflüssig
$res = mysql_query("SELECT * from ewigemembers");
$num = mysql_num_rows($res);
#keine ahnung was du mit der abfrage erreichen willst 

echo "<center><table border='0' cellpadding='1' cellspacing='2' width='300'>";
echo "<tr>
<td width='160' bgcolor='#851111'><b><font size='1' face='Verdana'>Name</font></b></td>
<td width='20' bgcolor='#851111'><b><font size='1' face='Verdana'>Sp</font></b></td>
<td width='20' bgcolor='#851111'><b><font size='1' face='Verdana'>S</font></b></td>
<td width='20' bgcolor='#851111'><b><font size='1' face='Verdana'>U</font></b></td>
<td width='20' bgcolor='#851111'><b><font size='1' face='Verdana'>N</font></b></td>
<td width='20' bgcolor='#851111'><b><font size='1' face='Verdana'>T</font></b></td>
<td width='20' bgcolor='#851111'><b><font size='1' face='Verdana'>GT</font></b></td>
<td width='20' bgcolor='#851111'><b><font size='1' face='Verdana'>Dif</font></b></td>
</tr>";
#for ($i=0;$i<$num;$i++)
{
# $name = mysql_result($res, $i, "nickname"); auch überflüssig
$erg = mysql_query("select spieler,sum(tore1) as tore1,sum(tore2) as tore2,sum(tore3) as tore3, sum(gegentore1) as gegentore1,sum(gegentore2) as gegentore2,sum(gegentore3) as gegentore3,sum(siege) as siege1,sum(niederlagen) as niederlagen1,sum(unentschieden) as unentschieden1 from statistiken group by spieler",$db);
$zeilen = mysql_num_rows($erg);
for ($lo=0;$lo<$zeilen;$lo++)
{
$row = mysql_fetch_row($erg);
$spiele = $row[7] + $row[8] + row[9];
$tore = $row[1] + $row[2] + $row[3];
$gegentore = $row[4] + $row[5] + $row[6];
$dif = $tore - $gegentore;
echo "<tr>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$row[0]</font></b></td>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$spiele</font></b></td>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$row[7]</font></b></td>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$row[9]</font></b></td>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$row[8]</font></b></td>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$tore</font></b></td>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$gegentore</font></b></td>
<td bgcolor='#000000'><b><font size='1' face='Verdana'>$dif</font></b></td>
</tr>";
}
echo "</table></center>";

#}
mysql_close($db);
 
Zuletzt bearbeitet:
$db = mysql_connect("$DbHostName", "$DbUserName", "$DbPassWord");
$err = mysql_select_db("$DatabaseName",$db);
# der folgende teil ist überflüssig
$res = mysql_query("SELECT * from ewigemembers");
$num = mysql_num_rows($res);
#keine ahnung was du mit der abfrage erreichen willst
Na das ist mein connecten zu meiner 1. db in der nur die spalte nickname steht. Denn ich muss ja irgendwie später die datensätze nem nicknamen zuordnen oder?
 
Zurück