Cześć. Piszę skrypt, który ma za zadanie zaktualizować kolumnę 'odznaka', po wybraniu odpowiedniej liczby z pola SELECT.
Kod formularza:
mysql_connect("localhost", "root", "");
mysql_select_db("baza");
$result = mysql_query('SELECT odznaka, wlasciciel FROM odznaki');
echo '<center><br /><br /><br /><form action="odznaka.php">
<select id="odznaki" name="odznaki" size="20">';
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
if($row['wlasciciel'] == NULL)
{
$row['wlasciciel'] = "WOLNE";
}
echo '<option value="'.$row[0].'">odznaka nr '.$row[0]. ' - '. $row['wlasciciel'].'</option>';
}
echo '</select><br /><br />
<input style="margin-left:-75%" type="submit" id="submit" name="submit" value="Wybierz">
</form></center>';
echo '</div>';
}
Skrypt PHP:
<?php
ob_start();
session_start();
?>
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="style.css">
</head>
<body>
<section id="main">
<?php
if (empty($_COOKIE['islogged'])) {
header('Refresh: 5; url=index.php');
return '<script>alert("Czas sesji wygasł. Proszę zalogować się ponownie. Za chwilę nastąpi przekierowanie")</script>';
}
if (isset($_SESSION['nick'])) {
if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST)) {
$login = $_SESSION['nick'];
$odznaka = $_POST['odznaki'];
if(empty($odznaka)) {
return '<p>Wypełnij wszystkie dane.</p>';
}
else {
if (file_exists('config.php')) {
include_once('config.php');
} else {
return 'config.php file not found.';
}
$mysqli = new mysqli($config['db']['host'], $config['db']['user'], $config['db']['password'], $config['db']['database']);
if($mysqli -> connect_error) {
return '<p>Problem z połączeniem się z bazą danych:' . $mysqli->connect_error . '[' . $mysqli->connect_errno . ']</p>';
} else {
$login = trim(strip_tags($mysqli -> real_escape_string($login)));
$odznaka = $_POST['odznaki'];
$stmt = $mysqli->prepare("UPDATE `user` SET `odznaka`='$odznaka' WHERE `login`='$login'");
if (!$stmt) {
echo "false";
}
else {
$stmt->bind_param("ss", $login, $odznaka);
$stmt->execute();
}
}
if($stmt->affected_rows == 1) {
echo '<a style="
background: #3d85c6;
background: -webkit-linear-gradient(#3d85c6, #073763);
background: linear-gradient(#3d85c6, #073763);
border-radius: 5px;
color: #fff;
display: inline-block;
padding: 8px 20px;
font: normal 700 24px/1 "Calibri", sans-serif;
text-align: center;
text-shadow: 1px 1px 0 #000;
" href="ucp.php" class="myButton">Powrót</a>';
echo ' <a style="
background: #3d85c6;
background: -webkit-linear-gradient(#3d85c6, #073763);
background: linear-gradient(#3d85c6, #073763);
border-radius: 5px;
color: #fff;
display: inline-block;
padding: 8px 20px;
font: normal 700 24px/1 "Calibri", sans-serif;
text-align: center;
text-shadow: 1px 1px 0 #000;
" href="logout.php" class="myButton">Wyloguj</a>';
echo "<h1 style='color:white'>Udało Ci się ustawić odznakę " . " '$odznaka'";
} else {
header('Location: odznaki.php');
}
}
}
}
else{
header('Location: index.php');
}
?>
</section>
</body>
</html>
<?php
ob_end_flush();
?>
Nie wyskakuje żaden błąd, co najlepsze. Siedzę nad tym już godzinę, nie mam pojęcia, co jest źle.