1

我的代码中有一个循环,该循环为找到的每个成员创建一个提交按钮。我需要每个按钮都将成员名称存储在其中,以某种方式可以在单击该按钮时通过帖子发送。我不确定这是否可以通过 post 实现,但我正在尝试一种使用 URLS 的方法。有谁知道如何做到这一点?

<input type="submit" value="Attack" name="Attack?name=<?php echo $Member_name; ?>" />

<?php 
if(isset($_POST['Attack'])){
$sql = "SELECT * FROM users WHERE name='".mysql_real_escape_string($_GET['name'])."'";
$query = mysql_query($sql)  or die(mysql_error());
$row = mysql_fetch_object($query);
}

这是我试图以隐藏形式存储它的整个代码,但它只抓取找到的最后一个成员并且不会获取其他成员。

<?php

$sql = "SELECT name, rank FROM users ORDER BY rank DESC"; //  Searches the database for every one who has being last active in the last 5 minute
$query = mysql_query($sql) or die(mysql_error());
$count = mysql_num_rows($query);
$i = 1;
while($row = mysql_fetch_object($query)) {
 $Member_name = htmlspecialchars($row->name);
$Member_level = htmlspecialchars($row->rank);
?>
<td><?php echo $i; ?></td>
<td><a href="View_Profile.php?name=<?php echo $Member_name; ?>"><?php echo $Member_name; ?></a></td><td><?php echo $Member_level; ?></td><td>
<input type="hidden" name="thename" value="<?php echo $Member_name; ?>">
<input type="submit" value="Attack" name="Attack" />
</td>
<?

 if($i != $count) { // this counts the amount of people that are online and display the results.
  echo "</tr><tr>";
 }
 $i++;
}
?>

<?php 
if(isset($_POST['Attack'])){
$sql = "SELECT * FROM users WHERE name='".mysql_real_escape_string($_POST['thename'])."'";
$query = mysql_query($sql)  or die(mysql_error());
$row = mysql_fetch_object($query);
$profile_id = htmlspecialchars($row->id);
$profile_userip = htmlspecialchars($row->userip);
$profile_name = htmlspecialchars($row->name);
$profile_money = htmlspecialchars($row->money);
$profile_gang = htmlspecialchars($row->gang);
$profile_exp = htmlspecialchars($row->exp);
$profile_profile = htmlspecialchars($row->profile);
$profile_rank = htmlspecialchars($row->rank);
$profile_health = htmlspecialchars($row->health);
$profile_defence = htmlspecialchars($row->defence);
$profile_stanima = htmlspecialchars($row->stanima);
?>
4

1 回答 1

2

好的,假设其他一切正常,并且您正在检索数据。

改变这个:

<input type="hidden" name="thename" value="<?php echo $Member_name; ?>">
<input type="submit" value="Attack" name="Attack" />

对此:

<form method="POST" action="">
<input type="hidden" name="name" value="<?php echo $Member_name; ?>">
<input type="submit" value="Attack" name="Attack" />
</form>

而且在你的 PHP 中,改变这一行:

$sql = "SELECT * FROM users WHERE name='".mysql_real_escape_string($_GET['name'])."'";

至:

$sql = "SELECT * FROM users WHERE name='".mysql_real_escape_string($_POST ['name'])."'";

这不是最好的方法,您将根据您拥有的用户数量生成大量 HTML 元素,但它应该可以解决您的问题(假设其他一切都在工作并接收数据)。

HTML 5 & Javascript 将是完美的,你应该研究一下。

于 2012-08-05T20:53:25.563 回答