最後の質問はここに1週間!私はこのものから休憩を取る必要があります。私はwhileループで使用されるユーザーデータを抽出するためにクエリを実行しようとしています。最初のクエリは、$ _POSTに関係なく実行される(または実行される)デフォルトのクエリです。 2番目のクエリは、ViewAllFriendsボタンが送信されたときにのみ実行されます。ここに私が書いているものは次のとおりです。
<form action="" method="POST">
<div class="panel panel-default friends">
<div class="panel-heading">
<h3 class="panel-title"><?php echo "<h4 style='font-family:Maven Pro;'>Friends of: <a href='" . $username ."'>" . $profile_user_obj->getFirstAndLastName() . "</a></h4><hr>"; ?></h3>
<?php
global $con;
$username = $_GET['profile_username'];
//Default query limits results to 5
$query = mysqli_query($con,"SELECT * FROM users WHERE friend_array LIKE '$username,%' OR friend_array LIKE '%,$username,%' OR friend_array LIKE '%,$username' LIMIT 0,5");
//Query to run if button ViewAllFriends submitted
if(isset($_POST['ViewAllFriends'])) {
$query = mysqli_query($con,"SELECT * FROM users WHERE friend_array LIKE '$username,%' OR friend_array LIKE '%,$username,%' OR friend_array LIKE '%,$username'");
?>
<div>
<div class="panel-body">
<ul>
<?php
while ($row = mysqli_fetch_array($query)) {
$friends = $row['profile_pic'];
$friend_username = $row['username'];
?>
<li><a class="thumbnail pull-left" href="<?php echo $friend_username; ?>"><img src="<?php echo $friends; ?>" title="<?php echo $friend_username; ?>"></a></li><?php } } ?>
</ul>
<div class="clearfix"></div>
<input class="btn btn-default" type="submit" id="ViewAllFriends" name="ViewAllFriends" value="View All Friends">
</div>
</div>
</div><!-- End Panel Heading -->
</div><!-- End Panel Friends -->
</form>
今、最初のクエリは実行されません。IOWのプロファイル写真は表示されません。しかし、私はすべての友達を表示ボタンを提出すると、すべてのプロフィール写真が表示されます。私は最初のクエリをデフォルトとして実行する方法を評価する方法がわかりません。私は次のように試した:
しかし、これは2番目のクエリがユーザーアクションに依存するので、正しいロジックではないelseステートメントになります。
これについての助力は本当に感謝します。ありがとうございました!
SQLインジェクション攻撃を避けるために、クエリ内にvarsを記述するのではなく、プリペアドステートメントを使用する必要があります – jeprubio