Problem beim ändern mehrer Input Felder!

proloser

Erfahrenes Mitglied
Hallo,

ich wähle zB 6 Artikelgruppen die werden dann so angezeigt ...
PHP:
foreach ($submit_agid AS $agid) {
  $res=mysql_query("SELECT * FROM artikelgruppe WHERE id ='$agid' ORDER BY name ASC");
  while($row=mysql_fetch_array($res)) {
    eval("\$list .= \"".get_template("stammdaten_artikelgruppe_edit_list.htm")."\";");
   }
}

... das ganze sieht dann so aus.

26556attachment.jpg


Warum ändern sich beim klick auf "ändern" nicht alle Artikelgruppen einzeln sondern alle in den gleichen Namen?


PHP:
foreach ($submit_agid AS $agid) {
  mysql_query("UPDATE artikelgruppe SET name = '$submit_name' WHERE salesmanid = '$salesmanID' AND id = '$agid'");
  }


Mfg proloser
 
PHP:
foreach ($submit_agid AS $agid) {
  mysql_query("UPDATE artikelgruppe SET name = '$submit_name' WHERE salesmanid = '$salesmanID' AND id = '$agid'");
  }

Ich sehe das so das du nur den Namen Updates wo Salesmainid = bla bla bla AND id = bla bla bla...

Müsstest doch für jedes Input einen befehl schreiben oder nicht?

PHP:
name = $input 1 where salesmanid = 1 and id = 1
name = $input2 where salesmainid = 2 and id = 2
etc. etc.

Müsstest halt den Iputfeldern die entprechende ID mit geben und zuerst prüfen, von welcher ID aus die Inputs kommen.

So würde ich es machen...... (aber ich bin auch kein pro)
 
Das Formular sieht so aus ...

HTML:
<form action="abc.php?site=ag&action=edit_check" method="POST" name="form">


<input type="hidden" name="submit_agid[]" value="$row[id]" size="20">
<input type="text" name="submit_name" size="30" value="$row[name]"><br>


<input type="submit" value="ändern">
</form>
 
Zuletzt bearbeitet:
PHP:
foreach ($submit_agid AS $agid) {
  mysql_query("UPDATE artikelgruppe SET name = '$submit_name' WHERE salesmanid = '$salesmanID' AND id = '$agid'");
  }

Ich sehe das so das du nur den Namen Updates wo Salesmainid = bla bla bla AND id = bla bla bla...

Müsstest doch für jedes Input einen befehl schreiben oder nicht?

PHP:
name = $input 1 where salesmanid = 1 and id = 1
name = $input2 where salesmainid = 2 and id = 2
etc. etc.

Müsstest halt den Iputfeldern die entprechende ID mit geben und zuerst prüfen, von welcher ID aus die Inputs kommen.

So würde ich es machen...... (aber ich bin auch kein pro)



So kann ichs leider nicht machen denn die Anzahl der Input Felder hängt davon ab wie viele Artikelgruppen zuvor ausgewält wurden!
 
Es wird auch nur so oft das Mysql-Query ausgeführt, wie Anzahl an Textfelder vorhanden ist. Und die Anzahl der Textfelder, ergibt sich doch aus der gewählten Artikelgruppe oder nicht?
 
Es wird auch nur so oft das Mysql-Query ausgeführt, wie Anzahl an Textfelder vorhanden ist. Und die Anzahl der Textfelder, ergibt sich doch aus der gewählten Artikelgruppe oder nicht?

Stimmt aber alle Textfelder haben auch die selbe Variable nämlich "submit_name" ...

HTML:
<input type="text" name="submit_name" size="30" value="$row[name]">

... d.h. es werden alle in den Namen verändert der in dem ersten Textfeld steht und genau das ist das Problem!
 
Habe ich versucht aber wahrscheinlich fehlt da noch etwas im PHP Code weil sich alle Einträge in "Array" ändern.


edit:

Und was muss ich am PHP Code ändern? :/
Weil so funktionierts noch nicht .. Einträge ändern sich auch auf "Array"!
PHP:
foreach ($submit_agid AS $agid) {
  mysql_query("UPDATE artikelgruppe SET name = '$submit_name' WHERE salesmanid = '$salesmanID' AND id = '$agid'");
    }
 
Zuletzt bearbeitet:
soyo hat gesagt.:
Dann einfach :

HTML:
echo "<input type=\"text\" name=\"submit_name['$row[id]']\" size=\"30\" value=\"$row[name]\">";

Auch so werden die Einträge auf "Array" geändert .. so ähnlich hab ichs auch schon versucht aber klappt einfach nicht! :rolleyes:
 
PHP:
Im Formular ...
echo "<input type=\"text\" name=\"submit_agid['$row[id]']\" size=\"30\" value=\"$row[name]\">";

In der Verarbeitung ....

foreach($_POST[submit_agid] as $strName){
  mysql_query("UPDATE artikelgruppe SET name = '$strName' WHERE salesmanid = '$salesmanID' AND id = '.key($_POST[submit_agid]).'");

  next($_POST[submit_agid] );
}

Ist aber ungetestet ...
 
Zurück