[Apache, phpmyadmin, html, PHP, ...] Datenbank mit webbasiertem Zugriff erstellen

  • Ersteller Ersteller boss3D
  • Erstellt am Erstellt am
@ Tessa
Dein Code hat mind. einen Syntaxfehler in Zeile 63, den ich um's Verrecken nicht anfinde. Irgendein " gehört durch ein , oder ; ersetzt, zumindest laut Fehlermeldung.
 
PHP:
echo "<tr><td><select name='taetigkeit_".$nr."'>";
// Das ist bereits geänderter Code ersetze mal Zeile 63 in der Hoffnung das ich richtig gezählt habe^^

könnte es diese Zeile gewesen sein? Wie ich sagte der Code ist weder getestet noch stimmen die SQL Abfragen mit deiner DB überein fürchte ich.

Das größte Problem ist für mich grade Zeile 63 zu identifizieren vielleicht kannst du mir die Zeile einfach mal komplett posten?.
 
Zuletzt bearbeitet:
Die Zeile:
PHP:
echo '<option value="'.$taetigkeit_".$nr."['taetigkeit'].'">'.$taetigkeit_".$nr."['taetigkeit'].'</option>';
PS: Notepad++ wäre da sehr hilfreich bei den Zeilennummern.

Es waren übrigens auch sonst zig Syntaxfehler drinnen, aber ich denke/hoffe, alle anderen haben ich erwischt. Werden wir wissen, wenn der hier noch weg ist.

[EDIT]
Die Fehlermeldung ist ja auch völlig wirr. Ich kann ja nicht mitten in eine option-Zeile ein Komma oder einen Strichpunkt reingeben?!
 
wie gesagt, mit ' und " muss man aufpassen ^^ nutzt man " und will im string auch ein " schreiben, muss man es escapen. bsp:
PHP:
echo 'anneli sagte "hallo" zu mir'; // will man " verwenden, ' bei echo nutzen
echo "Rene's neues Auto war toll"; // mit ' eben umgekehrt
echo "Beim Anblick von Rene's Auto dachte ich mir "Tolle Felgen""; // dat wird dann nix, da bei Tolle Felgen der string beendet wurde und er verlangt ein ; bspw
echo "Beim Anblick von Rene's Auto dachte ich mir \"Tolle Felgen\""; // daher: escapen ( \ davorschreiben, wie bei \n für newline...)
 
Das wäre es wohl, aber ich habe hier momentan im wahrsten Sinne des Wortes nur Editor und Word2012 zur Verfügung.

PHP:
echo "<option value='".$taetigkeit_.$nr."[\'taetigkeit\']'>".$taetigkeit_.$nr."[\'taetigkeit\']</option>";

Hoffe das passt jetzt. Du musst aber beachten das der Fehler vermutlich noch in anderen Zeilen vorliegt.
 
Zuletzt bearbeitet:
Na, dass ist ja wieder ein Sch*** ...
PHP:
echo "<option value="\'.$product_".$nr."[\'produkt\'].\'">'.$product[\'produkt\'].\'</option>";
Code:
[B]Parse error[/B]:  syntax error, unexpected ''.$product_".$nr."[\'produkt\'' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';'
BTW: Wieso steht taetigkeit_ bei dir eigentlich nur so da, während $produkt_ mit $ eine Variable ist?

[EDIT]
Habe jetzt alle Fehler draußen, 7 Zeilen waren es. Aber jetzt blöde Frage: Was mache ich jetzt eigentlich mit dem Code? Ich habe den in meine dynamictable.php eingefügt, aber die Buttons machen gar nichts vernünftiges.

Und auf der Webseite schaut's auch nicht so toll aus:

Unbenannt.PNG

Wenn ich im html die <table> lösche, ist aber gleich gar nichts mehr da. Weder das grüne, noch das weiße. Und was ist mit dem Javascript? Drinnen lassen oder auch raus? Ich blicke bei dem ganzen Chaos gar nicht mehr durch wie die ganzen Codes zusammenhängen ...
----------------

Eigentlich hätte ja meine Lsg schon ganz das richtige gemacht, wenn ich es nur noch geschafft hätte, dass der neue-Zeile-Button mehr als einmal benutzbar ist. Aber deinen Code jetzt wieder in meinen integrieren ... da kommt echt nur noch Pfusch raus dabei.

Kann mir nicht einfach wer verraten, ob's für Buttons auf html Seiten sowas wie ein Reset gibt, sodass der seine Funktion danach wieder ausführen kann? Wäre mir immer noch das liebste, wenn ich an meinem Code weiterbasteln könnte. Den verstehe ich wenigstens.
 
Zuletzt bearbeitet:
Siehe editierten Code oben ;) Damit solltest du ja dann auch in der Lage sein den Code bei product entsprechend anzupassen. Du musst ja nur abschreiben. Ich nehme an du hast den Code kopiert während ich am editieren war ;)
 
ich finds irgendwie spannender, wie du einen button hinbekommst, der nur einmal funzt xD kannste deine php (bzw du hast ja mehrere) mal zippen? ich müsst ja eigentlich lernen, aber irgendwie intressierts mich doch ^^
 
Ich nehme an das er die neue Zeile nirgendwo speichert. Dann kannst du den Button so oft klicken wie du willst ;) und im Ergebnis wirst du immer genau eine neue Zeile sehen nämlich die deren $_POST[''] Werte übertragen wurden. Weil ja die jetzt "alte" neue Zeile im neu aufgerufenen Script nicht wieder übergeben wird und nur eine genau eine neue erstellt wurde ;)

Ergo sieht es so aus als würde der Button nicht funktionieren. Er funktioniert aber wie geplant, nur das das Ergebnis hiervon die gleiche Seite ist wie die Seite zuvor.
 
@ DarkMo
Anhang anzeigen db.7z

@ TessaKavanagh
Wie soll ich denn die ganze Zeile speichern? Ein $_POST[''] habe ich im gesamten Code gar nicht drinnen. In ne Variable kann man die ganze Zeile vermutlich nicht speichern?!
 
Zuletzt bearbeitet:
Hallo!
Für mich ist das absolutes Neuland. Ich habe mich nie wirklich mit Datenbanken, html oder PHP beschäftigt und habe auch keinerlei Programmier-Erfahrungen damit.

Das ist ja wohl so nicht korrekt. Neuland ist vielleicht das Internet für die deutsche Kanzlerin, aber wenn du das DBA2 oder das WBT2 Skriptum aufschlagen würdest könntest du die Aufgabe spielend lösen.

Grüße,
wbtprof
 
Mein Studium tangiert Datenbanken und Webseitenerstellung nur im Entferntesten. [...] In meinem restlichen Studium werde ich damit auch sicher nichts mehr zu tun haben. Im Berufspraktikum auch nicht und im Arbeitsleben später kann ich es mir auch kaum vorstellen.
Wenn die ganze Thematik praktisch gar nichts mit deinem Studium und deiner beruflichen Zukunft zu tun hat, frage ich mich, warum man dich überhaupt mit dieser Aufgabe betraut hat. Man sagt der Putzfrau ja schließlich auch nicht, sie soll mal eben die Buchhaltung machen. Oder rechnet die Firma etwa gar nicht mit einem brauchbaren Ergebnis?

Du hättest dir die Themen DB und Webseitenerstellung übrigens weitgehend vom Hals halten könne, wenn du auf die Vorschläge eingegangen wärst und nicht stur diesen zum scheitern verurteilten PHP-Weg eingeschlagen hättest. Von Java verstehst du ja angeblich was.

Und nein, es ist nicht Wirtschaftsinformatik.
Sondern? Malen nach Zahlen?
 
So ich habe mehrere Punkte:

Punkt 4 kommt zuerst weil es mich jetzt mal brennend Interessiert :D

4. @ WBTPROF

Du/Sie bist/sind nicht zufällig ein Dozent unseres Themenerstellers oder? und er belegt nicht zufällig auch genau die für das Projekt "nötigen" Kurse bei dir/Ihnen? Das ganze ist nicht rein zufällig auch noch eine Seminararbeit oder der gleichen? Wobei PHP eine Vorgabe der Aufgabenstellung ist? xD

1. Mein o.g. Code ist eigenständig, das heißt er sollte in keiner Weise in deinen Code integriert werden sondern als eigenständiges PHP Dokument "funktionieren". Ich schreibe bewusst "funktionieren" weil selbst wenn du den Code eigenständig ausführen würdest, müssten in der Datenbank immer noch die richtigen Tabellen mit den im Code Verwendeten Tabellennamen angelegt werden (sonst kann es nicht funktionieren).

Wie gesagt versuch mal ohne Testen und ohne Syntax Highliting im Editor einen fehlerfreien Code zu schreiben ;) Denn der blöde Word Standart Editor ist nicht grade eine Optimale Programierumgebung.

2. Ich versuche mal das Problem mit deinem "Button" auf eine ganz Simple Grundproblematik herunter zu brechen:

PHP:
/*
Zu Beginn deines Scripts steht in deinem Quelltext <div="content">Ich bin ein Platzhalter</div>

Der Benutzer bekommt also "Ich bin ein Platzhalter" im Browser ausgegeben. 
*/

/*Dein JavaScript Code ist ein asynchroner Aufruf (AJAX) die Website wird also ohne neu laden verändert.
Deine Programmlogik besagt jetzt wenn du den Button klickst soll in der bestehenden angezeigten  Webseite im Bereich <div id="content"> Ich bin ein Platzhalter </div> der Gesamte Inhalt von <div id="content"></div> durch <tr><td>Hier steht die Tabellenzeile</td></tr> ersetzt werden.
Der Quellcode Lautet danach */
<div id="content"><tr><td>Hier steht die Tabellenzeile</td></tr></div>

/* Der Benutzer sieht entsprechend "Hier steht die Tabellenzeile" im Browser 

Wenn jetzt der Button zum zweiten mal angeklickt wird, dann wird in der bestehenden Website der Code wieder der gesamte Inhalt von <div id="content"><div> durch das Ergebnis der Erneuten AJAX Abfrage ersetzt.

aus <div id="content"><tr><td>Hier steht die Tabellenzeile</td></tr></div>
wird also <div id="content"><tr><td>Hier steht die Tabellenzeile</td></tr></div>

Das Ergebnis im Browser sieht für den Nutzer also genau so aus wie vorher. Der Button hat aber auch beim zweiten mal funktioniert. Die Logik im Code ist jedoch nicht dazu geeignet das gewünschte Ergebnis nämlich:
<div id="content"><tr><td>Hier steht die Tabellenzeile</td></tr><tr><td>Hier steht noch eine Tabellenzeile</td></tr></div>

zu erreichen.
Du müsstest den Code also entsprechend Anpassen das für den Fall das <div id="content"> bereits einen Inhalt hat dieser auch bestehen bleibt. z.B. "Nehme Inhalt aus <div id='Content>' ->speichere in Variable 'ausgabe' hänge das Ergebnis des http requests hinten an "ausgabe" an -> ersetze den Inhalt von<div id='content'></div> durch 'ausgabe' " 

*/

3. Das Problem ist m.E. das du versuchst Code 1 zu 1 zu kopieren ohne das du wirklich verstehst was dieser Code eigentlich macht/machen soll. Um sich in PHP, MYSQL, HTML einzuarbeiten muss man auch nicht zwangsweise ein Buch kaufen, es gibt auch im Internet genug Tutorials die einem die Grundlagen der Syntax und Logik beibringen können. Die Informationen sind zwar häufig veraltet, im Ergebnis würde das alles aber für dein Projekt reichen. Im Grundprinzip ist nämlich auch dein Projekt nicht mehr als eine Shoutbox, halt nur mit mehreren Eingabefeldern.

Vermutlich könntest du dich 14 Arbeitstage in das Thema einlesen (die du nicht brauchen würdest) und das ganze dann am 15 Tag vormittags programmieren.
 
Du/Sie bist/sind nicht zufällig ein Dozent unseres Themenerstellers oder? und er belegt nicht zufällig auch genau die für das Projekt "nötigen" Kurse bei dir/Ihnen? Das ganze ist nicht rein zufällig auch noch eine Seminararbeit oder der gleichen? Wobei PHP eine Vorgabe der Aufgabenstellung ist?
K. A. welcher von diesen Leuten sich hinter dem Nick verbirgt, aber laut seiner Aussage soll er wohl mein Prof gewesen sein. Wie dem auch sei, das Fach ist bei mir lange genug her um nicht mehr alles taufrisch im Kopf haben zu müssen und ich habe mich seitdem auch nie wieder mit dieser Materie beschäftigen müssen. Außerdem ist der werte Herr "damals" auch noch wochen-/monate(?)lang aus gesundheitlichen Gründen ausgefallen sodass wir eh kaum zu was gekommen sind.

Jedenfalls gehe ich hier mit niemandem mein Studium diskutieren. Es handelt sich definitiv NICHT um irgendeine Arbeit, die ich fürs Studium oder ein damit verbundenes Praktikum machen müsste, aber das habe ich bereits mindestens einmal geschrieben. Warum die in dieser Firma mich für die Aufgabe ausgewählt haben weiß der Kuckuck. Sind hier alles ITler, aber keiner mit mehr Ahnung in Datenbankerstellung als ich. So gesehen hätte es jeden treffen können, ich bin's geworden. Also versuche ich jetzt einfach, die Aufgabe nach bestem Wissen und Gewissen zu erledigen. Wer mir dabei konstruktiv helfen will, ist herzlich willkommen.
---------------

Deinen Code schaue ich mir jetzt gleich mal an, danke. :)
 
Wie gesagt du benötigst für den Code mindestens die Tabelle "zeiten" mit den Spalten id / product / taetigkeit /beschreibung

und irgendwo im Code steht mal "produkt" habe ich grade gesehen das müsste natürlich auch "product" heißen.
 
^^ Nein, ich meine den Beispielcode in deinem vorigen Posting. Ich will das jetzt mal mit der (mehrfachen) Zeilenerstellung hinkriegen ... ;)
 
Code:
<script type="text/javascript">
    var request = false;

    function setRequest() {
        request = new XMLHttpRequest();
        
        if (!request) {
            alert("Kann keine XMLHTTP-Instanz erzeugen");
            return false;
        } else {
            var url = "dynamictable.php";
            request.open('post', url, true);
            request.send(null);
            request.onreadystatechange = interpretRequest;
        }
    }
    
    function interpretRequest() {
        var ContNeu= request.responseText;
        var ContAlt = document.getElementByID('content').innerHTML;
        var content = ContAlt + ContNeu;
        document.getElementById('content').innerHTML = content;
    }
</script>

Ist jetzt geraten^^
 
Zuletzt bearbeitet:
"new" kannst du, glaube ich, nicht als Variablenname nehmen, weil das ein Java(script) Schlüsselwort ist. Stattdessen z. B. "newContent". Jedenfalls passiert jetzt beim Klicken des Buttons nichts mehr. Ich weiß aber noch nicht, an welcher Zeile es scheitert.

[EDIT]
Das ist ja eh das gleich wieder, nur mit anderen Variablennamen?! Geht wieder nicht. Die erste Zeile scheint noch zu funktionieren, zumindest kann ich mir da den gesamten Tabellen-Code mit alert(request.responseText) anzeigen lassen. Aber danach tut sich nichts mehr, auch anzeigen nicht möglich.
 
Zuletzt bearbeitet:
Code oben ist Editiert probier es mal jetzt. Habe es mit folgendem Grundprinzip getestet.

Code:
<html><head><title>Test</title>
<script type="text/javascript">

var Neu = "neuer <b>fetter<\/b> Text";
function Aendern () {
var old = document.all.meinAbsatz.innerHTML;
var save = old + Neu;
document.all.meinAbsatz.innerHTML = save;

}
</script>
</head><body>
<p id="meinAbsatz">Text</p>
<a href="javascript:Aendern()">Anderer Text</a>
</body></html>
 
Ich habe bereits den editierten Code gemeint. Wenn ich's jetzt noch richtig in Erinnerung habe, war der aber eh vorher auch schon gleich, nur mit anderen Variablennamen?! Bist du dir eigentlich bei dem old + Neu sicher, dass man das einfach so addieren kann?
 
Zurück