![]() |
[SQL] Abfrage liefert "supplied argument is not a valid
Hallo!
Ich möchte mit PHP und mySQL ne Geburtstagsanzeige schreiben... Diese Geburtstagsanzeige soll später alle Datenbankeinträge (bzw. Teile davon) ausgeben die in den nächsten 14 Tagen (mal als Beispiel) stattfinden. Nun teste ich hier so ein bisschen mit rum und für den aktuellen Monat ging auch prima aber jetzt hab ich hier ne üble Konstruktion. Sollte eigentlich noch nicht stattgefundene Geburtstage in den nächsten 14 Tagen des Monats ausgeben gibt mir aber nur ne Fehlermeldung:
Code:
Tja, mein Query sieht momentan so aus:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in ... on line 9
SQL-Code:
Wenn da zuviele Klammern sind dann kommt das davon das ich gerade rumprobiert habe aber nix gebacken bekommen habe...
SELECT usr_name, usr_vorname, usr_birthday FROM abi2006_users WHERE( (MONTH(CURDATE()) = MONTH(usr_birthday)) and (DAY(usr_birthday) >= DAY(CURDATE())) and (DATEDIFF(CURDATE(), usr_birthday) <= 14))
Was ich mir wünsche ist nen Query das mir die Datensätze holt mit den Leuten die in den nächsten 14 Tagen Geburtstag haben. Auch wenn das schon im nächsten Monat ist... Ich komm da echt nich mehr weiter... Wenn mir da irgendwer helfen kann, dann kriegt er nen Keks... :) Tausend Dank im Vorraus! MfG Florian :hi: |
Re: [SQL] Abfrage liefert "supplied argument is not a v
Deine Klammern sind schon sehr gewöhnungsbedürftig. :shock:
Wie wäre es damit, das Problem auf den Kern zu reduzieren ?
SQL-Code:
Wegen der Klammern und MySql nicht getestet ! :mrgreen:
SELECT usr_name, usr_vorname, usr_birthday FROM abi2006_users WHERE((DATEDIFF(CURDATE(), usr_birthday) <= 14))
|
Re: [SQL] Abfrage liefert "supplied argument is not a v
Mit dem Ergebnis der Abfrage stimmt etwas grundsätzliches nicht. Daher würden wohl all Deine Zeilen unmittelbar vor mysql_fetch_object schon sehr interessant sein (Verbindung zur DB, SQL-Abfrage, usw.) Grundsätzlich empfiehlt sich vor mysql_fetch_object eine Überprüfung, ob Dein Query ein brauchbares Ergebnis lieferte, bevor Du weitermachst.
Denny |
Re: [SQL] Abfrage liefert "supplied argument is not a v
@Hansa: Ich steh auf Klammern. Manchmal helfen die echt beim Verständnis (aber auch nur manchmal... *g*). Deine Abfrage werde ich nachher mal testen ich muss jetzt erst kurz weg.
@DennyC: Wie kann ich denn vernünftig und sinnvoll überprüfen ob ich nen ordentliches Ergebnis erhalten habe? Hier ist auch nochmal die ganze Datei:
Code:
Is also nich viel mehr... ;)
<?php
include('includes/db_connect.php'); include('includes/functions.php'); $query = 'SELECT usr_name, usr_vorname, usr_birthday FROM abi2006_users WHERE MONTH(CURDATE()) = MONTH(usr_birthday) and DAY(usr_birthday) >= DAY(CURDATE()) and DATEDIFF(CURDATE(), usr_birthday) <= 14'; $result = mysql_query($query); while($row = mysql_fetch_object($result)) { echo($row->usr_vorname.' '.$row->usr_name.' wird am '.str_replace('0','',substr(date_mysql2german($row->usr_birthday),0,6)).' '.(date("Y") - $row->usr_birthday).' Jahre alt! '); } mysql_close($db); ?> MfG Florian :hi: EDIT: Ich wollte Hansa´s Query mal direkt ausführen und da erhielt ich folgende Fehlermeldung:
Code:
Geht also auch nicht. Ich glaube fast das es am DATEDIFF liegt, weiss aber auch nicht wie ich das umgehen kann...
#1064 - 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 '(CURDATE(), usr_birthday) <= 14)) LIMIT 0, 30' at line 1
|
Re: [SQL] Abfrage liefert "supplied argument is not a v
:roll: büdde helfen... *liebguck*
MfG Florian :hi: |
Re: [SQL] Abfrage liefert "supplied argument is not a v
Habe das hier auch mal ausprobiert:
SQL-Code:
Geht auch nich... :cry:
SELECT name, vorname, birthday FROM abi2006_users WHERE DATEDIFF(DAYOFYEAR(CURDATE()), DAYOFYEAR(usr_birthday)) <= 14)
So schwer kann das doch gar nicht sein, oder? Ich weiss langsam echt nicht mehr wo das Problem wohl liegt... MfG Florian :hi: |
Re: [SQL] Abfrage liefert "supplied argument is not a v
YEAH YEAH YEAH! :dance:
Folgendes hab ich jetzt und das funktioniert auch! *freu*
SQL-Code:
(die seltsame Formatierung hat PHPmyAdmin selbst gemacht...)
SELECT name, vorname, geburtstag FROM abi2006_users WHERE DAYOFYEAR( geburtstag ) BETWEEN DAYOFYEAR( CURDATE( ) ) AND DAYOFYEAR( CURDATE( ) ) + 14
Boah, wieder was geschafft... :mrgreen: MfG Florian :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz