backdraft Geschrieben 25. Februar 2002 Geschrieben 25. Februar 2002 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
JoelH Geschrieben 25. Februar 2002 Geschrieben 25. Februar 2002 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 ?
Valium Geschrieben 25. Februar 2002 Geschrieben 25. Februar 2002 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?
backdraft Geschrieben 26. Februar 2002 Autor Geschrieben 26. Februar 2002 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.
JoelH Geschrieben 26. Februar 2002 Geschrieben 26. Februar 2002 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.
Valium Geschrieben 26. Februar 2002 Geschrieben 26. Februar 2002 Genau deshalb brauchst Du noch ne ID, damit Du die einzelnen Datensätze eindeutig identifizieren kannst.
JoelH Geschrieben 26. Februar 2002 Geschrieben 26. Februar 2002 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.
backdraft Geschrieben 26. Februar 2002 Autor Geschrieben 26. Februar 2002 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...
JoelH Geschrieben 26. Februar 2002 Geschrieben 26. Februar 2002 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;
backdraft Geschrieben 26. Februar 2002 Autor Geschrieben 26. Februar 2002 $aktuelle_ip = "ip".$i; So hab ich das jetzt. Immer noch keine Veränderung.... Ich könnte heulen...
JoelH Geschrieben 26. Februar 2002 Geschrieben 26. Februar 2002 heisst die Variable die zurückkommt auch ip1 ? als ip$i ?
backdraft Geschrieben 26. Februar 2002 Autor Geschrieben 26. Februar 2002 Jo. Die heißen ganz sicher ip1, ip2, ip3.... Ich mache jetzt gleich Feierabend. Heute kriege ich da eh nix produktives mehr zustande...
JoelH Geschrieben 26. Februar 2002 Geschrieben 26. Februar 2002 mach mal ein echo $$aktuelle_ip was er da auswirft.
backdraft Geschrieben 28. Februar 2002 Autor Geschrieben 28. Februar 2002 Hat sich erledigt! Ich habs jetzt anders gemacht. Aber vielen Dank für die Hilfe! backdraft
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden