Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Problem z foreach
krysob
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 4.12.2011

Ostrzeżenie: (0%)
-----


Witajcie,

Mam problem z updatem wielu wierszy na raz. Wykorzystuje przykład z książki (w przykładzie jest usuwanie wpisów a ja nadpisuje może to jest problem). Może ktoś bardziej doświadczony coś złego zauważy. Z góry dziękuje za pomoc.

Po zapisaniu zmian pojawia się komunikat "Notice: Array to string conversion in C:\Program Files\EasyPHP-12.1\www\order_detail.php on line 16" i w polach tekstowych jest napisane ARRAY liczby zerują się także.

link do screen
http://i236.photobucket.com/albums/ff210/c...zpsfqnut6rc.png
http://i236.photobucket.com/albums/ff210/c...zpskjzt4wep.png

CODE
//aktualizacja szczegółów zleceń
if (isset($_POST['editall'])) {
foreach ($_POST['tochange'] as $expenditureid)
{
[16 linia] mysql_query("UPDATE expenditure SET et_name = '$_POST[et_name]', expenditure_price = '$_POST[expenditure_price]', expenditure_price_detal = '$_POST[expenditure_price_detal]', expenditure_type = '$_POST[expenditure_type]' WHERE expenditure_id = '$expenditureid'") or die(mysql_error());
}
echo '<h4>Poprawnie zaktualizowano szczegóły zlecenia.</h4>';
}







//tabelka
$query = "SELECT et_name, expenditure_price, expenditure_price_detal, expenditure_id, expenditure_type FROM `expenditure` WHERE order_id = $_POST[order_id] AND expenditure_type = 0";
$result = mysqli_query($link, $query);
echo'<tr class="results">';
while($rowgg = mysqli_fetch_array($result)) {

if ($rowgg['expenditure_price'] > $rowgg['expenditure_price_detal'])
{
$error = '<p>CENA DETALICZNA JEST NIŻSZA NIŻ ZAKUPU !</p><p>ZMIEŃ CENE !</p>';
}
else
{
$error = '';
}

echo '<td><input type="checkbox" value="'.$rowgg['expenditure_id'].'" name="tochange[]"/></td>
<td style="width: 500px"><input type="text" size="40" name="et_name[]" value="'.$rowgg['et_name'].'" /></td>
<td><input type="text" size="5" name="expenditure_price[]" value="'.$rowgg['expenditure_price'].'" /> zł</td>
<td> Detal: <input type="text" size="5" name="expenditure_price_detal[]" value="'.$rowgg['expenditure_price_detal'].'" /> '.$error.' zł</td>';
echo '<input type="hidden" name="expenditure_id[]" value="'.$rowgg['expenditure_id'].'" />
<td>
<select name="expenditure_type[]">
<option value=0>Część</option>
<option value=1>Usługa</option></select>
</td>';
echo '</tr>';

}
echo '</table>';
}
else {
echo '<b>Brak.</b>';
}


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
golaod
post
Post #2





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


  1. if (isset($_POST['editall'])) {
  2. foreach ($_POST['tochange'] as $index => $expenditureid)
  3. {
  4. mysql_query("UPDATE expenditure SET et_name = '$_POST[et_name][$index]', expenditure_price = '$_POST[expenditure_price][$index]', expenditure_price_detal = '$_POST[expenditure_price_detal][$index]', expenditure_type = '$_POST[expenditure_type][$index]' WHERE expenditure_id = '$expenditureid'") or die(mysql_error());
  5. }
  6. echo '<h4>Poprawnie zaktualizowano szczegóły zlecenia.</h4>';
  7. }


Nie sprawdzałem poprawności. Po prostu dodaję to co powinno być, a czego brakuje. Skoro wszystkie Twoje pola są tablicą, to do każdej wartości powinieneś się odnieść na zasadzie: nazwa_pola[wiersz]

Ten post edytował golaod 25.05.2015, 11:20:32
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 18:16