Termine in Datenbank

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Termine in Datenbank

    Hey Leute,
    ich beschäftige mich hobbymäßig etwas mit der Homepage unseres Vereins, die Ersteller selber haben kaum noch Zeit, deswegen pflege ich das alle ein bisschen. Sprich Bilder, Termine, Sachen ändern usw.

    Der Punkt Termine lässt mich derzeit allerdings noch nicht so ganz in Ruhe. Im Admin Login sieht das ganze so aus, dass ich einen neuen Termin einfügen kann, in dem ich in drei Rollmenüs Tag, Monat und Jahr auswähle und dann in einer Textbox die jeweilige Veranstaltung. Das ganze wird dann ausgegeben im öffentlichen. Aber leider gehen einige Veranstaltungen auch über mehrere Tage. Und so muss ich jeden Tag einzeln eingeben. Wie ihr sehen könnt:
    SV monte mare Neustadt/Sa.

    Ich möchte das gerne ändern, aber ungern auf die Datenbank verzichten (sollte es eine einfachere Methode geben sagt mir bescheid, bin kompromissbereit)
    Also sollte eben so aussehen, dass wenn ich ein Enddatum quasi habe: 18.04. - 20.04.10
    Wenn das ganze an einem Tag stattfindet, dann am besten trotzdem nur 18.04.10

    Somit sollte das bisschen übersichtlicher werden.


    Habe selber schon rumprobiert, aber ehrlich gesagt verliere ich irgendwie die Lust, irgendwo klemmts immer, wie gesagt ich hab selber kaum Ahnung von SQL und php, nur für die Grundlagen HTML reichts eben und bisschen was ändern im Code kann ich auch

    Würde mir evtl jemand helfen? Habe die Dateien da, müsste sich nur mal melden...

    Kommt vielleicht bisschen frech rüber, heute erst angemeldet und sofort nach Hilfe betteln, sorry dafür, aber das wäre echt echt freundlich ^^

    Wenn jemand Ideen hat dann einfach hier schreiben ich würde mich dann bei demjenigen mal per ICQ/MSN/skype was auch immer melden.

    Vielen Dank schonmal Leute!!
    Viele Grüße
    Stahli

  • #2
    In so einem Fall gibt es hier zwei Möglichkeiten. Entweder, du postet mal die Datenbankstruktur und den relevanten(!) Code, also nicht alles. Dann schauen wir uns das gerne an.

    Oder aber deine Kenntnisse sind so rudimentär, dass du fertigen Code haben möchtest. Wenn du bereit bist, dafür Geld hinzulegen, dann poste das bei den Stellenangeboten. Ansonsten verschiebe ich es zur Projekthilfe.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hallo,

      dort wo du im HTML-Code Eingabefelder für das Datum hast, verdoppelst du sie mit unterschiedlichen Namen, z. B. yearStart und yearEnd, monthStart und monthEnd etc.

      In der MySQL-Datenbank sollte das nur eine DATETIME-Spalte sein und du machst einfach wieder zwei draus, jeweils für Anfang und Ende.

      Zum Schluss passt du das PHP-Skript so an, dass es alles, was es sowieso mit den Daten macht (entgegennehmen und in der DB wegspeichern), doppelt machst, wieder jeweils für Beginn und Ende und schon hast du es.

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Ok, verschiebe mal bitte zur Projekthilfe, das Unterforum hab ich in meinem Wahn gar nicht gesehen..

        Also, ich poste erstmal den Code und schreibe dann was ich vorschlage:

        Code:
        if(isset($_GET['aktion']) and $_GET['aktion'] == 'aendern'){
                $select_veranstaltung = "Select veranstaltung, date_format( datum, '%e' ) 'tag', date_format( datum, '%c' ) 'monat',
                    date_format( datum, '%Y' ) 'jahr', id, public from termine where id = '".$_GET['id']."'";
                $query_veranstaltung = mysql_db_query($datenbank,$select_veranstaltung);
                $result_veranstaltung = mysql_fetch_assoc($query_veranstaltung);
                echo '<div class="container" style="width:400px;"><form method="post" action="./index.php?seite=termine.php">
                    <label for="veranstaltung">Veranstaltung</label><input size="40" type="text" name="veranstaltung" value="'.utf8_encode($result_veranstaltung['veranstaltung']).'" /><br /><br />
                    <label for="tag">Datum</label><select name="tag">';
                        for($i=1;$i<=31;$i++){
                            echo '<option ';
                            if($result_veranstaltung['tag'] == $i){ echo 'selected="selected" ';};
                            echo '>'.$i.'</option>';
                        }
                    echo '</select><select name="monat">';
                        for($i=1;$i<=12;$i++){
                            echo '<option ';
                            if($result_veranstaltung['monat'] == $i){ echo 'selected="selected" ';};
                            echo '>'.$i.'</option>';
                        }
                    echo '</select><select name="jahr">';
                        for($i=2005;$i<=2010;$i++){
                            echo '<option ';
                            if($result_veranstaltung['jahr'] == $i){ echo 'selected="selected" ';};
                            echo '>'.$i.'</option>';
                        }
                    echo '</select><input type="hidden" name="id" value="'.$_GET['id'].'" /><br /><br />
                    <label for="public">&Ouml;ffentlich</label><select name="public">
                        <option value="0"';
                            if($result_veranstaltung['public'] == 0){ echo 'selected="selected" ';};
                        echo '>nein</option>';                
                        echo '<option value="1"';
                            if($result_veranstaltung['public'] == 1){ echo 'selected="selected" ';};
                        echo '>ja</option>';                
                    echo '</select><br /><br />
                    <span style="margin-left:100px;">
                        <input class="button" type="reset" />&nbsp;<input class="button" 
        type="submit" value="&Auml;ndern" name="aendern" />
                    </span>
                </form></div>';    
            }
            elseif(isset($_GET['aktion']) and $_GET['aktion'] == 'loeschen'){
                echo '<div class="container" style="width:200px; text-align:center; margin-left:180px;">
                    M&ouml;chten Sie wirklich den Datensatz l&ouml;schen?<br /><br />
                    <form action="./index.php?seite=termine.php" method="post">
                        <input type="hidden" name="id" value="'.$_GET['id'].'" />
                        <input class="button" type="submit" name="wirklich_loeschen" value="ja" />
                        &nbsp;
                        <input class="button" type="submit" name="verwerfen" value="nein" />
                    </form>
                    </div>';
            }
            elseif(isset($_GET['aktion']) and $_GET['aktion'] == 'einfuegen'){
                $datum = getdate();
                echo '<div class="container" style="width:400px;"><form method="post" action="./index.php?seite=termine.php">
                    <label for="veranstaltung">Veranstaltung</label><input 
        type="text" size="40" name="veranstaltung" /><br /><br />
                    <label for="tag">Datum</label><select name="tag">';
                        for($i=1;$i<=31;$i++){
                            echo '<option ';
                            if($datum[mday] == $i){ echo 'selected="selected" ';};
                            echo '>'.$i.'</option>';
                        }
                    echo '</select><select name="monat">';
                        for($i=1;$i<=12;$i++){
                            echo '<option ';
                            if($datum[mon] == $i){ echo 'selected="selected" ';};
                            echo '>'.$i.'</option>';
                        }
                    echo '</select><select name="jahr">';
                        for($i=2006;$i<=2010;$i++){
                            echo '<option ';
                            if($datum[year] == $i){ echo 'selected="selected" ';};
                            echo '>'.$i.'</option>';
                        }
                    echo '</select><br /><br />
                    <label for="public">&Ouml;ffentlich</label><select name="public">
                        <option value="0">nein</option>            
                        <option value="1">ja</option>';                
                    echo '</select><br /><br />
                    <span style="margin-left:100px;">
                        <input class="button" type="reset" />&nbsp;<input class="button" 
        type="submit" value="Einf&uuml;gen" name="einfuegen" />
                    </span>
                </form></div>';
            }
            elseif(!isset($_GET['aktion']) or isset($_POST['verwerfen']) or isset($_POST['wirklich_loeschen']) 
        or isset($_POST['aendern']) or isset($_POST['einfuegen'])){
                if(isset($_POST['wirklich_loeschen'])){
                    $delete_veranstaltung = "Delete from termine where id = ".$_POST['id'];
                    $result = mysql_db_query($datenbank,$delete_veranstaltung);
                }
                if(isset($_POST['aendern']) or isset($_POST['einfuegen'])){
                    if($_POST['tag'] < 10){
                        $tag = "0".$_POST['tag'];
                    }
                    else{
                        $tag = $_POST['tag'];
                    }
                    if($_POST['monat'] < 10){
                        $monat = "0".$_POST['monat'];
                    }
                    else{
                        $monat = $_POST['monat'];
                    }
                    if(isset($_POST['aendern'])){        
                        $update_veranstaltung = "UPDATE `termine` SET `datum` = '".$_POST['jahr']."-".$monat."-".$tag."',
                            `veranstaltung` = '".utf8_decode($_POST['veranstaltung'])."',
         `public` = '".$_POST['public']."' WHERE `id` = '".$_POST['id']."'";            
                        mysql_db_query($datenbank,$update_veranstaltung);                
                    }
                    elseif(isset($_POST['einfuegen'])){
                        $insert_veranstaltung = "Insert into termine (veranstaltung, datum, public)
        values ('".utf8_decode($_POST['veranstaltung'])."', '".$_POST['jahr']."-".$monat."-".$tag."', '".$_POST['public']."')";
                        mysql_db_query($datenbank,$insert_veranstaltung);
                    }
                }
        So, ist bisschen mehr geworden, da ich nicht wirklich weiß, was wichtig und unwic htig sein könnte.
        Also die Idee mit dem verdoppeln hatte ich auch.

        Im Prinzip brauche ich die drei Rollmenüs + die Textbox Veranstaltungen ja nochmal, richtig?

        Einfügen würd ich nun also noch das, entsprechend unter die jeweiligen Passagen:

        Code:
        <label for="endtag">End-Datum</label><select name="endtag">';
                        for($i=1;$i<=31;$i++){
                            echo '<option ';
                            if($result_veranstaltung['endtag'] == $i){ echo 'selected="selected" ';};
                            echo '>'.$i.'</option>';
                        }
                    echo '</select><select name="endmonat">';
                        for($i=1;$i<=12;$i++){
                            echo '<option ';
                            if($result_veranstaltung['endmonat'] == $i){ echo 'selected="selected" ';};
                            echo '>'.$i.'</option>';
                        }
                    echo '</select><select name="endjahr">';
                        for($i=2005;$i<=2010;$i++){
                            echo '<option ';
                            if($result_veranstaltung['endjahr'] == $i){ echo 'selected="selected" ';};
                            echo '>'.$i.'</option>';
                        }
                    echo '</select><input type="hidden" name="id" value="'.$_GET['id'].'" /><br /><br />
        Code:
        <label for="endtag">End-Datum</label><select name="endtag">';
                        for($i=1;$i<=31;$i++){
                            echo '<option ';
                            if($datum[mday] == $i){ echo 'selected="selected" ';};
                            echo '>'.$i.'</option>';
                        }
                    echo '</select><select name="endmonat">';
                        for($i=1;$i<=12;$i++){
                            echo '<option ';
                            if($datum[mon] == $i){ echo 'selected="selected" ';};
                            echo '>'.$i.'</option>';
                        }
                    echo '</select><select name="endjahr">';
                        for($i=2006;$i<=2010;$i++){
                            echo '<option ';
                            if($datum[year] == $i){ echo 'selected="selected" ';};
                            echo '>'.$i.'</option>';
                        }
                    echo '</select><br /><br />
        Oder? Was ich nun nicht weiß: Wie ich das nun in die entsprechende Spalte "Enddatum" meiner Datenbank bringe.
        Über das Auslesen reden wir erstmal nicht würde ich sagen. Nur mal dieses Interface. Hab im Prinzip alle Bezeichnungen (Tag Monat Jahr) ein End davor gesetzt...

        Viele Grüße
        Zuletzt geändert von Stahli; 07.04.2010, 21:06.

        Kommentar


        • #5
          Bitte brich aber den Code um! Kein Mensch scrollt gerne kilometerweit nach rechts. Und benutze die PHP-Tags für den Code.

          Peter

          PS: Erfahrungsgemäß hilft dir bei der Projekthilfe sehr selten jemand. Solltest du also die notwendige Geduld aufbringen, so lerne es selber. Eine Anleitung dazu findest du bei mir. Und das wurde extra für Anfänger gemacht.
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Benutzt du PHPMyAdmin? Wenn ja, kannst du dort einfach eine Spalte hinzufügen (Tabelle auswählen, Strukturansicht und unten steht dann: [1] Felder hinzufügen (*) An das Ende der Tabelle ( ) An den Anfang der Tabelle ( ) Nach [_____v] [OK]

            Wenn nicht:

            Code:
            alter table [I]Tabellenname[/I] add date_end DATETIME;
            Gruß,

            Amica
            Zuletzt geändert von AmicaNoctis; 07.04.2010, 20:17.
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Zitat von AmicaNoctis Beitrag anzeigen
              Benutzt du PHPMyAdmin? Wenn ja, kannst du dort einfach eine Spalte hinzufügen (Tabelle auswählen, Strukturansicht und unten steht dann: [1] Felder hinzufügen (*) An das Ende der Tabelle ( ) An den Anfang der Tabelle ( ) Nach [_____v] [OK]

              Wenn nicht:

              Code:
              alter table [I]Tabellenname[/I] add date_end DATETIME;
              Gruß,

              Amica
              ja, das is kein problem, aber wie bekomme ich das ganze jetzt eben da rein^^ also meine informationen in eben diese spalte...

              ehrlich gesagt hatte ich gedacht, dass mein "problem" für so php cracks kein problem ist... aber das scheint ja doch garned so schnell zu gehen, was ich da vor habe

              Kommentar


              • #8
                Such das PHP-Skript, welches das macht. Das ist das, was auf der Webseite zum Eintragen im HTML-Code als action-Attribut des form-Elements eingetragen ist.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  Zitat von AmicaNoctis Beitrag anzeigen
                  Such das PHP-Skript, welches das macht. Das ist das, was auf der Webseite zum Eintragen im HTML-Code als action-Attribut des form-Elements eingetragen ist.
                  Ich glaube, das ist derzeit noch vergebliche Müh, da offenbar die Grundlagen fehlen. Sorry Stahli, aber ist wohl so. Wenn du viel Zeit und Geduld hast, so lerne die Grundlagen, weil es ohne die nicht geht.

                  Peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar

                  Lädt...
                  X