SELFPHP: Version 5.6.9 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



iOS DevCon 2013



Software Architecture Summit 2013


Deine Leidenschaft ist die Unterwasserfoto-grafie?


Dann ist Qozido genau das Richtige für Dich!

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler ist da!

www.qozido.de

 

CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 


Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 11.01.2006, 10:10:55
trojax trojax ist offline
Anfänger
 
Registriert seit: Jan 2006
Ort: oberfranken
Alter: 29
Beiträge: 24
trojax befindet sich auf einem aufstrebenden Ast
Nur ein Formular für ganze Tabelle

Moin,
ich ahbe folgendes Problem:
Ich habe angenommen 20 Datensätze in einer MySQL Datenbank stehen.
Diese bestehen aus den Feldern etid(primary key), ... und dann noch preis(double 15,2).
Ich möchte den Usern die Möglichkeit geben in einer per php erstellten Tabelle in der Alle Datensätze stehen den Preis so vieler Teile wie er will zu Ändern.
Allerdings packe ich das nur mit meinen Kenntnissen wenn ich jeden Datensatz in ein form einschließe, somit der User aber bei jeder Änderung einmal uf Ändern klicken müsste. Hier mal das Beispiel wies zwar funktioniert aber eben nicht so wie ich mir das vorstelle:
PHP-Code:
<?php
if (isset($_POST['aendern'])){  //wird ausgeführt wenn unten was geändert wurde
$sql2="UPDATE ersatzteile SET preis= $_POST['preisneu'] where etid= $_POST['etid']";
$drin mysql_query($sql2);}


$sql "SELECT etid, preis FROM ersatzteile";
$result mysql_query($sql)
echo 
"<table>
<tr><td>etid</td>
<td>Preis</td></tr>"
;

while (
$row mysql_fetch_row($result)){ // für jede Zeile wird ein neues form erstellt
echo "<form method='post' action =''>
<tr><td>$row[0]</td>
<td><input type='text' name='preisneu' value='$row[1]'</td>
<input type='hidden' name='etid' value='$row[0]'>
<td><input type='submit' value='aendern' name='aendern'></td>
</tr></form>"
;}
echo 
"</table>"
?>
Naja-und genauso will ichs eben nicht-sondern ohne immer ein neues form Element zu erstellen, und eben am Ende der Tabelle einen Button mit Ändern und dann wird alles per Update in die DB geschrieben. bloß wie mach isch das dann mit where bla is bal in der query?
Danke schonmal
__________________
Nietzsche: Gott sit tot
Gott: Nietzsche ist tot
Mit Zitat antworten
  #2  
Alt 11.01.2006, 10:57:31
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.039
vt1816 befindet sich auf einem aufstrebenden Ast
vt1816 eine Nachricht über Skype™ schicken
AW: Nur ein Formular für ganze Tabelle

Nutze nur ein Formular, ziehe dazu den FORM-Tag vor die while-Schleife. Das Update erfolgt anschliessend auch mit einer while-Schleife.

Aber bedenke die Dauer des Updates. Jemehr Datensätze in der Datei enthalten sind, desto länger dauert das Update und es könnte zum Abruch der Abarbeitung kommen (Laufzeit eines php-Scriptes).
Werden bei einem Update zwingend alle Datensätze geändert?

Persönlich würde ich eine andere Variante nutzen: Zeige alle Sätz an und mittels Link kann der Nutzer sich den Datensatz selber wählen den er ändern möchte (analog phpMyAdmin).
__________________
Gruss vt1816


Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (Skype, Mail, PN, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3  
Alt 11.01.2006, 13:09:59
trojax trojax ist offline
Anfänger
 
Registriert seit: Jan 2006
Ort: oberfranken
Alter: 29
Beiträge: 24
trojax befindet sich auf einem aufstrebenden Ast
AW: Nur ein Formular für ganze Tabelle

Hi,
also es sind ja nicht so viele Datensätze sagen wir mal unter 100-also echt wenig und es ist ja echt immer nur ein Wert der geändert wird-also geht das mit dem Form Tag vor und nach der Schleife schon.
Nur gibts da folgendes Problem(damit meine ich Unwissenheit meinerseits) denn:
bisher konnte ich den Update so schreiben, weil ja über das hidden Feld die etid-also mein primary key- mitgeliefert wurde und nur eine etid in der $_POST variable stand-ist ja auch nur ein form abgesendet worden. Wie mach ich das nun wenn ich sagen wir 20 Änderungen habe-ich muss ja meiner DB irgendwie mitteilen zu welchen Datensatz welche Änderung gehört-wäre klasse wenn ich da ein Beispiel bekommen könnte-muss ja nicht lang sein-nur damit ichs mir vorstellen kann.(im Endeffekt brauche ich also ein Beispiel für die Schleife mit der ich aus dem dann ziemlich großen $_POST array die einzelnen daten ziehen und updaten kann)
Danke Schonmal
Daniel
__________________
Nietzsche: Gott sit tot
Gott: Nietzsche ist tot
Mit Zitat antworten
  #4  
Alt 11.01.2006, 14:57:13
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
Marilu befindet sich auf einem aufstrebenden Ast
AW: Nur ein Formular für ganze Tabelle

Es gäbe noch eine Möglichkeit, mehrere Datensätze tabellenartig zu ändern. Dazu müsstest Du aber Frames und JavaScript einsetzen. Interessiert?
Mit Zitat antworten
  #5  
Alt 11.01.2006, 15:13:12
trojax trojax ist offline
Anfänger
 
Registriert seit: Jan 2006
Ort: oberfranken
Alter: 29
Beiträge: 24
trojax befindet sich auf einem aufstrebenden Ast
AW: Nur ein Formular für ganze Tabelle

Hi Marilu,
ich versuchs nochmal anders-vielleicht bekomm ichs ja hin-ansonsten gerne.
Ich poste nochmal wenn ich deinen Lösungsansatz brauche-allerdings will ich doch versuchen das ganze serverseitig abzuwickeln.
Danke auf jeden Fall-evtl komm ich auf dich zurück.
Lg Daniel
__________________
Nietzsche: Gott sit tot
Gott: Nietzsche ist tot
Mit Zitat antworten
  #6  
Alt 11.01.2006, 15:59:12
Reinfi Reinfi ist offline
Anfänger
 
Registriert seit: Jan 2006
Ort: Rinkerode
Alter: 27
Beiträge: 81
Reinfi befindet sich auf einem aufstrebenden Ast
Reinfi eine Nachricht über ICQ schicken
AW: Nur ein Formular für ganze Tabelle

Also wenn ich das Problem richtig sehe, dann liegt es ja darin, das du mehrere Felder hast, die dann nicht mehr unterschieden werden können weil sie den selben Namen erhalten.

Eine Lösungen hätte ich für dich!

Im Formular weisst du jeweils nur den 2 Feldern den Namen "daten[]" zu!

Code:
<input type="text" name="daten[]" value="$text">
<input type="hidden" name="daten[]" value="$id">
Dann lässt du das übermittelte POST-Formular auswerten und das übermittelte Array wird in das array $daten geschrieben.
Du hast dann in jedem geradem Schluessel des Arrays deinen Wert und in jedem ungeraden Schlüssel die ID stehen. Falls du die Inputfelder vertauscht ist dies natürlich verkehrherum.
Code:
foreach( $_POST as $key => $unit ) {
if( is_array( $unit ) {
foreach ( $unit as $schluessel => $wert ) {
$daten[$schluessel] = $wert;
}
}
}
$x = 0;
while( $x<count($daten) ) {
mysql_query("UPDATE tabelle SET wert=$daten[$x] WHERE id=$daten[$x+1]");
$x = $x+2;
}
2te Idee:

Wenn du wirklich alle Felder auslesen willst, dann kannst du natürlich auch dynamische Variablennamen benutzen.

Falls du an so einer Lösung Interesse hast, kannst du ja nochmal antworten.

Martin
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem dynamische Tabelle aber wie? Pixelschubser PHP für Fortgeschrittene und Experten 1 08.10.2005 18:16:24
Über Formular in eine Tabelle eintragen Silik MySQL 3 01.04.2005 15:06:55
Formular Problem (session?) dersupergrobi PHP für Fortgeschrittene und Experten 2 25.07.2004 14:27:16
MySQL - tabelle in tabelle Gweilo PHP für Fortgeschrittene und Experten 4 09.11.2002 18:41:57
update formular problem Silencer PHP für Fortgeschrittene und Experten 1 14.10.2002 08:29:44


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:02:42 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.


© 2001-2013 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt