SQL-Abfrage richtig, in PHP falsch ausgegeben!

Maniac

Erfahrenes Mitglied
Ich steh hier vor einem Rätsel....
unzwar hab ich folgende SQL-Abfrage in phpMyAdmin getestet und diese funktioniert dort auch mit richtiger Sortierung.

Bei dieser Abfrage werden Datensätze ausgegeben und nach 3 Kriterien sortiert.
1. höchstes Finish (b.highfinish DESC)
2.Wenn Finish gleich ist, dann steht derjenige in der Rangliste oben der es an einem früheren Spieltag erzielt hat. (b.spieltag ASC)
3. Wenn die ersten beiden Kriterien gleich sind, dann soll das Datum erntscheiden
(b.datum ASC)

Wie gesagt, in phpMyAdmin t es super, wird richtig dargestellt. nur in PHP nicht.
Es gibt dort zb. 2 Spieler die ein Finish von 125 haben und es am selben Spieltag erzielt haben. nun muss bei denen das Datum entscheiden. Leider wird in PHP der falsche, also der mit dem höheren Datum vorne angezeigt.

Nur nach Datum kann ich nicht gehen, da Spieltage verschoben werden können und nicht mehr mit den Spieltagen zusammenpassen.

PHP:
$db->query("SELECT a.ID, a.name, a.vorname, b.pid, MAX(b.highfinish) as highscore, c.teamname FROM `players` a LEFT JOIN spieler_score b ON a.ID = b.pid INNER JOIN teams c ON a.team_id=c.ID WHERE a.liga_id='$liga' AND b.highfinish > 99 GROUP BY b.pid ORDER BY highscore DESC, b.spieltag ASC, b.datum ASC");
 
Mal ganz blöd gefragt: Wenn der Spieltag gleich ist, ist doch auch das Datum gleich oder? :suspekt:

Edith sagt: Lesen sollte man können :(

Lg
 
Also im Array steht es auch richtig drinne :confused:
print_r sagt folgendes:
Ausschnitt:
Code:
Array
(
    [0] => Array
        (
            [0] => 200
            [ID] => 200
            [1] => Edel
            [name] => Edel
            [2] => Kurt
            [vorname] => Kurt
            [3] => 200
            [pid] => 200
            [4] => 157
            [highscore] => 157
            [5] => Bad Boys
            [teamname] => Bad Boys
        )

    [1] => Array
        (
            [0] => 215
            [ID] => 215
            [1] => Korobow
            [name] => Korobow
            [2] => Peter
            [vorname] => Peter
            [3] => 215
            [pid] => 215
            [4] => 156
            [highscore] => 156
            [5] => Messerschmitt Darter
            [teamname] => Messerschmitt Darter
        )

    [2] => Array
        (
            [0] => 260
            [ID] => 260
            [1] => Ibrahimov
            [name] => Ibrahimov
            [2] => Roman
            [vorname] => Roman
            [3] => 260
            [pid] => 260
            [4] => 145
            [highscore] => 145
            [5] => The Spirits
            [teamname] => The Spirits
        )

    [3] => Array
        (
            [0] => 88
            [ID] => 88
            [1] => Nitschke
            [name] => Nitschke
            [2] => Markus
            [vorname] => Markus
            [3] => 88
            [pid] => 88
            [4] => 140
            [highscore] => 140
            [5] => Jack Old No.7
            [teamname] => Jack Old No.7
        )

    [4] => Array
        (
            [0] => 33
            [ID] => 33
            [1] => Wieland
            [name] => Wieland
            [2] => Markus
            [vorname] => Markus
            [3] => 33
            [pid] => 33
            [4] => 140
            [highscore] => 140
            [5] => Mighty Darts
            [teamname] => Mighty Darts
        )

    [5] => Array
        (
            [0] => 229
            [ID] => 229
            [1] => Cochran
            [name] => Cochran
            [2] => Dominik
            [vorname] => Dominik
            [3] => 229
            [pid] => 229
            [4] => 139
            [highscore] => 139
            [5] => Bistro Drei Rosen I
            [teamname] => Bistro Drei Rosen I
        )

    [6] => Array
        (
            [0] => 222
            [ID] => 222
            [1] => Aust
            [name] => Aust
            [2] => Thorsten
            [vorname] => Thorsten
            [3] => 222
            [pid] => 222
            [4] => 132
            [highscore] => 132
            [5] => Messerschmitt Darter
            [teamname] => Messerschmitt Darter
        )

    [7] => Array
        (
            [0] => 25
            [ID] => 25
            [1] => Mayr
            [name] => Mayr
            [2] => Peter
            [vorname] => Peter
            [3] => 25
            [pid] => 25
            [4] => 131
            [highscore] => 131
            [5] => Mighty Darts
            [teamname] => Mighty Darts
        )

    [8] => Array
        (
            [0] => 177
            [ID] => 177
            [1] => Taryne
            [name] => Taryne
            [2] => Gerhard
            [vorname] => Gerhard
            [3] => 177
            [pid] => 177
            [4] => 130
            [highscore] => 130
            [5] => Dart Bulls
            [teamname] => Dart Bulls
        )

    [9] => Array
        (
            [0] => 274
            [ID] => 274
            [1] => Lecker
            [name] => Lecker
            [2] => Werner
            [vorname] => Werner
            [3] => 274
            [pid] => 274
            [4] => 128
            [highscore] => 128
            [5] => The Last Players
            [teamname] => The Last Players
        )

    [10] => Array
        (
            [0] => 111
            [ID] => 111
            [1] => Lorenz
            [name] => Lorenz
            [2] => Gerhard
            [vorname] => Gerhard
            [3] => 111
            [pid] => 111
            [4] => 126
            [highscore] => 126
            [5] => The Last Players
            [teamname] => The Last Players
        )

    [11] => Array
        (
            [0] => 43
            [ID] => 43
            [1] => Lachmann
            [name] => Lachmann
            [2] => Michael
            [vorname] => Michael
            [3] => 43
            [pid] => 43
            [4] => 125
            [highscore] => 125
            [5] => Die Schuldigen
            [teamname] => Die Schuldigen
        )

    [12] => Array
        (
            [0] => 176
            [ID] => 176
            [1] => Hannemann
            [name] => Hannemann
            [2] => Wolfgang
            [vorname] => Wolfgang
            [3] => 176
            [pid] => 176
            [4] => 125
            [highscore] => 125
            [5] => Dart Bulls
            [teamname] => Dart Bulls
        )
)

Es handelt sich um die letzten beiden Spieler. Die Ausgabe erfolgt über Smarty per Template:
HTML:
<div class="ranglisten" style="margin-left: 200px;">

<table cellspacing="2">
    <tr>
    <td valign="top">
        <table cellspacing="2">
            <thead class="zeilenhead">
            <tr>
                <td>Rang: </td>
                <td>Name: </td>
                <td>Team: </td>
                <td align="center">{if $v171 == 1}171er:{elseif $v180 == 1}180er:{elseif $hf == 1}High Finish:{/if}</td>
                <td>Profil:</td>
            </tr>
            </thead>
            <tbody class="zeilenbody">
            {foreach from=$data item=hs}
            <tr bgcolor="{cycle values="#99CCFF,#d3d0d1"}">
                <td align="center">{$i++}.</td>
                <td><a href="javascript:;" onclick="updatedb({$hs.pid},{$liga},{$info})">{$hs.name}, {$hs.vorname}</a></td>
                <td>{$hs.teamname|stripslashes}</td>
                <td align="center">{$hs.highscore}</td>
                <td><a href="player_card.php?player_id={$hs.ID}" onclick="profile(this.href); return false"><img src="http://www.tutorials.de/forum/images/icons/PlayAll.png" width="32" height="32" border="0" alt="" title="" /></a></td>
                </tr>
             {/foreach}
            
        </table>
       </td>
     </tr>
</table>
</div>
<a target="_blank" href="top.php?liga={$liga}&amp;liganame={$liganame|stripslashes}&amp;druck={$druck}{if $v171 == 1}&amp;v171=1{elseif $v180 == 1}&amp;v180=1{elseif $hf == 1}&amp;hf=1{/if}&amp;PDF=OUT">Drucken</a><br /><br />

Der Code dazu ist:
PHP:
if ($_GET['hf'] == "1")
	{
		$hs = "High Finish";
		$db->query("SELECT a.ID, a.name, a.vorname, b.pid, MAX(b.highfinish) as highscore, c.teamname FROM `players` a LEFT JOIN spieler_score b ON a.ID = b.pid INNER JOIN teams c ON a.team_id=c.ID WHERE a.liga_id='$liga' AND b.highfinish > 99 GROUP BY b.pid ORDER BY highscore DESC, b.spieltag ASC, b.datum ASC");		
		while($res = $db->fetch_array())
				{	
					$data[] = $res;
					$print[] = array(
					$id.".",
					ers_pdf($res['name'].", ".$res['vorname']),
					ers_pdf(stripslashes($res['teamname'])),
					$res['highscore']
					);
					$id++;
				}
				$smarty->assign('data', $data);
				$smarty->assign('druck', $_GET['hf']);   // befehl zum drucken
				$smarty->assign('hf', 1);
				$smarty->assign('header', 1);
				$smarty->assign('info', 3);
echo "<pre>";
print_r($data);
echo "</pre>";

	}

edit: ich sehe gerade das das ganze local auf meiner testumgebung mit XAMPP funktioniert, nur eben auf dem Webserver nicht....


edit: nun funktioniert es ohne das ich irgendwas verändert habe auch auf dem Webserver....komische geschichte!
hoffe das bleibt nun auch so....
 
Zuletzt bearbeitet:
Zurück