Also:
Wenn ich das richtig vermute, enthalten die Spalten `launch_time` und `create_time`
ein "Datum" im Format "MM/YYYY".
Das ist zwar ein sehr ungünstiges Format,
aber du kannst dennoch die Differenz in Monaten, die durch die Subtraktion
dieser beiden Spalten enstehen soll, von MYSQL berechnen lassen.
zB so:
---> PERIOD_DIFF(CONCAT(SUBSTRING_INDEX(launch_time, '/', -1),SUBSTRING_INDEX(launch_time, '/', 1)), CONCAT(SUBSTRING_INDEX(create_time, '/', -1),SUBSTRING_INDEX(create_time, '/', 1))) AS differenz
Diese so ermittelte `differnz` kannst du dann als ORDER BY -Kriterium zum Sortieren verwenden.
Deine Funktion ---> function getTimeStampFromDate($date)
und deren Verwendung:
--> $start = getTimeStampFromDate($row['launch_time']);
--> $end = getTimeStampFromDate($row['create_time']);
sowie diese Berechnung:
--> $d = round(($end - $start) / 60 / 60 / 24 / 30);
würden dadurch unnötig.
Teste doch einmal folgende Abfrage:
Code:
$result = mysql_query("
SELECT
p.*,
b.*,
PERIOD_DIFF(CONCAT(SUBSTRING_INDEX(launch_time, '/', -1),SUBSTRING_INDEX(launch_time, '/', 1)), CONCAT(SUBSTRING_INDEX(create_time, '/', -1),SUBSTRING_INDEX(create_time, '/', 1))) AS differenz
FROM
project_spec as p
LEFT JOIN
brand_launch as b
ON p.country = b.country
WHERE
p.country='$country'
and
p.icd_id='$icd_id'
and
p.brand_id=b.brand_id
ORDER BY differenz");
Vielleicht kannst du damit dann einfacher weiterarbeiten.
mfG
~dilemma~