"Lebendes Dokument"?

Hallo zusammen,

eins vorweg, ich bin voll der Dummie in Sachen php. Aber da stand, dass hier auch Anfänger posten dürfen :wink:

Aber zu meiner Frage: ist es möglich eine Art fortwährendes Protokoll zu führen, in das man Aufgaben und Vorhaben eintragen kann und bearbeitete abhaken kann. So dass man sehen kann, was aktuell oder in naher Zukunft anliegt, man sich als Bearbeiter eintragen oder einzelne Themen als erledigt kennzeichnen kann usw.

Was ich weiß, ist, dass das mit reinem HTML nicht möglich ist. Viel mehr weiß ich aber nicht schäm

Ciao und Danke im Voraus
Thomas

Hallo,
Das ist mit einer Datenbank (MySQL) und PHP möglich. Die Datenbankstruktur könnte so aussehen (einfach gehalten):

Tabelle Aufgaben

Titel | Aufgabe | Bearbeiter | Zusatz | erledigt

Das ganze müsste man nur eintragen und ausgeben per PHP, was man auch als Anfänger schnell lernen kann.

Nicht böse sein, wenn ich dumme Fragen stelle :expressionless:
Ist da eine DB unbedingt erforderlich, oder könnte das auch mit einem Textfile gehen?

Ja, das geht. Du brauchst HTML für die Ausgabe und mindestens PHP für die Speicherung. Worin du die Daten speicherst, ist dann dir überlassen. Entweder in einer Textdatei oder (besser) in MySQL. Für den Einstieg solltest du dir aber ein PHP-Einsteigertutorial anschauen.

Hallo,
ich hab das mit meinem bescheidenen Wissen mal versucht und hatte tatsächlich ein wenig Erfolg :slight_smile: Eines jedoch bekomm ich nicht gebacken: Wenn ein Bearbeiter oder ein Status in mehreren Datensätzen gleich ist, werden ALLE geändert, wenn ich einen ändere. Auch bekomme ich die neuen Werte erst dann angezeigt, wenn ich die Seite neu lade bzw. das Skript nochmals laufen lasse? Ich füge das aktuelle Skript mal mit hier ein, vielleicht kann ja jemand kurz drüber kucken.
Danke schonmal im Voraus und schönes WE;-)

<?php $con = mysql_connect("Datenbankserver","Benutzer","Passwort"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("Datenbankname", $con); $sql = "SELECT * FROM aufgaben"; $db_erg = mysql_query($sql); if (! $db_erg) { die('Ungültige Abfrage: ' . mysql_error()); } function anzeigen($db_erg) { # nur Anzeige $bearbeiter_list = array('b1','b2','b3','b4','b5'); $status_list = array('offen','in Bearbeitung','erledigt'); while ($zeile = mysql_fetch_array($db_erg, MYSQL_ASSOC)) { echo "Thema: " . $zeile['topic'] . "
"; echo ''; # Bearbeitungsliste echo 'Verantwortlich: '; foreach($bearbeiter_list as $bearbeiter) { echo '' . $bearbeiter . ''; } echo '
'; # Statusliste echo 'Status: '; foreach($status_list as $status) { echo '' . $status . ''; } echo '
'; echo "Bemerkung: " . $zeile['bemerkung'] . "
"; echo ''; echo ''; echo ''; } } if(empty($_REQUEST['bearbeiter_original'])) { anzeigen($db_erg); } else { # nur Update $update = mysql_query("UPDATE aufgaben Set bearbeiter = '" . $_REQUEST['option_bearbeiter'] . "' WHERE bearbeiter = '" . $_REQUEST['bearbeiter_original'] . "'"); $update = mysql_query("UPDATE aufgaben Set status = '" . $_REQUEST['option_status'] . "' WHERE bearbeiter = '" . $_REQUEST['bearbeiter_original'] . "'"); anzeigen($db_erg); } mysql_free_result($db_erg); ?>

Für den Anfang sieht das doch schonmal gut aus.

Was das Problem beim Aktualisieren angeht: erzeuge mal in der Datenbanktablle eine Spalte die Integer ist und die auto_increment-Eigenschaft erhält. Dadurch erhältst Du für jeden Datensatz in der Tabelle eine eineindeutige ID. Und genau diese solltest Du verwenden, wenn Du über das Formular einen Datensatz bearbeiten willst.

Wenn Du die bearbeiteten Datensätze sofort sehen willst, müsstest Du die Speicherung vor dem Formular ausführen.

Und verwende bitte Code-Tags im Forum, wenn Du Quellcode zeigst.

Hallo,
wie erzeuge ich diese Spalte korrekt? Das klappt nict bei mir :frowning:

Im PHPMyAdmin einfach eine Spalte erzeugen, als Spaltentyp Integer auswählen und das Häkchen vor auto_increment setzen.

Hmm… und genau ein solches Häkchen gibt es da nicht, ich hab’s ja so versucht. Deshalb dachte ich, es über ein SQL-Statement einzugeben. Dieses krieg ich aber von der Syntax her nicht gebacken :frowning:

Kommt drauf an welche phpmyadmin-Version Du mit welchem Style hast. Die Option muss da sein. Beispiele:
http://www.codespanish.com/wp-content/uploads/2008/09/phpmyadmin-properties-autoincrement.jpg
http://www.php-kurs.com/bilder/phpmyadmin-tabellenfelder-auto-increment-007.png
http://simbalala.com/scratch/table_edit.png

Wie man das Merkmal per MySQL direkt setzt, steht im Manual:
MySQL :: MySQL 5.0 Reference Manual :: 13.1.4 ALTER TABLE Syntax

Ein Beispiel:
sql - Mysql - Alter a column to be AUTO_INCREMENT - Stack Overflow

Supi! Jetzt hat jeder Datensatz eine ID, ganz so, wie Du’s vorausgesagt hast :slight_smile: Aber lass mich doch nochmal dumm fragen (nicht böse sein): wo und wie oder anstelle von was benutze ich diese ID’s in meinem Skript?

Statt „bearbeiter_original“ fügst Du die ID des Datensatzes ein. Beim Speichern nutzt Du dann diese ID um über das SQL-Statement genau diesen einen Datensatz zu Updaten.

Hallo,

ich möchte nach Betätigung des Delete-Buttons eine simple Sicherheitsabfrage machen. Unter html funktioniert das hier einwandfrei:

Wenn ich es aber so in mein php-Skript einbaue:

echo ‚‘;

…passiert das hier

Parse error: syntax error, unexpected T_STRING, expecting ‚,‘ or ‚;‘ in /mnt/webb/e2/68/5238468/htdocs/seiten/maefuhu.de/mysql_test2.php on line 78

Kann sich hier jemand einen Reim darauf machen?

Ciao und vielen Dank im Voraus
Thomas

Du musst die Hochkommas um das Ey herum maskieren, also so:[PHP]echo ‚‘;[/PHP]Hattest Du hier bei der Eingabe die php-Code-Tags genutzt, dann hättest Du das vermutlich schon anhand der unterschiedlichen Farben selber gesehen.

Uhhh danke, funktioniert!
Er löscht den Datensatz zwar auf jeden Fall, egal ob ich OK oder Abbrechen wähle, aber das ist dann wohl ein anderes Problem :slight_smile:

Da hast Du recht, das ist wirklich ein anderes Problem. Das einzige was Du bis jetzt erreicht hast ist eine Nachricht, die durch JavaScript ausgegeben wird und hat keinerlei Auswirkung auf Dein PHP-Script. Dazu brauchst Du dann Ajax, aber davon hab ich gar keinen Plan.

Gruß thuemmy

:slight_smile:
Nee, Ajax ist da gar net nötig, einfach so:
…onclick=„return confirm('Ey?');“…
Funktioniert bestens!