Beiträge von MarkusBEO

    Verstehe, dann bist Du ja schon weiter als ich dachte :)

    Das müsste sich lösen lassen, indem Du eine Zustandsvariable als Sesssion-Variable führst: Beim ersten Abschicken des Formulars ist diese nicht gesetzt und Du fügst den Datensatz in die Datenbank ein. Sobald das erfolgreich war, setzt Du diese Variable und wenn dann das Formular noch mal abgeschickt wird, machst Du ein Update.

    Danke für die Antwort, aber ich komme als Anfänger nicht weiter, vielleicht habe ich ein Brett vor dem Kopf - folgende Ueberlegungen:

    1. Ich kann auf Zeile 37 (unterhalb der ersten Speicherung unter einer neuen ID) eine Sessionsvariable setzen: $_SESSION['anzahl_schleifen'] = 1;

    2. Bei der nächsten Schleife sollte Zeile 31 bis 34 übersprungen werden.
    3. Damit diese 4 Zeilen übersprungen werden können, muss ich eine if- (+ evtl. else) Abfrage machen - aber unter Einbezug der Sessionsvariable - die das Programm bei der ersten Schleife bei Zeile 31 noch nicht kennt, weil sie erst in Zeile 37 festgelegt wird.

    Allg. scheint mir ich habe das gleiche Problem, ob die Variable eine Sessionsvariable ist oder nicht.

    Ich habe alles empfohlene gemacht und weiteres ausprobiert - es bleibt leider bei der Fehlermeldung:
    Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/httpd/vhosts/ms.ch/m-schmid.ch/dv/admin/settings_admin_new.php on line 8 No ID specified!

    Ich erlaube mir mal den ganzen Code von settings_admin_new.php reinzustellen:


    Du solltest dich dringend mit etwas Grundlegendem beschäftigen, nämlich:

    Richtig debuggen

    Vielen Dank für alles (SELECT * .... verwende ich nicht mehr und die Debugging-Tipps habe ich mir kopiert und angewandt).


    Ich erhalte die Fehlermeldung:

    Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/httpd/vhosts/ms.ch/m-schmid.ch/dv/admin/settings_admin_new.php on line 8
    No ID specified!

    Mein Code mit der DB-Tabelle admin ist identisch analog dem anderen Code mit der DB-Tabelle accounts (welcher funktioniert).Heisst, ich habe im Code nur den Tabellennamen und die Namen der Tabellenfelder angepasst.


    Erlaube mir nochmals, die Verständnisfrage zu stellen:

    Ist meine folgende Ueberlegung richtig?:

    Wie ich bereits geschrieben habe - zuerst kommt die if-isset-Abfrage. Diese wird doch zuerst ausgewertet, d.h. ob der Code in Klammer ausgeführt wird oder nicht. Heisst doch, wenn die isset-Abfrage nicht zutrifft, wird der Code in der Klammer (wo auch der Name der Tabelle steht) ignoriert?

    Mir scheint, ich habe das Problem seit es 2 Tabellen in der DB gibt - oder anders gefragt:
    Bei: if (isset($_GET['id'])) {...... Welche id wird abgefragt und warum? (von Tabelle accounts oder admin?).

    Ja, ich sage schon welche Tabelle gemeint ist, aber warum nimmt er mir die Tabelle nicht und meldet die id sei nicht spezifiziert?


    Ist meine folgende Ueberlegung richtig?:
    Wie ich bereits geschrieben habe - zuerst kommt die if-isset-Abfrage. Diese wird doch zuerst ausgewertet, d.h. ob der Code in Klammer ausgeführt wird oder nicht. Heisst doch, wenn die isset-Abfrage nicht zutrifft, wird der Code in der Klammer (wo auch der Name der Tabelle steht) ignoriert.

    Guten Tag (ich bin es schon wieder)

    Ich habe mir als Anfänger ein Musterprojekt aufgebaut, bestehend aus Login und Adressverwaltung (mit der Tabelle accounts in der DB).
    Alles funktioniert wunderbar - bis ich angefangen habe in der DB eine zweite Tabelle admin einzurichten, worauf ich im Moment aber nicht zugreifen kann.

    Deshalb mal die Fragen zu folgendem Code (mit der Tabelle accounts funktioniert es, wenn ich die Tabelle auf den Namen admin ändere, funktioniert es nicht):

    Am Anfang steht die isset-Abfrage, welche entscheidet ob der Code in {...} ausgeführt wird, aber wie weiss php, welche id gemeint ist, da es nun ja in der DB zwei Tabellen gibt?
    Kann/muss das näher angegeben werden? Wenn ja, wie?


    Code
    1. if (isset($_GET['id'])) {
    2. // Get the account from the database
    3. $stmt = $pdo->prepare('SELECT * FROM accounts WHERE id = ?');
    4. $stmt->execute([ $_GET['id'] ]);
    5. $account = $stmt->fetch(PDO::FETCH_ASSOC);
    6.     // weiterer Code
    7.     }

    Danke schon mal für die Antwort. Bei Firmen dachte ich an die versch. Eigenschaften - wie unterscheide ich Einzelfirmen, AG, GmbH... und je nach Branchen?

    Vor allem stellt sich mir die Frage: Darf man mischen und kobinieren? Das heisst zum Beispiel: Firmen sind Klassen, Eigenschaften und Objekte?

    Danke, habe ich vor lauter studieren wie ich die id richtig definiere, vergessen das INSERT einzusetzen.


    Nun, es ist mir gelungen, einen Datensatz zu klonen (nur einmal), aber jetzt kommt die Fehlermeldung sinngemäss: Doppelter Eintrag.


    Wahrscheinlich muss ich in der zweiten Zeile unten die Variable $id anders definieren, aber wie? Nur wegnehmen, ergibt auch einen Fehler.


    Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '566' for key 'PRIMARY' in /home/httpd/vhosts/ms.ch/m-schmid.ch/dv/adr/adr_kop.php:20
    Stack trace:
    #0 /home/httpd/vhosts/ms.ch/m-schmid.ch/dv/adr/adr_kop.php(20): PDOStatement->execute(Array)
    #1 {main} thrown in /home/httpd/vhosts/ms.ch/m-schmid.ch/dv/adr/adr_kop.php on line 20

    Code
    1. $stmt = $pdo->prepare('INSERT INTO contacts VALUES (?,?,?,?,?,?)');
    2. $stmt->execute([$id, $name, $email, $phone, $title, $created]);

    Habe bei meinem Code etwa eine Stunde geübt (mit id weglassen), kommt nicht zum Ziel.
    Somit erlaube ich mir den ganzen Code reinzustellen.

    Bestehender Code: Mutiert einen Eintrag - was genau muss ich ändern, damit ich den mutierten Eintrag als neuen Datensatz speichern kann?


    Guten Tag


    Langes Suchen hat mir nicht geholfen - ist aber auch ein seltenes Thema.
    Ich möchte einen bestehenden Datensatz auslesen, mutieren und (nicht wieder speichern wie beim Update), sondern kopieren, d.h. als neuen Datensatz speichern.

    Beim speichern von einem mutierten Datensatz lautet der Code: $stmt->execute([$id, $name, $email, $phone, $title, $created, $_GET['id']]);


    Will ich den kopierten Datensatz neu speichern, muss ich die id auf null und/oder auto increment setzen, aber wie mache ich das? (der erste oder zweite id-Ausdruck, oder beide?)?

    1. Was ist ein Div. mit einem Knopf?
    Damit das padding nur für dieses Div gilt, von <div> bis </div>:
    - Eine Klasse bilden, z.Bsp. der Name pad3
    - Dann div ergänzen: <div class="pad3"> bis </div>

    - Im style.css die Klasse definieren: .pad3 { c-o-d-e }


    2. nicht verstanden.


    3. die mobile Seite im style.css separat definieren. Mit der Angabe min-width oder max-width kann man die Grenze angeben, ab wann die Darstellung ändert.
    Beispiel:

    Code
    1. @media (min-width: 480px) {
    2. main { width: 89%;
    3. font-size: 12px;
    4. }
    5. }

    Eine gute Seite für CSS ist zum Beispiel: https://www.mediaevent.de/css/

    Danke für die Antwort. Nach meiner Auffassung gibt es nicht 2 Ergebnisse, weil:
    Entweder wird die if-Funktion ausgeführt (Zeile 60), oder es wird die else-Funktion ausgeführt (Zeile 74).


    Das Originalprogramm funktionierte mit diesem Code einwandfrei. Ich hab "nur" weitere Felder ergänzt oder umbenannt.
    Ursprüngliche Felder: 'id','username','email','phone',','created'

    Hallo zusammen,
    Wenn ich meine Website "Kontakte" anklicke, wird die Datei read.php aufgerufen.
    Problem: Die Seite wird geladen, aber ohne Daten (die Kontakte aus der DB). Es kommt auch keine Fehlermeldung.


    Vermutung, es könnte am Code Zeile 74 liegen, denn ich hatte vorher eine leere Seite mit der Fehlermeldung: Fatal error: Uncaught Error: Call to a member function fetchColumn() on bool in /home/httpd/vhosts/ms.ch/m-schmid.ch/dv/adr/read.php:74 Stack trace: #0 {main} thrown in /home/httpd/vhosts/ms.ch/m-schmid.ch/dv/adr/read.php on line 74


    Daraufhin habe ich auf Zeile 74 am Schluss folgenden Code auskommentiert: ->fetchColumn(); - das bewirkte das Laden der Seite ohne Fehlermeldung, aber ohne Daten.


    Code von read.php: http://phpfiddle.org/main/code/mvmf-g9c9

    Kann mir bitte jemand helfen das Problem einzugrenzen oder zu lösen?