Sendeplan funktioniert nicht

Jaja ich mal wieder,
nachdem ich mal wieder irgendwo ein Sendeplanscript runtergeladen habe wollte es einfach nicht funktionieren.

Ich trage bei
www.witschi262.bplaced.net/admin/kalendar.php
eine Sendung ein, aber die Datenbank juckt das erstmal nicht die Bohne.
Ausgabe ist übrigens hier:
www.witschi262.bplaced.net/kalendar.php

Naja das Script bei’m admin :
[PHP]

<?php $tag=$_GET['tag']; $monat=$_GET['monat']; $jahr=$_GET['jahr']; $speichern=$_GET['speichern']; $tag_morgen=date('j', mktime(0, 0, 0, $monat , $tag+1, $jahr)); $monat_morgen=date('n', mktime(0, 0, 0, $monat , $tag+1, $jahr)); $jahr_morgen=date('Y', mktime(0, 0, 0, $monat , $tag+1, $jahr)); $tag_gestern=date('j',mktime(0, 0, 0, $monat , $tag-1, $jahr)); $monat_gestern=date('n', mktime(0, 0, 0, $monat , $tag-1, $jahr)); $jahr_gestern=date('Y', mktime(0, 0, 0, $monat , $tag-1, $jahr)); if($tag==""){ $tag=date('d'); $monat=date('n'); $jahr=date('Y'); $tag_morgen=date('j', mktime(0, 0, 0, date("m") , date("d")+1, date("Y"))); $monat_morgen=date('n', mktime(0, 0, 0, date("m") , date("d")+1, date("Y"))); $jahr_morgen=date('Y', mktime(0, 0, 0, date("m") , date("d")+1, date("Y"))); $tag_gestern=date('j', mktime(0, 0, 0, date("m") , date("d")-1, date("Y"))); $monat_gestern=date('n', mktime(0, 0, 0, date("m") , date("d")-1, date("Y"))); $jahr_gestern=date('Y', mktime(0, 0, 0, date("m") , date("d")-1, date("Y"))); } $host= "localhost"; $db_user= "**********"; $db_password= "*********"; $db = "***********"; $connect = mysql_connect($host,$db_user,$db_password); @mysql_select_db($db,$connect) or die("Kann Datenbank nicht öffnen!"); if($speichern!=""){ $query="DELETE FROM kalender WHERE tag='$tag' AND monat='$monat' AND jahr='$jahr'"; mysql_query($query,$connect); for($i=0;$i<12;$i++){ $name=$$i; if($name!=""){ $query="insert into kalender (id, tag, monat, jahr, start, name) VALUES ('', '$tag', '$monat', '$jahr', '$i', '$name')"; mysql_query($query,$connect); $gespeichert="jipp"; } } } $query="SELECT * FROM kalender WHERE tag='$tag' AND monat='$monat' AND jahr='$jahr'"; $result = mysql_query($query,$connect); while($ergebnis = mysql_fetch_array ($result)){ $start = $ergebnis['start']; $_name[$start] = $ergebnis['name']; } ?> Sendeplan <?php if($gespeichert=="jipp"){echo("gespeichert");} ?> <?php for($i=0;$i<12;$i++){ ?> <?}?>
Tag zurück <?=$tag?>. <?=$monat?>. <?=$jahr?>
heute
Tag vor
<?=$i*2?> - <?=($i+1)*2?>
[/PHP] Das andere wrid ja erstmal nicht benötigt, da es ja nichtmal in der DB abspeichert... :roll:

Hm, komischer Script.

Aber mach mal aus jedem Query folgendes, um den Fehler zu finden:
[PHP]
mysql_query(„bla“) or die(mysql_error());
[/PHP]Und poste dann die Fehlermeldung.

Edit: Sorry, ich kenn das nicht, aber ist das Absicht?: $name=$$i;

Okay,
jetzt wird zumindest etwas ABGESPEICHERT.

Allerdings werden jetzt nurnoch eine Zahl statt text ausgegeben.

Edit:
Versuche die Variable $$i jetzt doch so zu lassen und mal mySQL fragen…

Edit II:
lol es wird garkein MySQL error ausgegeben…

Nimm erstmal statt $_GET lieber $_POST und schreibe statt :

[CODE]

[/CODE]Und unterstützt dein Server shorttags? Mache statt <?= lieber <?php ... ?>

Außerdem musst du die Variablen ausgeben:
[PHP] Tag zurück
[/PHP]

Also so:
[PHP] Tag zurück
[/PHP]

nein das selbe Problem.

