mysql — php sql не распознает мою переменную и не удаляет из базы данных

У меня проблемы с моим PHP-файлом и моим SQL-оператором. Я хочу удалить пользователя, которого я выбрал, из выпадающего списка. Я все перепробовал и не удаляю из БД. Помогите мне, пожалуйста

main.php

<!DOCTYPE html>

<html>
<head>

</head>
<body>
<?php
$link = mysql_connect("localhost","root","");
mysql_select_db("pruebas", $link);

/* El query valida si el usuario ingresado existe en la base de datos. Se utiliza la función
htmlentities para evitar inyecciones SQL. */
$myusuario = mysql_query("select nombre from usuarios");
$nmyusuario = mysql_num_rows($myusuario);//Como ya se dijo anteriormente la variable $conexion esta definida
//en el archivo 'conexion_mysqli.php'

?>

<form method="post" name="lista_form" action="delete.php">

<select name="lista">
<?php
while ( $row = mysql_fetch_array($myusuario) )
{
?>

<option value=" <?php echo $row['nombre'] ?> " >
<?php echo $row['nombre']; ?>
</option>

<?php
}
?>
</select>
<input type="submit" value="SEND">
</form></body>

</html>

delete.php

<?php
/* A continuación, realizamos la conexión con nuestra base de datos en MySQL */
echo $_POST["lista"];
$my_post=mysql_escape_string($_POST["lista"]);
echo $my_post;
$link = mysql_connect("localhost","root","");
mysql_select_db("pruebas", $link);

/* El query valida si el usuario ingresado existe en la base de datos. Se utiliza la función
htmlentities para evitar inyecciones SQL. */
$sql=mysql_query("DELETE FROM usuarios WHERE nombre = '$my_post'", $link);

if($sql !=  0)
{
echo 'You DELETE';}
else
{
echo 'Your not in';
}
?>

-1

Решение

Казалось бы, это ваша проблема:

<option value=" <?php echo $row['nombre'] ?> " >
^ here                       ^ and here

Вы добавляете пробелы вокруг строки, которая приходит из вашей базы данных.

Кроме того, вы не экранируете свою строку для вывода в html, что может нарушить ваш html и логику, если значение содержит " персонаж.

Вы должны изменить это на что-то вроде:

<option value="<?php echo htmlspecialchars($row['nombre']); ?>" >

Также обратите внимание, что mysql_escape_string устарела с версии 4.3 (!) и всех остальных mysql_* функции теперь также устарели.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector