我非常感谢你试着帮助我。 我的问题是这个脚本:
<?php include("inc/incfiles/header.inc.php"); ?>
<?php
$list_user_info = $_GET['q'];
if ($list_user_info != "") {
$get_user_info = mysql_query("SELECT * FROM users WHERE username='$list_user_info'");
$get_user_list = mysql_fetch_assoc($get_user_info);
$user_list = $get_user_list['username'];
$user_profile = "profile.php?user=".$user_list;
$profilepic_info = $get_user_list['profile_pic'];
if ($profilepic_info == "") {
$profilepic_info = "./img/avatar.png";
}
else {
$profilepic_info = "./userdata/profile_pics/".$profilepic_info;
}
if ($user_list != "") {
?>
<br>
<h2>Search</h2>
<hr color="#FF8000"></hr>
<div class="SearchList">
<br><br>
<div style="float: left;">
<a href="<?php echo $user_profile; ?>"><img src="<?php echo $profilepic_info; ?>" height="50" width="50"></a>
</div>
<?php echo "<h1>".$user_list."</h1>"; ?>
</div>
<?php
}
else {
echo "<br><h3>User was not found</h3>";
}
}
else {
echo "<br><h3>You must specify a search query</h3>";
}
?>
我正在创建一个搜索脚本,它接收mysql数据库信息并显示与搜索查询相关的结果。我的脚本是上面的,但请记住,sql连接是在extern scipt中建立的。
问题是我希望脚本首先检查用户是否在用户名行中找到了搜索查询,然后从该用户获取entre信息并显示它。如果找不到用户名查询的用户,则应尝试将搜索查询与名称行进行比较,然后使用姓氏行进行比较。如果没有显示结果,则应返回带有错误的else语句,例如“没有用户wsas发现”
您诚挚的, Victor Achton
答案 0 :(得分:1)
将查询作为Muhammet Arslan进行查询......但只计算行数会更快......
if(mysql_num_rows($get_user_info)){
//not found
}
你应该添加一个&#34;限制1&#34;最后,如果你只对一个结果感兴趣(或没有结果)。
但请阅读有关准备好的陈述 pdo.prepared-statements.php
2013年应该如何做到这一点!
答案 1 :(得分:0)
你已经这样做了,但你可以在你的sql语句中使用“AND”或“OR”来改进它。
$get_user_info = mysql_query("SELECT * FROM users WHERE username='$list_user_info' or name = '$list_user_info' or last_name = '$list_user_info'");
$get_user_list = mysql_fetch_assoc($get_user_info);
if(empty($get_user_list))
{
echo "No User was found";
}
你应该控制$ list_user_info或者你可以攻击。
答案 2 :(得分:0)
这样的东西,但你不需要3个查询。你总是可以在mysql语句中使用OR
$handle1 = mysql_query("SELECT * FROM users WHERE username = $username"); // Username
if (($row = mysql_fetch_assoc($handle1) !== false) {
// username is found
} else {
$handle2 = mysql_query("SELECT * FROM users WHERE name = $name"); // name
if (($row = mysql_fetch_assoc($handle2) !== false) {
// name is found
} else {
$handle3 = mysql_query("SELECT * FROM users WHERE lastname = $lastname"); // Last name
if (($row = mysql_fetch_assoc($handle3) !== false) {
// last name is found
} else {
// nothing found
}
}
}
答案 3 :(得分:0)
这里有一些改编自php.net的文件
连接
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
获取数据
$stmt = $dbh->prepare("SELECT * FROM users where name LIKE '%?%'");
if ($stmt->execute(array($_GET['name']))) {
while ($row = $stmt->fetch()) {
print_r($row);
}
}
剩下的就是你的编程...
做一些阅读,在不理解的情况下使用复制代码非常危险!