Nach 10 Seiten google habe ich mich dazu entschieden, es selbst zu erstellen.

Ich habe wirklich keinen blassen Schimmer, wie. Wie soll ich das lösen, welche Woche es gerade ist, und wie soll ich das in die Datenbank abspeichern?

PHP: date - Manual

Nein, beim Zeit auslesen habe ich keine Probleme, aber, ich habe keine Ahnung wie ich da anfangen soll etc etc, ich kriege das einfach nicht hin.

Edit:
Normalerweise, habe ich das Script immer schon so n bisschen im Kopf, wie ich das machen muss, und so, hier habe ich einen Black Out keinen Blassen Schimmer

Lehn dich nochmal zurück, atme tief durch. Und dann denk mal nach:

Du brauchst einen Kalender in dem Sendungen eingetragen werden.
Fang einfach an. Eine einmalige Sendung findet am XX.YY.ZZZZ um HH:II statt.
Also bau eine MySQL-Tabelle auf in der Du diese Sendung erfasst:
Felder: eindeutige ID, Sendungsname, DateTime (Datum und Zeit zusammen in einem Feld im Format DD.MM.YYYY HH:II:SS)

Dann trägst Du dort erstmal manuell eine Sendung ein. Hast also einen Datensatz.

Dann sollte die Ausgabe davon folgen. Wenn Du das hast, schau nach was Du noch zu einer Sendung erfassen willst/musst. Ein Bild, ein Beschreibungstext etc.pp. Für den Kalender ist aber primär erstmal nur das Datum wichtig.

Soweit Anstoß genug?

Ja, danke.
Mein Hänger ist jetzt nur der, dass die anderen, veralteten Datensätze auch wieder gelöscht werden.
Das ganze soll ja voll Automatisiert laufen:
Woche erfassen, die Tage in der Datenbank nehmen und dann:
Okay, die und die Tage brauche ich und dann die Ausgabe. Jeder DJ soll sich Wöchentlich eintragen können. Und natürlich auch Sortiert werden nach Zeit. Das früheste ganz oben.

Du musst die alten Beiträge nicht automatisch löschen. Lass sie in der Datenbank stehen und zeig nur die Termine ab dem aktuellen Datum an. Mit MySQL wäre diese Beschränkung einfach per

... WHERE datum >= NOW() ...

machbar.

Sortierung geht mit ORDER BY datum ASC bzw DESC.

Termine einzelne Tage kannst Du per WHERE-Bedingung ermitteln und mittels DATE_FORMAT() auslesen. Beispiel:

SELECT DATE_FORMAT(datum,'%d') AS tag FROM termine WHERE datum BETWEEN '2010-12-29 00:00:00' AND '2010-12-29 23:59:59'

Das erste funktioniert schonmal super, danke,
Beim zweiten habe ich allerdings ein Problem.

Habe jetzt

[PHP]
$abfrage = „SELECT * FROM sendeplan WHERE datetime >= NOW() and DATE_FORMAT(datetime,‚%d‘) AS datetime FROM sendeplan WHERE datetime BETWEEN ‚2011-01-01 00:00:00‘ AND ‚2010-12-29 23:59:59‘“;
[/php]

Daraus gemacht, geht aber leider nicht:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/virtual/kica-kids.de/htdocs/sendeplan.php on line [B]7

Zeile 7:
while($row = mysql_fetch_object($ergebnis))
[/B]

Dein Statement ist falsch. Schau es dir mal genau an. Du hast 2 Mal FROM und 2 Mal WHERE drinne stehen.

So,
Nachdem ich mal ganz böse und gemein wie ich war, einfach mal das WHERE und das FROM rausgenommen habe, die dazugehörigen Namen auch Ging es nicht.

In meiner Motivation (:D) habe ich dann versucht zwei Abfragen draus zu machen, naja der einzigste Unterschied war jetzt, dass es in Zeile 8 nich hingehauen hat, und nicht in Zeile 7.

Dann habe ich versucht durch irgendwie mit Kommas und ands irgendwas zu machen, aber naja, hat auch nicht geklappt. Ich bin am Ende…

Wozu willst Du da 2 Abfragen draus machen?

Weil ich das in einer nicht rein bekommen habe, nachdem beides nicht geklappt hat, naja

Formuliere mal genau was Du mit den Abfragen/der Abfrage bezwecken willst. Ziel sollte es immer sein möglichst wenig SQL-Statements abzuschicken, insbesondere wenn man dabei aus einer Tabelle jeweils die selben Daten ermitteln möchte.