MySQL-Abfrage

kommt drauf an nach was du sortieren willst und wie, aber bei dir wäre es sinnig nach dem datum abwärts zu sortieren zu sortieren, um die letzten 3 Läufe anzuzeigen :

PHP:
$sql = "SELECT * FROM events WHERE `datum` < '" . time() . "' ORDER BY datum LIMIT 3 ";

für die nächsten 3 dementsprechend :

PHP:
$sql = "SELECT * FROM events WHERE `datum` > '" . time() . "' ORDER BY datum DESC LIMIT 3 ";
 
hatte das ORDER BY wohl immer an der falschen Stelle...ich werde das heute abend mal testen....

danke

was noch interessant zu wissen wäre...wieso nimmt der die falschen....die Bedingung datum < heute war ja erfüllt aber...prüft der vom Anfang der Tabelle nach unten durch? Dann wäre das eventuelle einleuchtend...dann checkt er: ist die erste Zeile der Bedingung entsprechend? Wenn ja ausgeben...usw. Wenn das aber so ist müsste ich das LIMIT weglassen und das mit ner for-Schleife limitimieren...!?
 
Zuletzt bearbeitet:
Das ist er Quellcode dieser Datei:
http://www.dodo1912.de/admin/eventoutputorg.php

PHP:
Event Output<br>

<?
include "datenbankzugang.php";

if($res_id = @mysql_connect ($db_host, $db_user, $db_pw))
    {
	    echo "Verbindung zur Datenbank hergestellt<br>";
	}
else
    {
	    die('Keine Verbindung zur Datenbank');
	}

if(@mysql_select_db ($mysql_db))
    {
	echo "Datenbank $mysql_db wurde erfolgreich ausgewählt!<br>";
	}
else
    {
	    die('Die Datenbank $mysql_db konnte nicht gefunden werden');
	}
	
$sql = "SELECT * FROM events WHERE `datum` < '" . time() . "' ORDER BY `datum` DESC LIMIT 2";
if (!$res_id = mysql_query ($sql))
    {
	    die ('MySql Befehl ist falsch');
	}
$num = mysql_num_rows($res_id);
   echo "$num Datensätze gefunden<br>";
   
   
   // Tabellenbeginn
   echo "<div class=text>";
   echo "<table>";
   echo "<tr>
            <td><span class=text><div align=center><strong>Datum</strong></div></span></td>
            <td><span class=text><div align=center><strong>Veranstaltung</strong></div></span></td>
            <td><span class=text><div align=center><strong>Meldung <br> BM-Racing-Team</strong></div></span></td>
            <td><span class=text><div align=center><strong>Bilder</strong></div></span></td>
			</tr>";
   
for ($i=0; $i<$num; $i++)
   {
      $id = mysql_result($res_id, $i, "id");
      $datum = mysql_result($res_id, $i, "datum");
      $veranstaltungsname = mysql_result($res_id, $i, "veranstaltungsname");
      $meldung = mysql_result($res_id, $i, "meldung");
      $webseite = mysql_result($res_id, $i, "webseite");
	  $ergebnisse = mysql_result($res_id, $i, "ergebnisse");
      $bilder = mysql_result($res_id, $i, "bilder");
	  $datumtmj = date("d.m.Y", $datum);
	  //Umwandlung in Bilderlink
    if ($bilder !="")
        {
            $bilderlink = "<a href=" . "http://www.dodo1912.de/alben/" . $bilder ."/index.html" . ">zu den Bildern</a>";
        } 
	else 
	{ 
	    $bilderlink ="Es wurden noch keine Bilder Hochgeladen";
	} 
		 //Umwandlung vom MeldungsStrings in ein Image
	  if($meldung==Ja)
	      $bmmeldung = "<center><img src=\"../pix/meldungja.gif\"></center>";
	  if($meldung==Nein)
	      $bmmeldung = "<center><img src=\"../pix/meldungnein.gif\"></center>";
	  if($meldung==Vielleicht)
	     $bmmeldung = "<center><img src=\"../pix/meldungvielleicht.gif\"></center>";
	  
      //echo "$id, $datum, $datumtmj, $veranstaltungsname, $meldung, $webseite, $ergebnisse, $bilder <br>";
	  echo "<tr>
            <td><span class=text>$datumtmj</span></td>
            <td><span class=text>$veranstaltungsname</span></td>
            <td><span class=text>$bmmeldung</span></td>
			<td><span class=text>$bilderlink</span></td>
            </tr>";
   }
   
   echo "Jetzt die in der Zukunft:<br>";

$sql = "SELECT * FROM events WHERE `datum` > '" . time() . "' ORDER BY `datum` ASC LIMIT 3";
if (!$res_id = mysql_query ($sql))
    {
	    die ('MySql Befehl ist falsch');
	}
$num = mysql_num_rows($res_id);
   echo "$num Datensätze gefunden<br>";
   
   
   
for ($i=0; $i<$num; $i++)
   {
      $id = mysql_result($res_id, $i, "id");
      $datum = mysql_result($res_id, $i, "datum");
      $veranstaltungsname = mysql_result($res_id, $i, "veranstaltungsname");
      $meldung = mysql_result($res_id, $i, "meldung");
      $webseite = mysql_result($res_id, $i, "webseite");
	  $ergebnisse = mysql_result($res_id, $i, "ergebnisse");
      $bilder = mysql_result($res_id, $i, "bilder");
	  $datumtmj = date("d.m.Y", $datum);
	  //Umwandlung in Bilderlink
   if ($bilder)
   {
   $bilderlink = "<a href=" . "http://www.dodo1912.de/alben/" . $bilder ."/index.html" . ">zu den Bildern</a>";
   }
   else 
	{ 
	    $bilderlink ="Es wurden noch keine Bilder Hochgeladen";
	} 
   //Umwandlung vom MeldungsStrings in ein Image
	  if($meldung==Ja)
	      $bmmeldung = "<center><img src=\"../pix/meldungja.gif\"></center>";
	  if($meldung==Nein)
	      $bmmeldung = "<center><img src=\"../pix/meldungnein.gif\"></center>";
	  if($meldung==Vielleicht)
	     $bmmeldung = "<center><img src=\"../pix/meldungvielleicht.gif\"></center>";
   
	  
      //echo "$id, $datum, $datumtmj, $veranstaltungsname, $meldung, $webseite, $ergebnisse, $bilder <br>";
	  
	  echo "<tr>
            <td><span class=text>$datumtmj</span></td>
            <td><span class=text>$veranstaltungsname</span></td>
            <td><span class=text>$bmmeldung</span></td>
			<td><span class=text>$bilderlink</span></td>
            </tr>";
   }

?>
 
Hi

Deine Querys stimmen schon. Die sollten eigentlich das richtige Ergebnis bringen.

Der erste sool die letzten 2 Events bringen dir in der Vergangenheit liegen.
Absteigend:
2
1

Der zweite soll die ersten 3 Events in der Zukunft bringen.
Aufsteigend:
1
2
3

Mfg Akkie
 
an sich stimmt das ja auch...allerdings sollte er lieber ausgeben:

Der erste sool die letzten 2 Events bringen dir in der Vergangenheit liegen.
Aufsteigend...:
1
2

Dann nimmt er aber den aller-ältesten Event und den 2. ältesten...was ja auch logisch ist, mir aber nicht passt.
Er soll also aus der DB Absteigend holen aber in der Schleife Aufsteigend ausgeben....

Der zweite soll die ersten 3 Events in der Zukunft bringen.
Aufsteigend:
1
2
3
 
Zurück