Witam Posiadam o taki skrypt php
functions.php
function ustawienia($nazwa){ $conn = connect(); $sql = "SELECT * FROM ustawienia WHERE nazwa='$nazwa'"; $result = mysqli_query($conn, $sql); $status = mysqli_fetch_assoc($result); http://www.php.net/echo $status['opcja']; }
<http://december.com/html/4/element/form.html ="glowne/db.php" method="post"> <http://december.com/html/4/element/div.html class="input-group mb-3"> <http://december.com/html/4/element/div.html class="input-group-prepend"> <http://december.com/html/4/element/span.html class="input-group-text">Adres Strony</http://december.com/html/4/element/span.html> </http://december.com/html/4/element/div.html> <http://december.com/html/4/element/input.html type="text" class="form-control" value=" php ustawienia('adres_strony') " name="opcja"> <http://december.com/html/4/element/div.html class="input-group-append"> <http://december.com/html/4/element/button.html class="btn btn-primary" type="submit" name="edytujustawienia">Zmień</http://december.com/html/4/element/button.html> </http://december.com/html/4/element/div.html> </http://december.com/html/4/element/div.html> </http://december.com/html/4/element/form.html>
// EDYTOWANIE USTAWIEŃ if (http://www.php.net/isset($_POST['edytujustawienia'])) { $opcja = $_POST['opcja']; mysqli_query($conn, "UPDATE ustawienia SET opcja='$opcja'"); $_SESSION['ust'] = "Pomyślnie Edytowano menu!"; http://www.php.net/header('location: ustawienia.php'); }
Jaki $id? Gdzie on jest?
Możesz stworzyć inputa w formularzu z tym id, by też go wysłało przy wciśnięciu submit.
I bardzo ważna sprawa: nie wolno w taki sposób zapisywać wartości z $_POST (z $_GET z resztą też) od razu do bazy. Trzeba te dane zwalidować, czy mają taki format jak zakładamy, że powinny mieć i nie zawierają złośliwych danych.
Dałbyś jakiś przykład jak takie dane mogę zwalidować?
Co do id własnie chciałem je zrobić ale nie wiem jak :/
Skrypt ten ogólnie działa tak że funkcja ustawienia($name) wyciąga z bazy danych informacje która jest zdefiniowana jako zmienna "name", teraz to informacja jest wyświetlana jako Value="DANA INFORMACJA" w 6 linijce pliku form.php
i chciałbym tam jeszcze zrobić kolejny input który będzie 'hidden' i będzie on zawierał $id ale nie wiem jak wyciągnać to id z funkcji ustawienia() :/
http://www.php.net/echo $status['opcja'];
return $status;
<form ="glowne/db.php" method="post"> <?php $ustawienia = ustawienia('adres_strony'); ?> <div class="input-group mb-3"> <div class="input-group-prepend"> <span class="input-group-text">Adres Strony</span> </div> <input type="text" class="form-control" value="<?php http://www.php.net/echo $ustawienia['opcja']; ?>" name="opcja"> <input type="hidden" name="id" value="<?php http://www.php.net/echo $ustawienia['id']; ?>" /> <!-- to jest dodana linijka z ukrytym id --> <div class="input-group-append"> <button class="btn btn-primary" type="submit" name="edytujustawienia">Zmień</button> </div> </div> </form>
Przyklad ustawienia tabeli:
$sql = "CREATE TABLE nazwatabeli" . "( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, pole1 VARCHAR(30) COLLATE utf8_unicode_ci NOT NULL, pole2 VARCHAR(30) COLLATE utf8_unicode_ci NOT NULL )ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
<?php const SERVER_NAME = 'localhost'; const SERVER_USERNAME = 'root'; const SERVER_USERNAME_PASSWORD = 'pass'; const SERVER_DATABASE_NAME = 'nazwabazy'; const SERVER_TABLE_NAME = 'nazwatabeli'; ?>
<?php include_once 'db.php'; function PokazForm($server, $username, $password, $database, $table, $name) { $mysqli = new mysqli($server, $username, $password, $database); if ($mysqli->connect_error) { return ("Błąd połączenia z MySQL: " . $mysqli->connect_error); } $sql = "SELECT `id`, `pole1`, `pole2` FROM $table WHERE pole1='$name'"; $result = $mysqli->query($sql); if ($result->num_rows > 0) { http://www.php.net/echo "<form method=post action=\"index.php\">"; while($row = $result->fetch_assoc()) { http://www.php.net/echo "<input type=\"hidden\" value=\"" . $row['id'] . "\" name=\"id\">"; http://www.php.net/echo "<input name=\"pole1\" value=\"" . $row['pole1'] . "\"><br>"; http://www.php.net/echo "<input name=\"pole2\" value=\"" . $row['pole2'] . "\"><p>"; } http://www.php.net/echo "<input type=\"submit\" value=\"dalej\"></form>"; } else { http://www.php.net/print "Znaleziono: 0 wpisów"; } $mysqli->close(); } PokazForm(SERVER_NAME, SERVER_USERNAME, SERVER_USERNAME_PASSWORD, SERVER_DATABASE_NAME, SERVER_TABLE_NAME, 'tresc pola 1'); // 'tresc pola 1' jest to string ktory bedzie porownywany z wartoscia z tabeli w zapytaniu WHERE ?>
<?php include_once 'db.php'; function update($server, $username, $pass, $dbname, $tablename, $pole1, $pole2, $id) { $mysqli = new mysqli($server, $username, $pass, $dbname); if ($mysqli->connect_error) { return ("Błąd połączenia: " . $mysqli->connect_error); } $pole1 = $mysqli->real_escape_string($pole1); $pole2 = $mysqli->real_escape_string($pole2); $id = $mysqli->real_escape_string($id); $id = (int)$id; if ($stmt = $mysqli->prepare("UPDATE $tablename SET pole1 = ?, pole2 = ? WHERE id = ?")) { $stmt->bind_param('ssi', $pole1, $pole2, $id); $stmt->execute(); $stmt->close(); $mysqli->close(); http://www.php.net/exit('zaktualizowano'); } else { http://www.php.net/exit('blad aktualizacji'); } } update(SERVER_NAME, SERVER_USERNAME, SERVER_USERNAME_PASSWORD, SERVER_DATABASE_NAME, SERVER_TABLE_NAME, $_POST['pole1'], $_POST['pole2'], $_POST['id']); ?>
<?php http://www.php.net/session_start(); include_once 'db.php'; function PokazForm($server, $username, $password, $database, $table, $name) { if(http://www.php.net/isset($_SESSION['odswierzenie'])) { http://www.php.net/unset($_SESSION['odswierzenie']); } $mysqli = new mysqli($server, $username, $password, $database); if ($mysqli->connect_error) { return ("Błąd połączenia z MySQL: " . $mysqli->connect_error); } $sql = "SELECT `id`, `pole1`, `pole2` FROM $table WHERE pole1='$name'"; $result = $mysqli->query($sql); if ($result->num_rows > 0) { http://www.php.net/echo "<form method=post action=\"index.php\">"; while($row = $result->fetch_assoc()) { http://www.php.net/echo "<input type=\"hidden\" value=\"" . $row['id'] . "\" name=\"id\">"; http://www.php.net/echo "<input name=\"pole1\" value=\"" . $row['pole1'] . "\"><br>"; http://www.php.net/echo "<input name=\"pole2\" value=\"" . $row['pole2'] . "\"><p>"; } http://www.php.net/echo "<input type=\"submit\" value=\"dalej\"></form>"; } else { http://www.php.net/print "Znaleziono: 0 wpisów"; } $mysqli->close(); } PokazForm(SERVER_NAME, SERVER_USERNAME, SERVER_USERNAME_PASSWORD, SERVER_DATABASE_NAME, SERVER_TABLE_NAME, 'tresc pola 1'); ?>
<?php http://www.php.net/session_start(); include_once 'db.php'; function update($server, $username, $pass, $dbname, $tablename, $pole1, $pole2, $id) { if(http://www.php.net/isset($_SESSION['odswierzenie'])) { http://www.php.net/header('location: form.php'); http://www.php.net/exit; } $mysqli = new mysqli($server, $username, $pass, $dbname); if ($mysqli->connect_error) { return ("Błąd połączenia: " . $mysqli->connect_error); } $pole1 = $mysqli->real_escape_string($pole1); $pole2 = $mysqli->real_escape_string($pole2); $id = $mysqli->real_escape_string($id); $id = (int)$id; if ($stmt = $mysqli->prepare("UPDATE $tablename SET pole1 = ?, pole2 = ? WHERE id = ?")) { $stmt->bind_param('ssi', $pole1, $pole2, $id); $stmt->execute(); $stmt->close(); $mysqli->close(); $_SESSION['odswierzenie'] = '1'; http://www.php.net/exit('zaktualizowano'); } else { http://www.php.net/exit('blad aktualizacji'); } } update(SERVER_NAME, SERVER_USERNAME, SERVER_USERNAME_PASSWORD, SERVER_DATABASE_NAME, SERVER_TABLE_NAME, $_POST['pole1'], $_POST['pole2'], $_POST['id']); ?>
Woow, dziękuje wam bardzo, czeka mnie jeszcze długa droga do tego żeby to zrozumieć, taki przedszkolak ze mnie w tym temacie, ale wklejając działa wszystko <3 <3 Jeszcze raz dziękuje
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)