Mehrere Datensätze auf einmal ändern MYSQL

robaer1982

Mitglied
Hallo wie kann ich mehrere Datensätze in einer Tabelle ändern sitze nun schon ne weile komme einfach nicht weiter . Bin ich so gut in php
PHP:
<?php
//ADMIN
echo"<form action=\"senden2.php\" methode=\"get\"><br>";
include("connect.php");
$sql="SELECT * FROM ini4  WHERE wert LIKE 'AdminPassword%'";
$db=mysql_connect($host,$dbuser,$dbpass);
$result=mysql_db_query($dbase,$sql);
$num=mysql_num_rows($result);
	$ID=mysql_result($result, $i, "ID");
	$wert=mysql_result($result, $i, "wert");

echo"<input type=\"hidden\" Name=\"ID\" size=\"30\" maxlength=\"30\" value=\"$ID\"><p>";
echo"Wert:<input type=\"Text\" Name=\"wert\" size=\"30\" maxlength=\"30\" value=\"$wert\"><p>";

//GAmepass
$sql="SELECT * FROM ini4  WHERE wert LIKE 'GamePassword%'";
$db=mysql_connect($host,$dbuser,$dbpass);
$result=mysql_db_query($dbase,$sql);
$num=mysql_num_rows($result);
	$ID=mysql_result($result, $i, "ID");
	$wert=mysql_result($result, $i, "wert");

echo"<input type=\"hidden\" Name=\"ID\" size=\"30\" maxlength=\"30\" value=\"$ID\"><p>";
echo"Wert:<input type=\"Text\" Name=\"wert\" size=\"30\" maxlength=\"30\" value=\"$wert\"><p>";

//Netspeed
$sql="SELECT * FROM ini4  WHERE wert LIKE 'MaxClientRate%'";
$db=mysql_connect($host,$dbuser,$dbpass);
$result=mysql_db_query($dbase,$sql);
$num=mysql_num_rows($result);
	$ID=mysql_result($result, $i, "ID");
	$wert=mysql_result($result, $i, "wert");

echo"<input type=\"hidden\" Name=\"ID\" size=\"30\" maxlength=\"30\" value=\"$ID\"><p>";
echo"Wert:<input type=\"Text\" Name=\"wert\" size=\"30\" maxlength=\"30\" value=\"$wert\"><p>";


//servertravel

$sql="SELECT * FROM ini4  WHERE wert LIKE 'ServerTravelPause%'";
$db=mysql_connect($host,$dbuser,$dbpass);
$result=mysql_db_query($dbase,$sql);
$num=mysql_num_rows($result);
	$ID=mysql_result($result, $i, "ID");
	$wert=mysql_result($result, $i, "wert");

echo"<input type=\"hidden\" Name=\"ID\" size=\"30\" maxlength=\"30\" value=\"$ID\"><p>";
echo"Wert:<input type=\"Text\" Name=\"wert\" size=\"30\" maxlength=\"30\" value=\"$wert\"><p>";

//Player
$sql="SELECT * FROM ini4  WHERE wert LIKE 'MaxPlayers%'";
$db=mysql_connect($host,$dbuser,$dbpass);
$result=mysql_db_query($dbase,$sql);
$num=mysql_num_rows($result);
	$ID=mysql_result($result, $i, "ID");
	$wert=mysql_result($result, $i, "wert");

echo"<input type=\"hidden\" Name=\"ID\" size=\"30\" maxlength=\"30\" value=\"$ID\"><p>";
echo"Wert:<input type=\"Text\" Name=\"wert\" size=\"30\" maxlength=\"30\" value=\"$wert\"><p>";


//Servername
$sql="SELECT * FROM ini4  WHERE wert LIKE 'ServerName%'";
$db=mysql_connect($host,$dbuser,$dbpass);
$result=mysql_db_query($dbase,$sql);
$num=mysql_num_rows($result);
	$ID=mysql_result($result, $i, "ID");
	$wert=mysql_result($result, $i, "wert");

echo"<input type=\"hidden\" Name=\"ID\" size=\"30\" maxlength=\"30\" value=\"$ID\"><p>";
echo"Wert:<input type=\"Text\" Name=\"wert\" size=\"30\" maxlength=\"30\" value=\"$wert\"><p>";

//port
$sql="SELECT * FROM ini4  WHERE wert Like'Port%'";
$db=mysql_connect($host,$dbuser,$dbpass);
$result=mysql_db_query($dbase,$sql);
$num=mysql_num_rows($result);
	$ID=mysql_result($result, $i, "ID");
	$wert=mysql_result($result, $i, "wert");

echo"<input type=\"hidden\" Name=\"ID\" size=\"30\" maxlength=\"30\" value=\"$ID\"><p>";
echo"Wert:<input type=\"Text\" Name=\"wert\" size=\"30\" maxlength=\"30\" value=\"$wert\"><p>";
echo"<input type=\"submit\" Name=\"senden\"value=\"aendern\"><p>";
?>
das problem ist folgendes es wird nur der letzt datesatz geändert

Und hier die Datei an die es übergeben wird
PHP:
<?php
 include("connect.php");
$sql="update ini4 set wert='$wert' where ID='$ID'";
$db=mysql_connect($host,$dbuser,$dbpass);
$result=mysql_db_query($dbase,$sql);
if($result==1)
  {
    echo"Änderung erfolgreich.
    ";
  }
else
  {
    echo"<font size=\"6\" color=\"red\">Änderung nicht erfolgreich.</font>
    ";
  }
?>
 
Zuletzt bearbeitet:
Ich verstehe zwar nicht, was du da machst und was für ne DB Struktur das ist, aber warum nur der letzte Wert geändert wird, kann ich dir sagen:

Du speichest alle deine ID's nach einer SQL Abfrage in die Variable $ID.
Sprich mit jeder Abfrage die du machst, überschreibst du den vorherigen Wert von $ID und trägst den ID Wert dann wieder in ein HIDDEN INPUT field ein, was auch IMMER ID heisst.

Mal etwas Bildlicher:
Abfrage SQL1 $ID = 5;
$ID ist hier 5;HIDDEN INPUT field = 5
Abfrage SQL2 $ID = 8
$ID ist nun 8;HIDDEN INPUT field = 8
Abfrage SQL3 $ID = 1212;
$ID ist jetzt 1212;HIDDEN INPUT field = 1212

Wenn du nun nen DB Update machst, mit der Bedingung id = $ID, wird nur die Zeile aktualisiert, wo ID = 1212 ist. Logisch oder?

Wenn all deine Input type=hidden fields den Namen ID haben, überschreiben die sich natürlich.

Ist das gleiche, wenn ich $a = 5; setze und dann $a = 10;
echo $a; wäre dann 10.

Hoffe es war verständlich erklärt.
Lösungs wären folgende:
- die Input Hidden Fiels kriegen alle nen eigenen Namen (was damit statisch wäre)
- die Input Hidden Fiels werden im HTML als array aufgebaut
--- dann das $_POST['id'] feld mit foreach durchgehen und db updaten.

Gruss
 
Zu den aufbau der der DB

Tabellenname: ini4
Spalten: wert und ID
z.B.:
wert id
Protokoll=a 1
Type=b 2

so mal zu den prob. ich möchte bestimmte werte aus der Tabelle haben , und diese bearbeiten können und wieder in die Tabelle schreiben.
Weis nicht ob es mit der auswertung einfacher geht wenn ja wie

ps: id ist nicht fest da die datei immer wieder neu importiert wird.

mfg robaer1982
 
Zurück