Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Termine in Datenbank [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Termine in Datenbank


 
Stahli
07-04-2010, 18:35 
 
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. (http://www.sv-monte-mare.de/termine.html)

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

 
Kropff
07-04-2010, 20:55 
 
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 (http://www.php-resource.de/jobjs/jobs,13,PROJEKTE.htm). Ansonsten verschiebe ich es zur Projekthilfe.

Peter

 
AmicaNoctis
07-04-2010, 20:56 
 
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

 
Stahli
07-04-2010, 21:07 
 
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:

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:

<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 />
<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

 
Kropff
07-04-2010, 21:13 
 
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 (http://www.peterkropff.de/). Und das wurde extra für Anfänger gemacht. :)

 
AmicaNoctis
07-04-2010, 21:13 
 
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:

alter table Tabellenname add date_end DATETIME;

Gruß,

Amica

 
Stahli
07-04-2010, 21:19 
 
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:

alter table Tabellenname 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 :(

 
AmicaNoctis
07-04-2010, 21:27 
 
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.

 
Kropff
07-04-2010, 21:46 
 
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

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:54 Uhr.