php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.03.2005, 12:45  
Gast
 
Beiträge: n/a
Standard [Erledigt] Datumsabfrage WHERE wie?

Hallo Leute,

suche hier schon seit einigen Stunden im Forum nach einer Antwort, aber habe bisher noch keine Lösung zu meinem Problem gefunden.

Es sieht folgendermaßen aus:

Ich habe eine recht einfache Abfrage, bei alle Rechnungen in einem bestimmten Zeitraum ausgegeben werden sollen.
Jedoch bekomme ich keine Werte zurückgeliefert, ovbwohl von den 16 vorhandenen Datensätze bei meiner Testdatumsangabe (1-28. Feb) 14 Datensätze zurückgeliefert werden müssten.

Ich habe folgenden Aufbau:

Code:
$invoiceQuery = mysql_query('SELECT rg_nr, rg_dat, rg_betrag FROM rechnungen 
WHERE kdnr='.$allCustomerArray["kdnr"].' 
AND rg_dat 
BETWEEN '.$beginnJahr.'-'.$beginnMonat.'-'.$beginnTag.' 
AND '.$endJahr.'-'.$endMonat.'-'.$endTag.' ORDER BY rg_nr');
Ach, das Dtaum ist in der DB als Date hinterlegt.

Weiß jemand wo hier der Fehler liegt und wie man ihn beheben kann?

Gruß

Oli

P. S.: Ohne die WHERE-Klausel funktioniert die Abfrage einwandfrei.
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.03.2005, 13:04  
Gast
 
Beiträge: n/a
Standard

Vorschlag:
Code:
$query =
"SELECT
   rg_nr, rg_dat, rg_betrag
FROM
   rechnungen
WHERE
   kdnr = '" .$allCustomerArray["kdnr"] ."'
AND
   rg_dat
   BETWEEN
      CONCAT('$beginnJahr', '-', '$beginnMonat', '-', '$beginnTag'
      AND
      CONCAT('$endJahr', '-', '$endMonat', '-', _$endTag')
ORDER BY rg_nr
";

ECHO "<hr> $query <hr>";

$invoiceQuery = mysql_query($query) or(mysql_error());
Und zeige ggf. die Fehlermeldung und das Ergebnis des ECHO.

mfG ~dilemma~
  Mit Zitat antworten
Alt 10.03.2005, 13:07  
Gast
 
Beiträge: n/a
Standard

Korrektur:
Da fehlte eine )-Klammer am Ende con CONCAT(...

Code:
   BETWEEN
      CONCAT('$beginnJahr', '-', '$beginnMonat', '-', '$beginnTag' )
~dilemma~
  Mit Zitat antworten
Alt 10.03.2005, 13:15  
Gast
 
Beiträge: n/a
Standard

Danke, probiere ich gleich mal aus.

Gruß

oli
  Mit Zitat antworten
Alt 10.03.2005, 13:20  
Gast
 
Beiträge: n/a
Standard

noch ein Nachtrag:
Code:
$query =
"SELECT
   rg_nr, rg_dat, rg_betrag
FROM
   rechnungen
WHERE
   kdnr = '" .$allCustomerArray["kdnr"] ."'
AND
   rg_dat
   BETWEEN
      CONCAT('$beginnJahr', '-', '$beginnMonat', '-', '$beginnTag')
      AND
      CONCAT('$endJahr', '-', '$endMonat', '-', _$endTag')
ORDER BY rg_nr
";

ECHO "<hr> $query <hr>";

$invoiceQuery = mysql_query($query) or die(mysql_error());

ECHO "Die Anfrage hat ". mysql_num_rows() ." Datensätze gefunden."; /*<<<<*/
Und zeige ggf. die Fehlermeldung und das Ergebnis des ECHOs.

mfG ~dilemma~
  Mit Zitat antworten
Alt 10.03.2005, 13:24  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von dilemma
Vorschlag:
Code:
$query =
"SELECT
   rg_nr, rg_dat, rg_betrag
FROM
   rechnungen
WHERE
   kdnr = '" .$allCustomerArray["kdnr"] ."'
AND
   rg_dat
   BETWEEN
      CONCAT('$beginnJahr', '-', '$beginnMonat', '-', '$beginnTag'
      AND
      CONCAT('$endJahr', '-', '$endMonat', '-', _$endTag')
ORDER BY rg_nr
";

ECHO "<hr> $query <hr>";

$invoiceQuery = mysql_query($query) or(mysql_error());
Und zeige ggf. die Fehlermeldung und das Ergebnis des ECHO.

mfG ~dilemma~
Hallo,

habe es mal so wie Du vorgeschlagen hast ausprobiert. Liefert folgende Bildschirmausgabe bzw. Fehlermeldung:

Zitat:
SELECT rg_nr, rg_dat, rg_betrag FROM rechnungen WHERE kdnr = '10000' AND rg_dat BETWEEN CONCAT('2005', '-', '02', '-', '01') AND CONCAT('2005', '-', '02', '-', 28') ORDER BY rg_nr
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/test/html2pdf_ausgabe.php on line 81
SELECT rg_nr, rg_dat, rg_betrag FROM rechnungen WHERE kdnr = '10001' AND rg_dat BETWEEN CONCAT('2005', '-', '02', '-', '01') AND CONCAT('2005', '-', '02', '-', 28') ORDER BY rg_nr
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/test/html2pdf_ausgabe.php on line 81
SELECT rg_nr, rg_dat, rg_betrag FROM rechnungen WHERE kdnr = '10002' AND rg_dat BETWEEN CONCAT('2005', '-', '02', '-', '01') AND CONCAT('2005', '-', '02', '-', 28') ORDER BY rg_nr
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/test/html2pdf_ausgabe.php on line 81
SELECT rg_nr, rg_dat, rg_betrag FROM rechnungen WHERE kdnr = '10003' AND rg_dat BETWEEN CONCAT('2005', '-', '02', '-', '01') AND CONCAT('2005', '-', '02', '-', 28') ORDER BY rg_nr
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/test/html2pdf_ausgabe.php on line 81
SELECT rg_nr, rg_dat, rg_betrag FROM rechnungen WHERE kdnr = '10004' AND rg_dat BETWEEN CONCAT('2005', '-', '02', '-', '01') AND CONCAT('2005', '-', '02', '-', 28') ORDER BY rg_nr
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/test/html2pdf_ausgabe.php on line 81

Warning: Cannot modify header information - headers already sent by (output started at /opt/lampp/htdocs/test/html2pdf_ausgabe.php:74) in /opt/lampp/htdocs/test/fpdf.php on line 1022
FPDF error: Some data has already been output to browser, can't send PDF file
Gruß

Oli
  Mit Zitat antworten
Alt 10.03.2005, 13:41  
Gast
 
Beiträge: n/a
Standard

noch ne Korrektur:
Code:
$invoiceQuery = mysql_query($query) or die(mysql_error());
------------------------------------^^^^^^----------------
sorry ~dilemma~
  Mit Zitat antworten
Alt 10.03.2005, 13:50  
Gast
 
Beiträge: n/a
Standard

Hallo,

jetzt kommt nur noch diese Fehlermeldung:

Zitat:
SELECT rg_nr, rg_dat, rg_betrag FROM rechnungen WHERE kdnr = '10000' AND rg_dat BETWEEN CONCAT('2005', '-', '02', '-', '01') AND CONCAT('2005', '-', '02', '-', 28') ORDER BY rg_nr 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 '') ORDER BY rg_nr' at line 1
Ach habe noch was geändert:

Zitat:
SELECT rg_nr, rg_dat, rg_betrag FROM rechnungen WHERE kdnr = '10000' AND rg_dat BETWEEN CONCAT('2005', '-', '02', '-', '01') AND CONCAT('2005', '-', '02', '-', '28') ORDER BY rg_nr 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 '') ORDER BY rg_nr' at line 1
An dieser Stelle fehlte ein Hochkomma.

Gruß

Oli
  Mit Zitat antworten
Alt 10.03.2005, 13:57  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von oschleicher
Hallo,

jetzt kommt nur noch diese Fehlermeldung:

Zitat:
SELECT rg_nr, rg_dat, rg_betrag FROM rechnungen WHERE kdnr = '10000' AND rg_dat BETWEEN CONCAT('2005', '-', '02', '-', '01') AND CONCAT('2005', '-', '02', '-', 28') ORDER BY rg_nr 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 '') ORDER BY rg_nr' at line 1
Ach habe noch was geändert:

Zitat:
SELECT rg_nr, rg_dat, rg_betrag FROM rechnungen WHERE kdnr = '10000' AND rg_dat BETWEEN CONCAT('2005', '-', '02', '-', '01') AND CONCAT('2005', '-', '02', '-', '28') ORDER BY rg_nr 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 '') ORDER BY rg_nr' at line 1
An dieser Stelle fehlte ein Hochkomma.

Gruß

Oli
Und nun kommt diese Fehlermeldung:

Zitat:
Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /opt/lampp/htdocs/test/html2pdf_ausgabe.php on line 72
Gruß

Oli
  Mit Zitat antworten
Alt 10.03.2005, 14:03  
Gast
 
Beiträge: n/a
Standard

Alle Achtung: ein Heidenaufriß.

PHP-Code:
<?php
$sql 
sprintf("SELECT rg_nr, rg_dat, rg_betrag FROM rechnungen 
 WHERE kdnr='%s' AND 
 rg_dat 
 BETWEEN '%s' 
 AND '%s' 
 ORDER BY rg_nr"
,
$allCustomerArray["kdnr"]
$beginnJahr '-' $beginnMonat '-' $beginnTag,
$endJahr '-' $endMonat '-' $endTag);
?>
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
erweiterte abfrage - where DarkManX Datenbanken 2 02.02.2007 17:14
Parsen von Delimitern Basti Tutorials 0 30.09.2006 21:24
WHERE String greift nicht,sobald ich zusätzliche Angaben hab GELight Datenbanken 4 04.05.2006 02:23
Mehrere Werte in WHERE abfrage McNet Datenbanken 6 23.04.2006 02:06
[Erledigt] select where TIME Datenbanken 7 17.02.2006 12:40
where in? bzw. feld auf inhalte überprüfen...? Datenbanken 3 12.02.2006 16:00
Mit Where überprüfen ob eine Spalte leer ist. solitaer Datenbanken 4 29.09.2005 18:34
[Erledigt] WHERE problem Datenbanken 5 12.06.2005 15:54
Befehlsoptimierung faux Datenbanken 4 31.05.2005 19:11
Where mehrmals benutzen Datenbanken 9 18.05.2005 18:23
where string von einer funktion zu anderen transportieren PHP Tipps 2005 5 03.03.2005 16:29
SELECT FROM DB WHERE 2 SACHEN UEBEREINSTIMMEN Datenbanken 3 24.01.2005 15:58
Nur bestimmte Felder auslesen (forum_id) Datenbanken 10 22.10.2004 09:19
Problem mit dem WHERE Befehl PHP Tipps 2004 5 08.07.2004 00:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
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 concat

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:07 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.