SQL-Abfrage ergibt leere seite, obwohl fast 100 elemente vorhanden sein müssten.

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SQL-Abfrage ergibt leere seite, obwohl fast 100 elemente vorhanden sein müssten.

    <?php
    /* -- Gesamtübersicht der Jahrgänge laden -- */
    function load_content_articles()
    {
    include('inc/database.inc.php');
    $tmprslt = '';
    $connection = mysql_connect($db['host'],$db['uid'],$db['pwd']);
    if($connection)
    {
    mysql_select_db($db['db']);
    $sql = 'SELECT id, year FROM jahrgang WHERE visible > -1 ORDER BY id ASC';
    $result = mysql_query($sql);
    if($result)
    {
    while($year = mysql_fetch_object($result))
    {
    $tmprslt .= StrFTime('Jahrgang ');
    $tmprslt .= "<a href=\"$PHP_SELF?cmd=articlesyear&id=$year->year\">$year->year</a><br />\n";
    }
    }
    mysql_close();
    }
    return $tmprslt;
    }

    /* -- Jahresübersicht der Gedichte laden -- */
    function load_content_articlesjahr($id)
    {
    include('inc/database.inc.php');
    $tmprslt = '';
    $connection = mysql_connect($db['host'],$db['uid'],$db['pwd']);
    if($connection)
    {
    mysql_select_db($db['db']);
    $sql = 'SELECT id, title, UNIX_TIMESTAMP(datetime) AS datetime FROM articles WHERE YEAR(datetime)=$year AND visible > -1 ORDER BY id ASC';
    $result = mysql_query($sql);
    if($result)
    {
    while($articles = mysql_fetch_object($result))
    {
    $tmprslt .= StrFTime('%d.%m.%Y',$articles->datetime);
    $tmprslt .= " - <a href=\"$PHP_SELF?cmd=articlesdet&id=$articles->id\">$articles->title</a><br />\n";
    }
    }
    mysql_close();
    }
    return $tmprslt;
    }

    /* -- Detailansicht eines Gedichtes laden -- */
    function load_content_articlesdetailed($id)
    {
    include('inc/database.inc.php');
    $tmprslt = '';
    $connection = mysql_connect($db['host'],$db['uid'],$db['pwd']);
    if($connection)
    {
    mysql_select_db($db['db']);
    $sql = 'SELECT title, content, nextPageId, UNIX_TIMESTAMP(datetime) AS datetime FROM articles WHERE id = '.$id;
    $result = mysql_query($sql);
    if($result)
    {
    $articles = mysql_fetch_object($result);
    $tmprslt .= "<h5>".StrFTime('%d.%m.%Y ',$articles->datetime)."</h5>";
    $tmprslt .= "<h3>$articles->title</h3>";
    $tmprslt .= "<p> $articles->content </p>";
    if($articles->nextPageId > -1)
    {
    $tmprslt .= "<p><a href=\"$PHP_SELF?cmd=articlesdet&id=$articles->nextPageId\">Weiter</a></p>\n";
    }
    }
    mysql_close();
    }
    return $tmprslt;
    }
    ?>


    Dieses Script macht was es soll, solange ich die 2. SQL-Abfrage nicht mit YEAR(datetime)=$year belaste.
    Ich will aber die Gedichte nach Jahren abfragbar machen. wieso nimmt er also nicht die SQL-Funktion, die Mysql offiziell unterstützt, und lässt mir dann die möglichkeit zu wählen.
    Wenn ich so von der Jahrgangsübersicht auf die Jahresübersicht wechsle, zeigt er mir zwar den Pfad, aber nicht die Gedichte, die bspw. 1996 geschrieben wurden. ich möchte jedoch nicht ein extra feld in der tabelle der datenbank anlegen, um das problem zu lösen. ich möchte das vorhandene datum (YYYY-MM-DD) nutzen.


    hat jemand eine idee?

  • #2
    hast du dir die abfrage mal mit echo ausgeben lassen?

    ist sie so wie du es erwartet hast?

    hast du sie mal per copy&paste in phpmyadmin eingefügt und dort ausprobiert?

    was kommt da raus?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      $result = mysql_query($sql) or die(mysql_error());

      ^^ ausgabe?

      btw: formatier bitte den code mit php-tags
      Kissolino.com

      Kommentar


      • #4
        Original geschrieben von Wurzel
        btw: formatier bitte den code mit php-tags
        dann brich aber auch bitte die zeilen um, sonst regen sich einige hier wieder auf
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          'SELECT id, year FROM jahrgang WHERE visible > -1 ORDER BY id ASC';

          year is ein reserviertes wort

          $sql = 'SELECT id, title, UNIX_TIMESTAMP(datetime) AS datetime FROM articles WHERE YEAR(datetime)=$year AND visible > -1 ORDER BY id ASC';

          bennen mal deine aliase nicht nach den spaltennamen wenn Du sie weiterverwendest gehoert $year nicht in '
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar

          Lädt...
          X