Tobias Kloth: Datenbank Abfrage

Beitrag lesen

Hallo Andreas,

$aktWoche = strftime("%W",time());
$heute = strftime("%d.%m.%Y",time());
$request = mysql_query("Select * From tb_tageskarte Where (woche = $aktWoche) OR (mdatum = $heute)");

ich glaube du suchst als Query eher:
  SELECT [spalten] FROM tb_tageskarte WHERE woche = DATE_FORMAT(NOW(),'%x') OR mdatum = NOW()
(wobei mdatum natürlich ein Datumsformat haben muss).

Nehme ich "OR (mdatum = $heute)" heraus, funktioniert es.

lass dir mal den Query ausgeben (Query immer erst in eine Variable schreiben, nie direkt in den Funktionsaufruf von mysql_query()). Du wirst feststellen, dass da was wie »WHERE woche = 51 OR mdatum = 29.12.2004« steht - ich vermute mal, dass sich MySql (nicht PHP! PHP ist es völlig egal, was in dem String der mysql_query übergeben wird, steht) an den fehlenden Anführungszeichen stört.

Datentyp woche ist int(2) und mdatum ist varchar(10)

warum nimmst du für ein Datum nicht einen der dafür vorgesehenen Spaltentypen?

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/web320/html/angebote.php on line 94

bei einem solchen Fehler befrage _immmer_ mysql_error() (ein »or die(mysql_error())« hinter mysql_query() kann sowieso nie schaden).

Grüße aus Nürnberg
Tobias