@Pride_Winner

Почему при обновление mysql данных все таблицы перезаписываются?

Вот код (кривой конечно), в итоге обновление происходит во всех таблицах.
(То что это дырявый говно код знаю, но в php программисты не мечу).

<?php
    
    include("c.php");
 
    if(isset($_POST['edit_this_user'])) {
         
        $r = mysql_query("UPDATE student SET fio = '{$_POST['fio']}', progul = '{$_POST['progul']}'") or die(mysql_error());
 
        if($r) {
            echo '<h1 align="center">Запись отредактирована!</h1>';
        }
        else {
            echo '<h1 align="center">Произошла ошибка! Попытайтесь снова!</h1>';
        }
    }
 
?>
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
 
    <title>TITLE</title>
 
     <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
 
    <meta name="description" content="Description" />
 
</head>
 
<body>
  
    <h1 align="center">Редактировать запись</h1>
<?php
    if(!isset($_GET['edit_student'])) {
?>
    <form action="up.php" method="get">
        <select name="edit_student">
    <?php
        $rez = mysql_query("SELECT id, fio FROM student") or die(mysql_error());
        while($r = mysql_fetch_array($rez)) {
            echo '\t\t\t<option value="' . $r['id'] . '">' . $r['fio'] . '</option>';
        }
    ?>
        </select>
        <input type="submit" value="Редактировать данные" />
    </form>
<?php
    }
    else {
        $stud = mysql_query("SELECT fio, progul FROM student WHERE id='{$_GET['edit_student']}'" ) or die(mysql_error());
        $stud = mysql_fetch_array($stud);
 
?>
    <form action="up.php" method="post">
        <input type="hidden" name="edit_student" value="<?php echo $_GET['edit_student']; ?>" />
        <label>Фамилия</label>
		<br>
        <input type="text" name="fio" value="<?php echo $stud['fio']; ?>" /><br />
       
        <label>Пропуск</label>
		<br>
        <input type="text" name="progul" value="<?php echo $stud['progul']; ?>" /><br />
        
        <input type="submit" name="edit_this_user" value="Сохранить">
    </form>
<?php
    }
?>
    
</body>
 
</html>
  • Вопрос задан
  • 2803 просмотра
Решения вопроса 1
@Pride_Winner Автор вопроса
Ошибся сдесь
$r = mysql_query("UPDATE student SET fio = '{$_POST['fio']}', progul = '{$_POST['progul']}' WHERE id='{$_POST['edit_student']}'", $db) or die(mysql_error());
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@AlexGx
Yii2 developer, business analytics
НЕ используйте конструкции вида fio = '{$_POST['fio']}' в строке запроса, тк это может привести к SQL-injection. Делайте экранирование, а в идеале биндинг парамертров (bindParam, bindValue) через PDO. Второй нюанс: mysql_query устарело, используйте вместо него mysqli или PDO.

Ссыка по теме: PDOStatement::bindParam
Ответ написан
Комментировать
@artishok
кратко
Найдите фрилансера, да заплатите ему - быстрее будет. Уже 6-ой вопрос на хабре.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы