Schleifen Problem

Da hätte das System aber mächtig was zu schaffen - "Big Brother" lässt grüssen :suspekt:

die längst zu einem Beitrag zusammengeführt wurden.
Ja mag sein ;), habe sowas ähnliches in einer Community Plattform eingebaut. Es wird kurz ein Layer eingeblendet, user xy ist online. Hatte bisher keine Probleme damit, allerdings hat die Plattform auch nicht soviele aktive User ;) .

"Big Brother" denke kommt immer darauf an was man damit erreichen will.
 
Zuletzt bearbeitet von einem Moderator:
Wenn du die Zeile meintes da setzte ich halt ein hiddenfeld das die ID als Wert hat.

PHP:
echo "<input type=\"hidden\" name=\"check[]\" id=\"name\" value=\"".$row['U_ID']."\"/>\n";

Und beim Update rufe ich diese ID auf. Und sage da wo die ID z.b 1 ist ändere den Namen oder Vornamen.

PHP:
foreach($_REQUEST["check"] as $check){ 
$sql = "UPDATE
            user
             SET
             U_Name='".$_POST['name']."',
         U_Vorname='".$_POST['vorname']."'
             Where U_ID=$check";

Nur wie gesagt er ändert mir wenn ich 2 Datensätze auswähle und beim 1 Datensatz etwas ändere gar nix und beim 2 wenn ich dort was ändere, ändert er für beide felder das.
Z.b U_Name ändere ich von Max in Flo dann ändert er mir das bei beiden einträgen.
 
Ja sie ist eindeutig. Also die U_ID ist der Primary Key des Datensatzes. Und wenn ich das Update abschicke und mir mal die $sql ausgeben lasse sieht das auch alles gut aus.

PHP:
UPDATE user SET U_Name='test', U_Vorname='test', U_email='test', U_Stadt='test', U_SName=test', U_PLZ='2', U_Beschreibung='test' Where U_ID=2

Und wenn ich nun 2 Datensätze auswähle wird auch die richtige U_ID mit geschickt. Nur beim ändern ändert er mir dann z.b bei U_Name wenn ich da test2 schreibe dann bei beiden ausgewählten Datensätzen U_Name auf test2. Also wenn ich U_ID =2 und U_ID=10 ausgewählt habe ändert er das bei beiden.
Ich denk das liegt dann an der Schleife das ich da was falsch mache weil anscheind wird ja der Datensatz mit überschrieben
 
Problem beim Ändern von Datensätzen

Hi ich wähle über eine checkbox Datensätze aus meiner DB aus. Dazu erhält die checkbox den Primary Key U_ID. Wenn ich dann auf den Button ändern klicke erhalte ich wie in dem Bsp zu sehen die Datensätze zu der jeweiligen ID ausgegeben. Diese kann ich dann ändern.

PHP:
echo'<input type="checkbox" name="check[]" value="'.$row['U_ID'].'">';  

foreach($_REQUEST["check"] as $check){

$sql = "SELECT U_ID,U_Name,U_Vorname
           FROM user
           Where U_ID=$check";

$result = mysql_query($sql) OR die(mysql_error());
    $row = mysql_fetch_assoc($result);
echo "   <table>";
    echo "        <tr>";
    echo "           <td><label for=\"name\"><B>Name:</B></label>\n";
    echo "            <input type=\"hidden\" name=\"check[]\" id=\"name\" value=\"".$row['U_ID']."\"/>\n";
    echo "            <td><input type=\"text\" name=\"name\" size=\"30\"id=\"name\" value=\"".$row['U_Name']."\"/>\n";
    echo "        </tr>";
    echo "        <tr>";
    echo "            <td><label for=\"vorname\"><B>Vorname:</B></label>\n";
    echo "            <td><input type=\"text\" name=\"vorname\" size=\"30\" id=\"vorname\" value=\"".$row['U_Vorname']."\"/>\n";
    echo "        </tr>";
}

Klicke ich dann auf den Button zum speichern der den Namen sub hat möchte ich das die Datensätze geändert werden, wenn ich eine Änderung vorgenommen habe. Das mache ich wie in dem 2 Bsp.

PHP:
if(isset($_POST['sub']))  {

foreach($_REQUEST["check"] as $check){
$sql = "UPDATE
            user
             SET
             U_Name='".$_POST['name']."',
         U_Vorname='".$_POST['vorname']."'
             Where U_ID=$check";
mysql_query($sql) OR die(mysql_error());
}
}

Und da ist das Problem. Wenn ich z.b 2 Datensätze auswähle und bei dem 2 etwas ändere dann ändert er mir das für beide Einträge. Und wenn ich beim ersten etwas änderen ändert er das gar nicht ab ?
 
Zurück