我如何在我的网站上搜索这样的内容;如果访问者选择输入作为用户名,则表格仅显示他所写的用户名或身份或性别。
我想我应该添加一些东西而不是*但是icouldnt找到了。你能帮帮我吗?
foreach($db->query('SELECT * FROM uyeler ORDER BY RAND()LIMIT 20') as $row)
由于
<div class="body">
<div class="table"
<select>
<option value="id">ID</option>
<option value="user">Username</option>
<option value="sex">Sex</option>
<option value="country">Country</option>
<option value="age">Age</option>
<option value="twitter">Twitter</option>
<option value="instagram">Instagram</option>
<option value="snapchat">Snapchat</option>
</select>
<input type="text" name="searchbox">
<input type="submit" value="Search"><input type="submit" value="Refresh"></br></br>
<table align=center width="1200">
<tr>
<th>ID</th>
<th>Username</th>
<th>Sex</th>
<th>Country</th>
<th>Age</th>
<th>Twitter</th>
<th>Instagram</th>
<th>Snapchat</th>
<th>Details</th>
</tr>
<?php
foreach($db->query('SELECT * FROM uyeler ORDER BY RAND()LIMIT 20') as $row) {
echo "<tr><td>" .$row['id'] . "</td>";
echo "<td>" .$row['username'] . "</td>";
echo "<td>" .$row['sex'] . "</td>";
echo "<td>" .$row['country'] . "</td>";
echo "<td>" .$row['age'] . "</td>";
echo "<td>" .$row['twitter'] . "</td>";
echo "<td>" .$row['instagram'] . "</td>";
echo "<td>" .$row['snapchat'] . "</td>";
echo ('<td><a href="details.php?id=' .$row['id'] . '" title="Panel">Details</a></td>');
echo "</tr>";
}
?>
</table>
</div>
答案 0 :(得分:0)
如果您想要表中的所有字段,则需要*
。但是,您应该在查询结束时使用WHERE username = '{$username}'
将结果限制为仅请求的用户名。
如果有多个条件,请从$_GET
或$_POST
请求中获取密钥和值,并为WHERE {$key1} = '{$val1}' AND {$key2} = '{$val2}'
子句执行WHERE
等操作。如果所有条件都必须适用,请使用AND
,如果任何条件符合匹配条件,请使用OR
。
在将其插入查询之前,请务必清理传入的用户名请求。还要清理密钥(最好检查预定义的列表),这是在这种情况下进行SQL注入的另一个向量。