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 Zitieren
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 ? Zitieren
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? Zitieren
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. Zitieren
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. Zitieren
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. Zitieren
backdraft Geschrieben 26. Februar 2002 Autor Geschrieben 26. Februar 2002 Und wie mache ich das? Zitieren
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. Zitieren
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... Zitieren
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; Zitieren
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... Zitieren
JoelH Geschrieben 26. Februar 2002 Geschrieben 26. Februar 2002 heisst die Variable die zurückkommt auch ip1 ? als ip$i ? Zitieren
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... Zitieren
JoelH Geschrieben 26. Februar 2002 Geschrieben 26. Februar 2002 mach mal ein echo $$aktuelle_ip was er da auswirft. Zitieren
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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.