iceget
Goto Top

MySQL Select in Kombination mit einer PHP-Funktion

Hallo liebe Community,

ich habe folgendes Problem:
Ich habe eine PHP-Funktion. Diese nennt sich getWeekFromID. Diese gibt anhand einer vorhandenen ID die Woche zurück, in welcher sich ein registrierer Benutzer befindet.

Da es sich hierbei um eine Berechung innerhalb einer PHP-Funktion handelt, stellt sich mir die Frage, wie ich folgendes realisieren kann:

SELECT * FROM `customers` WHERE `inweek` = getWeekFromID(id(id=vom selben SELECT * FROM));

Also das ich im MySQL Query eine PHP-Funktion aufrufen kann, damit der MySQL Server dann z.B. die Zahl 2 (Woche 2) zurück bekommt:
SELECT * FROM `customers` WHERE `inweek` = '2');

Gibt es hiefür eine Möglichkeit? Ich berechne "inWeek" anhand des Registrierdatums (diese Funktion getWeekFromID) ist nur ein Beispiel.
Ich hab hier auch mehrere andere Funktionen die ich direkt mit dem MySQL Server abfragen würde SELECT * FROM `customers` WHERE `irgendeinwert` = phpFunctionIrgendeineFunction(id);

Könnt ihr mir helfen?

Vielen Dank & lg

Content-Key: 298529

Url: https://administrator.de/contentid/298529

Ausgedruckt am: 29.03.2024 um 02:03 Uhr

Mitglied: Arano
Arano 08.03.2016 um 18:19:34 Uhr
Goto Top
Moin,

<code type=php">
<?php
$intWeek = getWeekFromId( 11880 );
$strQueryCustInWeek = "SELECT * FROM `customers` WHERE `inweek` = $intWeek";

// OR simple

$strQueryCustInWeek = "SELECT * FROM `customers` WHERE `inweek` = ".getWeekFromIdOrWhatEverFunction( 11880 );
?>

Ist ne einfache Verkettung PHP-Manual - String operator


~Arano
Mitglied: nxclass
nxclass 21.04.2016 um 00:23:12 Uhr
Goto Top
Was du wahrscheinlich machen willst
SELECT *
FROM `customers`
WHERE `inweek` = DATE_FORMAT(`irgend_ein_feld_der_tabelle`,'%V')  

http://www.w3schools.com/sql/func_date_format.asp
.. es kann natürlich sein das dein Datums DB Feld in einer ganz anderen Tabelle liegt, dann musst Du hier noch mit JOINs arbeiten.

Wenn dein Datum aus dem PHP kommt dann musst du hier mit Parametern in der SQL Anweisung arbeiten:
SELECT * FROM `customers` WHERE `inweek` = ?
.. und den Wert 2 dann bei der Ausführung des Statements mit übergeben.
http://php.net/manual/de/book.pdo.php