1

このコードは私のコードのループにあります。ループは、見つかったメンバーごとに1つの送信ボタンを作成します。各ボタンにメンバー名を保存する必要があります。そのボタンがクリックされたときに投稿を通じて送信できるようにするためです。これが投稿で可能かどうかはわかりませんが、URLでそれを行う方法を試していました。誰かがこれを行う方法を知っていますか?

<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

OK、他のすべてが正常に機能していて、データを取得していると仮定します。

これを変える:

<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 に答える