Fehlermeldung ???

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

  • Fehlermeldung ???

    Hallo Leute,

    habe folgende Funktion, die aus einem HTML-Formular die Datumsinformation erhält ($beginnTag etc) und dann eine
    SQL-Arfrage absetzt. Mit den Daten soll dann ein PDF erstellt werden.
    Jedoch wird die Abfrage anscheinend nicht abgesetzt.

    register_globals ist ON
    PHP Version 4.3.10

    PHP-Code:
    function holeStatistik ($beginnTag$beginnMonat$beginnJahr,
    $endTag$endMonat$endJahr//Zeile #22
    {
    global 
    $connection;

    $query  "SELECT kunden.kdnr, kunden.name, kunden.plz, kunden.ort, rechnungen.rg_nr"
                
    " FROM kunden"
                
    " LEFT JOIN rechnungen ON kunden.kdnr = rechnungen.kdnr WHERE"
                
    " rechnungen.rg_dat >= '$beginnJahr-$beginnMonat-$beginnTag' AND 
    rechnungen.rg_dat <= '
    $endJahr-$endMonat-$endTag'"
                
    " GROUP BY kunden.kdnr"
                
    " ORDER BY kunden.kdnr DESC LIMIT 0, 30";
        
    $ergebnis mysql_query($query$connection);
        if ( ! 
    $ergebnis )
            die ( 
    "fatal error: ".mysql_error());
        
    $ret = array();
        while ( 
    $row =mysql_fetch_array$ergebnis )) //liefert Datensatz als assoziatives Array
            
    array_push$ret$row); //array $ret wird um $row erhöht
        
    return $ret;

    Wenn ich diese nun ausführe bekomme ich folgende Fehlermeldung:

    Warning: Missing argument 3 for holestatistik() in /opt/lampp/htdocs/test/db_verbindung.php on line 22

    Warning: Missing argument 4 for holestatistik() in /opt/lampp/htdocs/test/db_verbindung.php on line 22

    Warning: Missing argument 5 for holestatistik() in /opt/lampp/htdocs/test/db_verbindung.php on line 22

    Warning: Missing argument 6 for holestatistik() in /opt/lampp/htdocs/test/db_verbindung.php on line 22
    Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL
    server version for the right syntax to use near 'Array' at line 1
    Query: Array

    Jetzt weiß allerdings nicht mehr weiter, was da falsch läuft. Könnte mir da jemand helfen?
    Vielen Dank schon im Voraus.

    Gruß

    Oli

    OffTopic:
    So jetzt besser?
    Zuletzt geändert von oschleicher; 02.03.2005, 15:45.

  • #2
    bitte lesen http://www.php-resource.de/forum/sho...threadid=50454 und umsetzen, achte dabei besonders auf:

    - den Srollbalken
    - Zeilenangaben im Code

    Kommentar


    • #3
      lass dir die $query vor dem ausführen erstmal ausgeben.

      Kommentar


      • #4
        Hallo,

        habe jetzt echo $query eingebaut. Nun kommt folgende Fehlermeldung:

        Warning: Missing argument 3 for holestatistik() in /opt/lampp/htdocs/test/db_verbindung.php on line 22

        Warning: Missing argument 4 for holestatistik() in /opt/lampp/htdocs/test/db_verbindung.php on line 22

        Warning: Missing argument 5 for holestatistik() in /opt/lampp/htdocs/test/db_verbindung.php on line 22

        Warning: Missing argument 6 for holestatistik() in /opt/lampp/htdocs/test/db_verbindung.php on line 22
        SELECT kunden.kdnr, kunden.name, kunden.plz, kunden.ort, rechnungen.rg_nr FROM kunden LEFT JOIN rechnungen ON kunden.kdnr = rechnungen.kdnr WHERE rechnungen.rg_dat >= '-1109545200-1107212400' AND rechnungen.rg_dat <= '--' GROUP BY kunden.kdnr ORDER BY kunden.kdnr DESC LIMIT 0, 30Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Array' at line 1
        Query: Array
        Aufgerufen wird die Funktion folgendermaßen:

        PHP-Code:
        $pdf->Table(holeStatistik($beginnTag$beginnMonat$beginnJahr$endTag$endMonat$endJahr)); 
        Gruß

        Oli

        Kommentar


        • #5
          PHP-Code:
          SELECT kunden.kdnrkunden.namekunden.plzkunden.ortrechnungen.rg_nr 
          FROM kunden LEFT JOIN rechnungen ON kunden
          .kdnr rechnungen.kdnr 
          WHERE rechnungen
          .rg_dat >= '-1109545200-1107212400' 
          AND rechnungen.rg_dat <= '--' 
          GROUP BY kunden.kdnr 
          ORDER BY kunden
          .kdnr DESC LIMIT 030 
          warum fragst du noch?

          was verstehst du an den warnings nicht?

          Kommentar


          • #6
            Ich verstehe zum einen an den warnings nicht wieso nicht alle Argumente übergeben werden? Habe mir die entsprechenden Variablen vor der Übergabe ausgeben lassen und zu diesem Zeitpunkt waren es noch die richtigen Inhalte. Nachdem diese an die Funktion übergeben wurden fehlen zum einen welche -> wieso? Verstehe ich nicht, da ja alle übergeben werden:

            PHP-Code:
            $pdf->Table(holeStatistik($beginnTag$beginnMonat$beginnJahr$endTag$endMonat$endJahr)); 
            Als zweites verstehe ich nicht wieso aus dem normalen Werten auf einmal zu Timestamps werden - so sieht es für mich zumondest aus.

            SELECT kunden.kdnr, kunden.name, kunden.plz, kunden.ort, rechnungen.rg_nr FROM kunden LEFT JOIN rechnungen ON kunden.kdnr = rechnungen.kdnr WHERE rechnungen.rg_dat >= [COLOR=orangered]'-1109545200-1107212400' [/COLOR]AND rechnungen.rg_dat <= '--' GROUP BY kunden.kdnr ORDER BY kunden.kdnr DESC LIMIT 0, 30
            Sorry, wegen den evtl. dummen Fragen, aber ich bin eben noch ein Anfänger.
            Vielen Dank schon im Voraus für die Mühren.

            Gruß

            Oli

            Kommentar


            • #7
              • du hast in deiner Abfrage:
                rechnungen.rg_dat >= '$beginnJahr-$beginnMonat-$beginnTag'
                aber tatsächlich sieht so aus:
                rechnungen.rg_dat >= '-1109545200-1107212400'
                d.h. $beginnJahr ist leer
              • wie hast du die Variablen $begin... und $end... berechnet/definiert/ermittelt?
              • die Var. $end... fehlen komplett oder sind leer

              Kommentar


              • #8
                bei der Variablenübergabe mal die Gross/Kleinschreibung kontrolliert, eventuell liegt der Hase dort begraben.

                wenn folgende Meldung kommt:

                Warning: Missing argument 5 for holestatistik() in /opt/lampp/htdocs/test/db_verbindung.php on line 22

                fehlt auf alle Fälle ein Argument. php gibt das nicht zum Spass aus.
                mfg
                marc75

                <Platz für anderes>

                Kommentar


                • #9
                  Hallo,

                  also die Variablen werden folgendermaßen übernommen (die Inhalte werden über ein Formular auf der vorhergehenden Seite eingegeben):

                  PHP-Code:
                  //Variablenübernahme aus Formular
                  $beginnTag $HTTP_POST_VARS["beginnTag"]; //belegt mit 1
                  $beginnMonat $HTTP_POST_VARS["beginnMonat"]; //belegt mit 2
                  $beginnJahr $HTTP_POST_VARS["beginnJahr"];//belegt mit 2005

                  $endTag $HTTP_POST_VARS["endTag"]; //belegt mit 28
                  $endMonat $HTTP_POST_VARS["endMonat"]; //belegt mit 2
                  $endJahr $HTTP_POST_VARS["endJahr"]; //belegt mit 2005 
                  Danach lasse ich sie mal ausgeben und das funktioniert wie man an dieser Ausgabe sieht:

                  [COLOR=orangered]1 2 2005 28 2 2005 [/COLOR] 1107212400 1109545200
                  Warning: Missing argument 3 for holestatistik() in /opt/lampp/htdocs/test/db_verbindung.php on line 22

                  Warning: Missing argument 4 for holestatistik() in /opt/lampp/htdocs/test/db_verbindung.php on line 22

                  Warning: Missing argument 5 for holestatistik() in /opt/lampp/htdocs/test/db_verbindung.php on line 22

                  Warning: Missing argument 6 for holestatistik() in /opt/lampp/htdocs/test/db_verbindung.php on line 22
                  SELECT kunden.kdnr, kunden.name, kunden.plz, kunden.ort, rechnungen.rg_nr FROM kunden LEFT JOIN rechnungen ON kunden.kdnr = rechnungen.kdnr WHERE rechnungen.rg_dat >= '-1109545200-1107212400' AND rechnungen.rg_dat <= '--' GROUP BY kunden.kdnr ORDER BY kunden.kdnr DESC LIMIT 0, 30Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Array' at line 1
                  Query: Array
                  Gruß

                  Oli

                  Kommentar


                  • #10
                    Hallo,

                    soweit verstehe ich die Fehlermeldung ja, dass was fehlt. Aber an der Schreibweise finde ich auch keinen Fehler.

                    Gruß

                    Oli

                    Kommentar


                    • #11
                      Danach lasse ich sie mal ausgeben und das funktioniert wie man an dieser Ausgabe sieht:

                      1 2 2005 28 2 2005 [color=red]1107212400 1109545200 ?[/color]
                      Wie gibst du sie aus? was sollen denn die (rot markierten) Zahlen? Zeige mal Code von Auslesen der POST-Var bit zu Funktionsaufruf.

                      Kommentar


                      • #12
                        Hallo,

                        die rot makierten Zahlen sind 2 weitere Variablen, die ich habe ausgeben lassen. Spielen allerdings keine Rolle für dieses Problem. Hier das komplette Skript:

                        PHP-Code:
                        <?php
                        define
                        ('FPDF_FONTPATH''font/');

                        include 
                        'db_verbindung.php'//Stellt die DB-Verbindung her
                        require ('PDF_MySQL_Table.php');
                        require (
                        'fpdf.php'); //zur PDF-Erstellung

                        //Variablenübernahme aus Formular
                        $beginnTag $HTTP_POST_VARS["beginnTag"];
                        $beginnMonat $HTTP_POST_VARS["beginnMonat"];
                        $beginnJahr $HTTP_POST_VARS["beginnJahr"];

                        $endTag $HTTP_POST_VARS["endTag"];
                        $endMonat $HTTP_POST_VARS["endMonat"];
                        $endJahr $HTTP_POST_VARS["endJahr"];

                        echo 
                        "$beginnTag\n";
                        echo 
                        "$beginnMonat\n";
                        echo 
                        "$beginnJahr\n";
                        echo 
                        "$endTag\n";
                        echo 
                        "$endMonat\n";
                        echo 
                        "$endJahr\n";

                        //Datumsbereich -> TimeStamps erstellen
                        //$range = holeDatumsBereich($beginnTag, $beginnMonat, $beginnJahr, $endTag, $endMonat, $endJahr);
                        $start mktime (000$beginnMonat$beginnTag$beginnJahr);
                        $ende mktime (000$endMonat$endTag$endJahr);

                        echo 
                        "$start\n";
                        echo 
                        "$ende\n";

                        //Class PDF
                        class PDF extends PDF_MySQL_Table {
                            function 
                        Header() {
                                
                        //Title
                                
                        $this->SetFont('Arial'''18);
                                
                        $this->Cell(06'Tabellenausgabe als PDF'01'C');
                                
                        $this->Ln(10);
                                
                        //Ensure table header is output
                                
                        parent :: Header();
                            }
                        }

                        define('FPDF_FONTPATH''/font/');

                        //Erzeugung eins PDF-Dokumentes
                        $pdf = new PDF_MySQL_Table();
                        $pdf->Open();
                        $pdf->AddPage();
                        //First table: put all columns automatically
                        //$sql = "SELECT * FROM kunden ORDER BY kdnr";
                        $pdf->Table(holeStatistik($beginnTag$beginnMonat$beginnJahr$endTag$endMonat$endJahr));
                        $pdf->Output();
                        ?>
                        Wie Du siehst gebe ich die Variablen mit echo $beginnTag beispielsweise aus.

                        Gruß

                        oli

                        Kommentar


                        • #13
                          Hallo Leute,

                          habe das mit der Übergabe der Variablen an eine Funktion, die die SQL-Abfrage absetzt, erst mal auf Eis gesetzt und gebe die Abfrage direkt ein und mal ohne Variable sondern mit festen Werten. Jedoch bekomme ich keine Daten zurückgeliefert, obwohl die Abfrage im phpMyAdmin einwandfrei funktioniert und theoretisch 14 Datensätze ausgegeben werden müßten. Soviele Rechnungen sind jedenfalls in angegebenen Zeitraum vorhanden. Weiß jemand vielleicht wieso keine Daten ausgegeben werden?

                          PHP-Code:
                          $pdf->Table("SELECT 
                             kunden.kdnr, kunden.name, kunden.plz, kunden.ort 
                          FROM 
                             kunden 
                          INNER JOIN 
                             rechnungen ON kunden.kdnr = rechnungen.kdnr 
                          WHERE 
                             rechnungen.rg_dat >= '2005-2-1' AND rechnungen.rg_dat <= '2005-2-1'"
                          ); 

                          Kommentar


                          • #14
                            PHP-Code:
                            rechnungen.rg_dat >= '2005-2-1' AND rechnungen.rg_dat <= '2005-2-1'"); 
                            steht denn das Datum 2005-2-1 so auch bei dir in der DB?
                            mfg
                            marc75

                            <Platz für anderes>

                            Kommentar


                            • #15
                              Ist als Date in der MySQL-DB formatiert und das steht so dann drin.

                              Kommentar

                              Lädt...
                              X