2016-09-16 21 views
-1

Ich frage mich, ob es möglich ist, meine $ heute in WHERE-Abfrage verwenden. Wenn $ today Montag ist, möchte ich meine WHERE p650Wdat = 1 (1 steht für Montag) Und Dienstag wird 2 und so weiter.Ändern Sie meine WHERE Abfrage hängt davon ab, welcher Tag

$today = date("l"); 
<?php 
$today = date("l"); 
//Establish connection to database 
$host = "randomtext"; 
$conn = myacc"); 
$query = " Select * 
from P660F 
where p660WDAT = $today 
ORDER BY P660PRIO DESC"; 
?> 
+0

Sie DB-Verbindung sieht inkorrekt aus und Ihr Code ist unklar. Bitte korrigieren Sie es. –

+0

Ich wollte meine echte Verbindung nicht zeigen, aber meine Verbindung funktioniert. – Mato

Antwort

1

OK, so dass Sie von Montag bis 1 und Dienstag bis 2 usw. übereinstimmen Wirklich wollen, sollten Sie dieselben Werte in der Tabelle als Variablen zur Vereinfachung und Klarheit haben butyou den Tag-Namen wie so als Integer zurückgeben kann

<?php 
$day_name = date("l"); 
$today = date('N', strtotime($day_name)); 
echo 'Today name is ' . $day_name .'<br>'; 
echo 'Today number is ' . $today; 
?> 

Dann sollte Ihre Abfrage funktionieren

+0

Danke Mann, seine Arbeit – Mato

+0

Mein Vergnügen :-) – kerry

0

diese Verwendung in der where-Klausel: SQL:

WHERE DATENAME(dw, p660WDAT) = $today 

MySQL:

WHERE DAYNAME(p660WDAT)= $today 

Und Ihre Funktion Datum (l) wird auch Tag Namen wie Sonntag, Montag zurück. .. statt 1,2,3 ...

+0

Ich versuche Ihren Code zu verstehen. Aber ich kann nicht herausfinden, wo es Montag zu einer Nummer 1 umwandelt? – Mato

+0

Ihr Code-Datum ("l") gibt Sonntag, Montag ... statt 1,2, .. können Sie dies bitte überprüfen. – Susang

+0

@Mato Ich denke, was er sagt ist, dass seine Tabelle Spalte enthält Zahlen, aber die Zeichenfolge enthält Tag Namen - also wenn heute Montag ist, will er alle Zeilen wo Tag = 1, wenn Dienstag dann wo Tag = 2 – kerry

0

Abhängig von Ihrem RDBMS können Sie verschiedene Möglichkeiten verwenden: MySQL:

WHERE WEEKDAY(p660WDAT)+1 = $today; 

PostgreSQL:

WHERE EXTRACT(DOW FROM TIMESTAMP p660WDAT) = $today; 

P. S. Natürlich solltest du darüber nachdenken, Werten zu entkommen usw. Ich habe nicht erwähnt, dass du eine sauberere Antwort gibst.

P.P.S. Wenn ich Sie richtig verstanden habe, verwenden Sie einfach Datum ('w'), um den Wochentag zu erhalten.

+0

Ich bin versuchen, Ihren Code zu verstehen. Aber ich kann nicht herausfinden, wo es Montag zu einer Nummer 1 umwandelt? – Mato

+0

Ihr $ today = 'Montag', ja? Nicht ganzzahlig? – Dmytrechko

+0

ja mein Tag ist 'Freitag' heute, und da sein Freitag, ich möchte meine wo wdat 5 sein als, – Mato

0
<?php 
$day_name = date("l"); 
$today = date('N', strtotime($day_name)); 
echo 'Today name is ' . $day_name .'<br>'; 
echo 'Today number is ' . $today; 


     $today = date("l"); 
     //Establish connection to database 
     $host = "randomtext"; 
     $conn = myacc"); 
     $query = " Select * 
     from P660F 
     where p660WDAT = $today 


    ORDER BY P660PRIO DESC"; 
?> 
Verwandte Themen