Как выполнить mysql при нажатии кнопки [закрыто]


PHP:
Как бы я выполнил SQL при нажатии кнопки? Сделал бы я это с помощью функции JavaScript onClick() или каким-либо другим способом? Я пытаюсь сделать это внутри цикла и выполнять sql только в той строке, на которую нажата кнопка... Спасибо!

Код для @phpnoob, чтобы помочь: Хорошо, теперь я со всем этим разобрался, но при нажатии кнопки она выполняется один раз для каждой строки... не один раз за строку, на которую была нажата кнопка! Мне нужен только тот ряд, который была нажата кнопка для запроса... мой код:

while($row = mysqli_fetch_array($result)) {

//FAULTY CODE!!! EXECUTES ONCE FOR EACH ROW!
//I WANT IT TO ONLY EXECUTE FOR THE ROW THE
//BUTTON WAS CLICKED ON

if(isset($_POST['delete'])){
echo "You clicked on: ".$row['subject'];
//eventually i will have sql query up here
}
//echo all the results into a table... messy
echo"

<tr><td><div align='center'><font color='grey'>".$row['date']."</font></div></td><td><div align='center'> ".$row['sender']."</div></td><td><div align='center'> ".$row['subject']."</div></td><td><div align='center'><input type='button' value='open' onClick='window.alert(\"On ".$row['date']." ".$row['sender']." wrote:\\n".$row['message']."\")'/></div></td><td><div align='center'><form  method='post'><input type='submit' value='delete' name='delete'/></form></div></td></tr>

";

}

echo '</table>'; //ends the table.
Author: pattyd, 2013-05-21

3 answers

Вы можете сделать что-то подобное, чтобы сохранить значение из btn ввода/отправки.

<!-- your html form -->
<form action="POST">
    <input type='text' name='username' />
    <input type='text' value='submit' />
</form>



<?php 

// your php code

if($_POST && isset($_POST['username'])){

    $db = new \PDO('......'); // enter your db details

    $stmt = $db->prepare("INSERT INTO table (username) VALUES (?)");
    $result = $stmt->execute(array($_POST['username']);

    echo $result->rowCount() ? 'Username saved in db' : 'Unknown error occured'; 

}
 4
Author: samayo, 2017-05-26 16:10:50

Update: 2017

Этот ответ устарел, пожалуйста, используйте лучшую библиотеку, такую как PDO для выполнения приведенной ниже функции.


Хорошо, просто скопируйте/вставьте весь код в обычный текст PHP. Это работает, я только что попробовал. Все, что вам нужно, это таблица под названием test с файлами id,username, или вы можете костюмировать сценарий, как вам нравится. и не забудьте изменить пароль базы данных, данные имени пользователя..

<form action='' method='POST'>
<?php

mysql_connect('localhost', 'root', '');
mysql_select_db('test');
$query  = "SELECT * FROM users";
$result = mysql_query($query);

while ($row = mysql_fetch_array($result)) {
    echo "  To delete user   <b>" . $row['username'] . "</b>  Click on the number <input type='submit' name='delete' value='" . $row['id'] . "' /><br/>";
}

if (isset($_POST['delete'])) {
    $user = $_POST['delete'];
    $delet_query = mysql_query("DELETE FROM users WHERE id = $user ") or die(mysql_error());

    if ($delet_query) {
        echo 'user with id ' . $user . ' is removed from your table, to refresh your page, click' . '<a href=' . $_SERVER["PHP_SELF"] . ' > here </a>';
    }
}
?>
</form>
 8
Author: samayo, 2018-03-02 14:25:11

Используйте библиотеку AJAX для отправки запроса сценарию на стороне сервера, который выполняет ваш запрос. Поместите это в качестве обработчика onClick() в Javascript, и вуаля, Боб - ваш дядя!

 1
Author: hd1, 2013-05-21 00:03:33