Witam wszystkich forumowiczów!
Napisałem prosty skrypt, który oferowałby możliwość edycji rekordów w bazie danych. Problem występuje z przekazaniem wartości z pętli while do pętli foreach, w której następuje upgrade tabeli. Spróbowałem rzutować wartości używając polecenia (array), jednakże nie pomogło.
<?php
require_once 'constants.php';
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (isset($_POST['submit'])) { $first_name_up = $_POST['first_name'];
$last_name_up = $_POST['last_name'];
$email_up = $_POST['email'];
$output_form = false;
foreach ((array) $_POST['todelete'] as $id_up) {
//tu musi byc formularz update
if (!empty($first_name_up) && !empty($last_name_up) && !empty($email_up)) {
$query = "UPDATE email_list SET first_name='$first_name_up', last_name='$last_name_up',email='$email_up, WHERE id=$id_up";
mysqli_query
($dbc, $query) or
die('Błąd w zapytaniu do bazy danych'); echo("Dodano klienta $first_name_up $last_name_up"); } elseif (empty($first_name_up) && empty($last_name_up) && empty($email_up)) { echo 'Próbujesz wysłać pustą wiadomość'; $output_form = true;
} elseif (empty($first_name_up)) { $output_form = true;
} elseif (empty($last_name_up)) { $output_form = true;
} elseif (empty($emai_up)) { echo 'Brak adresu email'; $output_form = true;
} else {
$output_form = true;
}
if ($output_form) {
?>
<p>
<strong>Dodaj klienta do bazy danych</strong>.</p>
<form method="post" action="
<?php echo $_SERVER['PHP_SELF']; ?>" >
<p> <label for="firstname">Imię: </label>
<input type="text" id="first_name" name="first_name" value="
<?php echo $first_name_up; ?>" /><br /></p>
<p>Nazwisko: <input type="text" id="last_name" name="last_name" value="
<?php echo $last_name_up; ?>"/><br /></p>
<p> <label for="email">Adres e-mail: </label>
<input type="text" id="email" name="email" value="
<?php echo $email_up; ?>" /><br /></p>
<p> <input type="submit" value="Wyślij" name="submit" /></p>
</form>
<?php
}
}
////////////////////
echo 'Zaktualizowano dane klienta.<br />'; }
// Wyświetla dane klientów z polami do wyboru edytowanych wierszy.
$query = "SELECT * FROM email_list";
$result = mysqli_query($dbc, $query);
while ($row = mysqli_fetch_array($result)) {
echo '<input type="radio" value="' . $row['id'] . '" name="todelete[]" />'; echo ' ' . $row['last_name']; echo ' ' . $row['email']; }
?>
<input type="submit" name="submit" value="Edytuj" />
</form>
Z góry dziękuję za pomoc i pozdrawiam