Wie Wo Was vertauschen ?
Abfrage DB - Zeiten vergleichen - Logikproblem
Einklappen
X
-
kürzen wir's einfach abCode:SELECT a.id, CONCAT(a.date, ' ', a.time) start, a.length, SUM( (CONCAT(a.date, ' ', a.time) BETWEEN CONCAT(b.date, ' ', b.time) AND CONCAT(b.date, ' ', b.time) + INTERVAL b.length MINUTE) + (CONCAT(b.date, ' ', b.time) BETWEEN CONCAT(a.date, ' ', a.time) AND CONCAT(a.date, ' ', a.time) + INTERVAL a.length MINUTE) ) konflikt FROM vortrag a, vortrag b WHERE a.id != b.id GROUP BY a.id, start, a.length ORDER BY start
hast du die spalten date und time jetzt endlich mal zusammengefasst um uns allen tipparbeit zu sparen?Ich denke, also bin ich. - Einige sind trotzdem...
Kommentar
-
Ja, es tut, was es soll
Ist aber ganz schön kompliziert geworden, oder ?
hast du die spalten date und time jetzt endlich mal zusammengefasst um uns allen tipparbeit zu sparen?
Habe ich mich eigentlich schon bedankt, wenn nicht, dann DANKE du Häuptling
Der IndianerManus manum lavat.
Kommentar
-
Original geschrieben von Churchill27
Ja, es tut, was es sollIst aber ganz schön kompliziert geworden, oder ?Ich warte mal auf die Produktiv DB - da ist das sicherlich zusammengefaßt.
ernsthaft: korrigier das lieber jetzt schon, sind ja nur ALTER TABLE (3x) und UPDATE (1x)Zuletzt geändert von mrhappiness; 03.02.2004, 22:30.Ich denke, also bin ich. - Einige sind trotzdem...
Kommentar
-
So, habe ich jetzt gemacht ...
SQL sieht dann so aus:
SELECT a.id, a.datum, a.length, SUM( (
a.datum
BETWEEN b.datum AND b.datum + INTERVAL b.length MINUTE
) + b.datum
BETWEEN a.datum AND a.datum + INTERVAL a.length MINUTE ) konflikt
FROM vortrag a, vortrag b
WHERE a.id != b.id
GROUP BY a.id, a.length
ORDER BY a.datum LIMIT 0 , 30
Ergebnis so:
1 2004-04-25 08:00:00 90 0
2 2004-04-25 09:40:00 90 0
3 2004-04-25 12:00:00 90 1
5 2004-04-25 12:40:00 90 1
4 2004-04-25 14:00:00 90 0
7 2004-04-25 18:00:00 120 0
8 2004-04-26 09:00:00 90 1
9 2004-04-26 09:30:00 90 0
Also wie unsere vorherige Variante ... na, was habe ich jetzt schon wieder falsch gemacht ?Manus manum lavat.
Kommentar
-
Hallöchen,
ich habe da noch mal eine Frage.
Ich habe meine Tabelle jetzt noch um eine weitere Spalte erweitert, die abstract heißt. Dort stehen die Inhalte zu den einzelnen IDs drin.
Mein Ergebnis kann man unter
http://www.kirchel.de/congress/itinerary.php sehen.
Nun möchte ich, wenn man auf eine headline klickt, darunter der Erklärungstext erscheint (Spalte abstract)
Hat jemand eine Idee ?
Mein Problem ist, dass ich ja irgendwie die ID übergeben muss und in die DB-Abfrage einbauen muss
Gruß OlliManus manum lavat.
Kommentar
-
Jo,
habe wohl die Frage falsch gestellt ... ist auch eher ein Logikproblem:
Mein Code sieht so aus:
PHP-Code:while($row = mysql_fetch_array($sql_sel_vortrag)){
echo '<tr bgcolor="'.$con_tab_bg_color.'">'."\n";
echo '<td class="fett_w_10" width="'.$con_col_width_1.'" align="center" valign="top">'.$row[id].'</td>'."\n";
echo '<td class="fett_w_10" width="'.$con_col_width_2.'" align="center" valign="top">'.$row[datum].'<br>'.$row[length].' minutes</td>'."\n";
echo '<td class="fett_w_10" width="'.$con_col_width_3.'" align="left" valign="top">'.$row[ort].'</td>'."\n";
echo '<td class="fett_w_10" width="'.$con_col_width_4.'" align="left" valign="top"><a href="itinerary.php?id='.$row[id].'">'.$row[theme].'</a><br><font class="ita_10">'.$row[consultant].'</font></td>'."\n";
echo '<td class="fett_r_12" width="'.$con_col_width_5.'" align="center">'.overlapping($row[konflikt]).'</td>'."\n";
echo '</tr>'."\n";
}
Eine Idee ?Manus manum lavat.
Kommentar
-
Hi,
genau das, ist mein Problem:
gebe ihn nur da aus, wo du ihn brauchst
Wo und wie schiebe ich das in die while-Schleife ein ?
Wenn ich einfach nur eine Abfrage auf die ID mache, gibt er den Text ja in jeder Zeile aus. Er soll sie aber nur in der Zeile mit der richtigen ID ausgeben.
Manus manum lavat.
Kommentar
Kommentar