Jag håller på med en kalender där jag arbeter med MySQL-server och PHP. I databasen har jag två tabeller, en där kalendariumet sparas och en där händelserna sparas.
Jag måste ju då koppla ihop de två tabellerna så att alla veckor med resp. dagnummer visas vid rätt månad samt att en händelse skrivs ut på rätt dag. Hur ska jag lösa det??
Har testat med INNER JOIN men då skrivs inte alla veckor i månaden ut, utan bara de veckor som innehåller en händelse.
Tack det fungerar bättre... Men om jag har markerat en händelse som deleted och väljer i SQL-satsen tex. deleted=0 eller deleted!=1 så visas ändå bara den veckan där något händer... Det måste ju gå och lösa. Ska väl inte behöva ta bort händelsen helt från databasen??
$open = mysql_connect ("localhost", "","");
$sql = "SELECT * FROM kalendarium LEFT JOIN handelser ON kalendarium.kal_week = handelser.week WHERE kal_year='$year' AND kal_month='$month' \
ORDER BY kal_week ASC";
$result = mysql_db_query("kalender","$sql");
while($data=mysql_fetch_array($result)){
Och vad är det du vill göra nu då? För tillfället hämtar du ju ingenting från tabellen "handelser" utan länkar bara in den med LEFT JOIN vilket verkar lite meningslöst.
Du vill lista alla veckor och under respektive vecka visa om nåt händer?
SELECT k.*, h.* FROM kalendarium k LEFT JOIN handelser h ON h.week = k.kal_week WHERE k.kal_year = '$year' AND k.kal_month = '$month' ORDER BY k.kal_week ASC
Detta borde visa allt rätt, sen kan du ju med hjälp av PHP avgöra om en "händelse" ska visas eller inte baserat på huruvida "deleted" är 0 eller 1...
Det är ingen skillnad i utskriften.. Alla skriver ut likadant. Oavsett Left join och Inner join etc..
Det är när jag lägger till "deleted=0" som det inte fungerar.. Då skriver den bara ut veckorna som har något inplanerat.
Dvs;
SELECT k.*, h.* FROM kalendarium k LEFT JOIN handelser h ON h.week = k.kal_week WHERE k.kal_year = '$year' AND k.kal_month = '$month' AND h.deleted='0' ORDER BY k.kal_week ASC
135 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe