Beiträge von Stef

    Hey,

    dein Code ist überhaupt nicht leserlich. Und durch diese Entertaste nach der Function führst du diese auch garnicht aus. Desweiteren ist ein Fehler in der Insert-Query enthalten.

    Das A und O im Programmieren ist leserlicher Code. Dein Code wäre so für mich leserlich:

    PHP
    $dbv = new mysqli("localhost","root","","test");
    $stmt2 = $dbv->prepare("INSERT INTO test VALUE ( ?, ? ) ") ;
    $stmt2->bind_param("is", $_POST['idstadt'], $_POST['stadt']);
    $stmt2->execute();
    
    $stmt = $dbv->prepare("INSERT INTO anmeldung VALUES (?, ?, ?, ?, ?)");
    $stmt->bind_param("issss", $_POST['ID'], $_POST['vorname'], $_POST['nachname'], $_POST['idstadt'], date("d.m.Y H:i:s"));
    $stmt->execute();

    So wird auch die Funktion ausgeführt. Somit sind 2 Fehler behoben. Der letzte Fehler ist in der Insert-Query.

    Wenn du so den Code ausführst bekommst du doch eine Fehlermeldung ? Wenn nein schalte das Error Reporting an.

    Der Fehler lautet: Fatal error: Uncaught Error: Call to a member function bind_param() on boolean in Zeile ....

    Was sagt der Fehler aus?

    Die prepare Function gibt den boolean False zurück, weil die Query falsch ist. VALUE gibts nicht.


    Die richtige Insert-Query sieht so aus: INSERT INTO deineTabelle (feld1, feld2, feld3) VALUES (? , ? , ?);

    Grüße,

    Stef

    Hey,

    wie bereits erwähnt kannst du nicht gleichzeitig mehrere Tabellen füllen. Auser du benutzt Mysqli. Dort gibt es folgende Funktion: multi_query().

    Mit dieser kannst du multiple SQL-Codes ausführen.

    PDO unterstützt dies nicht.

    Eine Möglichkeit wäre eine Funktion zu erstellen welche dies unterstützt.

    Beispiel:

    Da ist hinter der jeweiligen Query die Insert Value.

    Zitat


    Das würde bedeuten, wenn ich 20 Tabellen hätte, dass ich 20 INSERTS machen muss ?

    Normalerweise ja.

    Zitat


    Was mir auch nicht klar ist, wird die ID im Sekundärschlüssel automatisch von Sql eingefügt oder muss man das über PHP programmieren, einerseits das der Primärschlüssel nicht doppelt vorkommt ? Hat das Feld in der Datenbank mit dem Sekundärschlüssel eine bestimmte Eigenschaft, Bezeichnung wo man mitgeben muss ? Wie müsste der Code aussehen ?

    In der normalen Tabelle wird das erste Feld mittels Auto_Increment immer hochgezählt. Dieses Feld besitzt dann die eindeutige Id. Nun musst du diese noch in die andere Tabelle bekommen. Um dies zu schaffen brauchst du nochmals ein Insert welches die Id mit einer Value in die 2 Tabelle einträgt.

    Davor musst du dann noch die eindeutige Id aus der anderen Tabelle fetchen. Denn es kann immer vorkommen, dass die Ids nicht übereinstimmen.

    Grüße,

    Stef

    Hey,

    du kannst in eine DB-Abfrage mehrere Tabellen mit Joins verbinden. So kannst du mehrere Tabellen abfragen und die UserID welche z.b in der Termintabelle steht mit der Usertabelle verknüpfen und den Namen der jeweiligen ID aus der DB fetchen.

    Grüße,

    Stef

    Hey,

    Wow. Vielen Dank für die sehr ausführliche Beschreibung und Erklärung sowie deiner Sichtweise zu dem Aufbau dieser Applikation.

    Daraus kann man sehr viel lernen und aufnehmen.

    Daran habe ich nicht mehr gedacht und alles in eine Klasse gepackt.

    Eigentlich ist die Klasse ja das Objekt. Nehmen wir z.b. ein Auto. Die Eigenschaften sind dann z.b. der Motortyp, Benzintyp, usw. Und die Methoden sind dann z.b. Aktionen wie Tanken, Fahren oder Auto putzen.

    Wenn Du Interesse hast, kann ich Dir gern mal eine kleine funktionierende Beispiel-Buchung auf so einer Basis aufbauen, dann kannst Du damit ja mal rumspielen. Wird allerdings erst am WE was, weil ich morgen für drei Tage beruflich unterwegs bin.

    Sehr gerne. Ich werde auch dann mal von meiner Seite es so erstellen. Dann kan man ja beides vergleichen. Aber das dauert bestimmt bis Sonntag.

    Grüße,

    Stef

    Hey,

    vielen Dank Arne Drews. Ich habe es jetzt so eingermaßen verstanden.

    Wenn man $this zurückgibt dann gibt man wenn man die Function ausführt die ganze Klasse zurück und somit kann man auf dieser die andere Function ausführen weil diese dort verfügbar ist. Wie ich das jedenfalls mit mehr als 2 Functionen machen soll weiß ich noch nicht. Werde es aber aufjedenfall austesten.

    Ich habe den Code nochmal komplett neu erstellt und möchte euch diesen jetzt zeigen:

    Grüße,

    Stef

    Hey,

    Vielen Dank für euer Feedback. Ich werde es mir heute bzw. die nächsten Tage dies genauer anschauen und diese Klasse dann optimieren und erweitern.

    Arne Drews :

    Wie meinst du : „Das kannst Du dann wenn die Methode Calculate() bspw. eine Referenz auf sich selbst zurückgibt“ ?

    Eine Referenz ist eine zusätzliche Variable welchen eine Kopie der anderen Variable ist. Und dies erstellt man dann wenn man & vor die Variable schreibt oder eben einer variable den gleichen Wert wie in der anderen Variable zuweist.

    Wie kann man es denn in OOP umsetzen?

    Ich suche dann dazu auch mal.

    Grüße Stef

    Hey zusammen,

    ich habe jetzt einen statischen Schiffsverleih programmiert und möchte nun eure Meinung zu meinem OOP-Code wissen. Kritik und Verbesserungsvorschläge sind gerne gesehen.

    Der Code:

    Grüße,

    Stef

    Hey,

    basti1012 & Arne Drews :

    ich finde, dass man trotzdem aus Sicherheit die Ausgabe maskieren soll. Es kann ja vorkommen, dass ein Hacker in die Datenbank kommt und schädlichen Code platziert. Nun wenn du die Ausgabe nicht maskierst wird diese schädliche Code ausgeführt.

    Die Gefahr besteht und da sichere ich dann lieber mehrmals meine Anwendung ab als das was passiert.

    Grüße,

    Stef

    Hey Bodaggnmo,

    es kann daran liegen, dass deine Seite zu groß ist. Obwohl. Eigentlich sollte es dann eingerückt werden und dadurch mehrere Seiten entstehen.

    Auch würde ich dir raten nicht die Function addslashes zu verwenden. Verwende die Function htmlspecialchars um die Ausgabe zu maskieren. Diese Funktion solltest du auf alle DB-Ausgaben bis auf IDs anwenden.

    Kannst du uns bitte mehr von deinem Code zeigen, damit wir es testen können ?

    Vielen Dank.

    Grüße,

    Stef

    Von Mr.Murphy :

    Hallo,

    ich habe auf meiner Homepage eine Karte, einen div mit background-image die Karte als Hintergrund, dann später weitere divs id city auf der Karte absoulute positioniert, so als Markup. Später dann den divs id city dem :hover effekt gegeben um beim mouseover den div id city_informationen anzuzeigen.

    Also div id city und in dem div id city_informationen.

    mit visibility:hidden versteckt und bei mousover :hover visible zum zeigen der Infobox zu der Stadt eingeblendet.

    Jetzt möchte ich aber das es bei klick auf den div id city der innere div id city_informationen erscheint, eben die Infobox zu der Stadt.

    Wie kann ich das am besten mit Javascript lösen?, muss ich komplett umstellen ? ich komme nicht weiter ...:pinch::pinch::pinch:

    Hey,

    du hast da die einfachen Anführungszeichen zum großen Teil vergessen. Bei .bookmark-new hauptsächlich. Du siehst ja auch, dass der Code ab Zeile 4 rötlich dargestellt wird. Dies kann ein Hinweis für ein Fehler sein.

    Versuche es mal so und gebe uns dann bitte Rückmeldung:

    Grüße,

    Stef