Ankündigung

Einklappen
Keine Ankündigung bisher.

den aktuellsten Satz ausgeben

Einklappen

Neue Werbung 2019

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

  • den aktuellsten Satz ausgeben

    Hallo,

    ein ehemaliger Arbeitskollege hat ein Messeberichtswesen für unsere fünf Mitarbeiter in PHP erstellt.
    Dort sollte in unterer Section immer der letzte (aktuellste) Bericht zwecks Kontrolle und Änderung nochmals
    geladen werden, was leider nicht funktioniert, es wird er älteste Satz geladen.

    Leider kann ich nur in Cobol programmieren und ohne Debugger bin ich total aufgeschmissen.

    Kann mir jemand einen Tipp geben.

    Danke vorab!

    Schlusenbauer

    PHP-Code:
    <?php
      $link 
    ConnectToDB($mysql_server$mysql_username$mysql_password);
      
    SelectDB($mysql_database);

      
    $query "SELECT * FROM monatsberichte WHERE ersteller = '$_SESSION[Anmeldename]';";
      
    $result Query($query);

      
    $temp_date 0;
      
    $temp_id 0;
      
    $row mysql_fetch_array($resultMYSQL_NUM);

      if ( 
    $row != '' )
      {
        foreach (
    $row as $key => $value)
        {
          if ( 
    $row[1] > $temp_date )
          {
            
    $temp_date $row[1];
            
    $temp_id $row[0];
          }
        }


        foreach (
    $row as $key => $value)
        {
          if ( 
    $row[$key] == chr(160) )
          {
            
    $row[$key] = '';
          }
        }
      }

      
    mysql_close($link);
    ?>
    Datenbankstruktur:
    |Feld|Typ|Null|Standard
    |//**bericht_id**//|varchar(10)|Nein|
    |bericht_datum|varchar(10)|Nein|
    |bericht_uhrzeit|varchar(10)|Nein|
    |nl_status|varchar(2)|Nein|
    |ab_status|varchar(2)|Nein|
    |ma_status|varchar(2)|Nein|
    |datum|varchar(10)|Nein|
    |monat|varchar(15)|Nein|
    |ad|varchar(10)|Nein|
    |abgegeben_am|varchar(10)|Nein|

    |9731722068|1233588918|1233588918|6|5|3|02.02.2009 |Januar|AOD|02.02.2009
    |9774009719|1279259527|1279259527|1|5|2|16.07.2010 |Juli|MKI|16.07.2010
    |9939217893|1283771318|1283771318|5|5|2|06.09.2010 |August|MBE|06.09.2010

  • #2
    Debuggen ist in PHP kinderleicht.

    http://php.net/manual/en/function.error-reporting.php

    [man]echo[/man] [man]print_r[/man] [MAN]var_dump[/MAN]

    http://www.php.de/wiki-php/index.php/Debugging:SQL

    Und das
    funktioniert leider nicht
    keine sinnvolle Problembeschreibung ist, sollte einem klar sein.
    [URL]http://hallophp.de[/URL]

    Kommentar


    • #3
      Das einfachste wäre vermutlich, wenn Du in deinem SQL Statement nach deiner Datumsspalte absteigend sortierst. So bekommst du den aktuellsten Datensatz zuerst!

      mfg Wolf29
      while (!asleep()) sheep++;

      Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

      Kommentar


      • #4
        Zitat von Asipak Beitrag anzeigen
        Debuggen ist in PHP kinderleicht.

        http://php.net/manual/en/function.error-reporting.php

        [man]echo[/man] [man]print_r[/man] [MAN]var_dump[/MAN]

        http://www.php.de/wiki-php/index.php/Debugging:SQL

        Und das
        keine sinnvolle Problembeschreibung ist, sollte einem klar sein.
        Sorry!

        Nach kurzer Recherche wird der älteste Satz geladen.

        Kommentar


        • #5
          Leider sind deine Datumsfelder in der Datenbank varchar und nicht datetime, dann hätte man die Sortierung von der Datenbank erledigen lassen können.

          Insgesamt ist zu bemängeln, das SELECT * verwendet wird, vor allem in Verbindung mit mysql_fetch_array und nummerischen Schlüsseln. Da kann man richtig bös' aufs Gesicht fallen, wenn sich die Datenstruktur ändert (Wenn man ein Feld VOR dem 2. Feld einfügt, verschiebt sich das 2. Feld nach hinten, und das Script liest einen falschen Wert aus dem Array).

          Q & D Fix: $row[1] transformieren (von TT.MM.JJJJ zu JJJJMMTT). Führende Nullen für Tage und Monate < 10 nicht vergessen!
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar

          Lädt...
          X