4

PHP:
单击按钮时如何执行 SQL?我会使用 JavaScriptonClick()函数还是其他方式?我正在尝试在循环中执行此操作,并且只在单击按钮的行上执行 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.
4

3 回答 3

8

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>
于 2013-05-21T01:31:29.987 回答
5

You can do something like this to save a value from an input/submit 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'; 

}
于 2013-05-21T00:02:41.027 回答
1

Use an AJAX library to issue a request to a server-side script that executes your query. Put this as your onClick() handler in Javascript, and presto, Bob's your uncle!

于 2013-05-21T00:03:33.500 回答