Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP <-> MySQL - Parameterproblem

Empfohlene Antworten

Veröffentlicht

Hi!

Mein Problem:

Ich lasse eine Tabelle meiner MySQL-Datenbank kommplett

ausgeben. Jeder Eintrag erhält ein Textfeld. Also hat man

dann eine Tabelle aus Textfeldern.

An das Ende der Tabelle wird noch eine leere Zeile Textfelder

angefügt, um einen neuen Eintrag zu erzeugen.

In der Tabelle soll man jetzt jeden Eintrag ändern und in

der letzten Zeile einen Neuen hinzufügen können.

Die Datei zur Ausgabe der Tabelle ist Intern.php.

Die zum speichern der Änderungen ist Intern_speichern.php.

Wie kann ich nun in der Datei Intern_speichern.php

jede Zeile der Tabelle wieder in die Tabelle der Datenbank

schreiben?

Ich hab keinen Plan, wie ich auf die einzelnen Textfelder der

Tabelle zugreifen soll. Beim ausgeben hab ich sie zwar

nummeriert: ip1, rechnername1, ip2, rechnername2...

Aber man weiß ja nicht, wie viele Zeilen es gibt.

Hat das irgendjemand verstanden? ;):(

Wie komme ich da weiter?

MfG

backdraft

Kannste vielleicht mal einen Codeausschnitt posten ?

Gibsts du alles in einem Formular aus oder wie ? Dann kannste dach alles auch wieder anhand dieser Daten in die DB schreiben, oder ?

Original geschrieben von backdraft

Ich lasse eine Tabelle meiner MySQL-Datenbank kommplett

ausgeben. Jeder Eintrag erhält ein Textfeld. Also hat man

dann eine Tabelle aus Textfeldern.

An das Ende der Tabelle wird noch eine leere Zeile Textfelder

angefügt, um einen neuen Eintrag zu erzeugen.

In der Tabelle soll man jetzt jeden Eintrag ändern und in

der letzten Zeile einen Neuen hinzufügen können.

Die Datei zur Ausgabe der Tabelle ist Intern.php.

Die zum speichern der Änderungen ist Intern_speichern.php.

Wie kann ich nun in der Datei Intern_speichern.php

jede Zeile der Tabelle wieder in die Tabelle der Datenbank

schreiben?

Ich hab keinen Plan, wie ich auf die einzelnen Textfelder der

Tabelle zugreifen soll. Beim ausgeben hab ich sie zwar

nummeriert: ip1, rechnername1, ip2, rechnername2...

Aber man weiß ja nicht, wie viele Zeilen es gibt.

Quick & Dirty Vorschlag:

Geb jedem Feld der DB ne eindeutige ID, in der intern.php nennst Du dann die Felder <input type="text" name="irgendwas$id"> etc.

Dann in der intern_speichern.php lässt Du ne Schleife laufen die für jede ID einen INSERT in die Datenbank macht. Das ganze am besten mit POST übergeben, damit auch alles ankommt (weiß ja nicht wieviel das sein soll).

Verstanden wie ich das meine?

So hab ich mir das ja auch gedacht. Ich habe ja alle

Felder mit Nummern versehen (ip1, ip2, ip3...).

Nur wie soll das beim Insert funktionieren?

Ich weiß ja nicht, wie viele Zeilen ich jetzt wieder

in die Datenbank schreiben muss. Also muss ich

das in einer Schleife machen und mit dem Schleifen-

zähler das jeweilige Feld ansprechen (z.B.: $ip.$zaehler).

Das funktioniert aber ja nicht! Dann steht in der Daten-

bank logischerweise $ip3, aber nicht der Wert, den das

Textfeld ip3 hatte!

Das ist ja eben genau die Stelle, wo ich hänge. :(

also dafür gibts im php $$ , solltest dir mal anschauen.

zB. in deinem Formular hast du die Variablen ip1 ip2 ip3 ip4. Dann kannst du machen


for ($i=1;$i<=4;$i++)

   {

         $schaumermal = "ip".$i;       

         echo "Die Variable ip".$i." = ".$$schaumermal;

   }

sollte dir weiterhelfen.

Genau deshalb brauchst Du noch ne ID, damit Du die einzelnen Datensätze eindeutig identifizieren kannst.

Und wie mache ich das?

Original geschrieben von backdraft

das in einer Schleife machen und mit dem Schleifen-

zähler das jeweilige Feld ansprechen (z.B.: $ip.$zaehler).

Das funktioniert aber ja nicht! Dann steht in der Daten-

bank logischerweise $ip3, aber nicht der Wert, den das

Textfeld ip3 hatte!

also wie ich schon sagte

anstatt $neu = $ip.$zaehler und dann $neu reinschreiben wie du es beschrieben hast, muss du $$neu reinschreiben in deinem Query, denn $$neu ist dasselbe wie $ip3 wenn $zaehler3 ist.

Probiere es einfach mal aus, wenn man es sieht versteht man es.

Also ich hab das jetzt so:

(funktionieren tuts nicht)

$aktuelle_ip = "\$ip".$i;
$aktueller_rechnername = "\$rechnername".$i;
$aktueller_standort = "\$standort".$i;
mysql_query("INSERT INTO interne_ips (ip, rechnername, standort) VALUES ('$$aktuelle_ip', '$$aktueller_rechnername', '$$aktueller_standort')");[/PHP]

Ich glaube ich bin heute ein wenig schwer von Begriff... ;)

das war schon knapp, aber du schreibst


$aktuelle_ip = "$ip".$ip;
[/php]

da ist ein $ zuviel in dem String, dass muss heissen

[php]
$aktuelle_ip = "ip".$ip;

 $aktuelle_ip = "ip".$i;

So hab ich das jetzt. Immer noch keine Veränderung....

:(

Ich könnte heulen...

heisst die Variable die zurückkommt auch ip1 ? als ip$i ?

Jo. Die heißen ganz sicher ip1, ip2, ip3....

Ich mache jetzt gleich Feierabend. Heute kriege

ich da eh nix produktives mehr zustande...

mach mal ein echo $$aktuelle_ip

was er da auswirft.

Hat sich erledigt!

Ich habs jetzt anders gemacht.

Aber vielen Dank für die Hilfe! :)

backdraft

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.