php代码,获取sql数据的更好方法
我需要从两个表中获取数据,但我知道有一种更好、更整洁的方法。这是我需要的某种加入吗 我将向您展示我的代码,您将了解我的意思:php代码,获取sql数据的更好方法,php,sql,join,Php,Sql,Join,我需要从两个表中获取数据,但我知道有一种更好、更整洁的方法。这是我需要的某种加入吗 我将向您展示我的代码,您将了解我的意思: if ($rs[firearm] != "") { $sql_result2 = mysql_query("SELECT * FROM db_firearms WHERE name='$rs[firearm]'", $db); $rs2 = mysql_fetch_array($sql_result2); $sql_result3 = mysql_que
if ($rs[firearm] != "") {
$sql_result2 = mysql_query("SELECT * FROM db_firearms WHERE name='$rs[firearm]'", $db);
$rs2 = mysql_fetch_array($sql_result2);
$sql_result3 = mysql_query("SELECT * FROM items_firearms WHERE player='$id'", $db);
$rs3 = mysql_fetch_array($sql_result3);
if ($rs3[$rs2[shortname]] < 1) {
mysql_query("UPDATE mobsters SET firearm = '' WHERE id ='$id'");
}
}
if($rs[火器]!=“”){
$sql_result2=mysql_查询(“从数据库中选择*名称='$rs[firearm]”,$db);
$rs2=mysql\u fetch\u数组($sql\u result2);
$sql_result3=mysql_查询(“从项目中选择*”,其中播放器=“$id'”,$db);
$rs3=mysql\u fetch\u数组($sql\u result3);
如果($rs3[$rs2[shortname]]]<1){
mysql_查询(“更新mobsters SET firearm=”,其中id=“$id”);
}
}
这个问题很清楚,但是您的代码示例有很多格式问题,基于您的示例代码,我无法给您直接的答案
你的例子不清楚的原因是。。你打算用什么加入这些表格?从一个表中,您通过name='$rs[firemarm]'
进行选择,从另一个表中,您通过player='$id'
进行选择。您必须提供隐藏数据,如$rs
和$id
你绝对应该阅读这些关于和。但我将尝试根据您的代码给出一个示例,使用固定语法。(请记住,我不是mysql连接专家,我没有测试这段代码,也不知道连接条件。)而且,系统结构也不清楚
据我所知,这就是你们桌子的功能,对吗
- 暴徒-用户表
- 项目\u-从用户表到项目表的链接
- db_火器-项目表
$rs
值。它将检查links表中是否有条目,并将结果与items表挂钩。但是,如果links表甚至items表可以返回多个条目,那么这就不起作用了,您需要以更智能的方式循环结果
// I can only assume, that $id is the ID of the player
$id = 2;
// Since I dont know the $rs value, then Im going to make some up
$rs = array(
'id' => 33,
'firearm' => 'famas'
);
if ($rs['firearm']) {
$result = mysql_fetch_array(mysql_query("SELECT ifa.*, dbfa.* FROM `items_firearms` AS `ifa` LEFT JOIN `db_firearms` AS `dbfa` ON `ifa.shortname` = `dbfa.shortname` WHERE `ifa.player` = '$id'"));
if ($result['id']) {
mysql_query("UPDATE `mobsters` SET `firearm` = '' WHERE `id` = '$id'", $db);
}
}
很明显,您是PHP和mysql新手。。所以我认为你应该修改你的问题,谈谈你更高的目标。简单地说一下,你正在构建什么样的应用程序。。?您想用mysql查询做什么。。?也许可以提供mysql表的表结构。。?我相信,您的问题投票将恢复正常,我们也可以更好地帮助您
注释
- 您必须引用以下类型的变量:
->$rs[firemarm]
$rs['firemarm']
- 如果你想检查你的$rs['firearm']是否等于某物,那么有一个比
。最简单的是$rs[firearm]更好的方法“”
,但在所有错误报告模式下,都会生成一条通知消息。您可以使用and,但请记住,它检查变量是否已设置。。意思是,即使它是假的,那么它已经被设置好了。对未定义和空变量的响应相同,没有任何消息if($rs['firemarm']){echo'foo';}
- 另外,
的意思是“
,所以如果你甚至需要使用NULL
,那么就改用”
,这样更简洁了NULL
- 我强烈建议使用mysql类。你可以从中了解这个想法背后的基本原理。这会让事情变得更容易。此外,mysql类是处理动态应用程序时必须具备的
没有意义..是否要检查该值是否为空?然后(简单):if($rs3[$rs2[shortname]]<1){..
和一个非常严格的标准:if(!$rs3[$rs2[shortname]]){..
if(empty($rs3[$rs2[shortname]]){..
- 您还必须引用sql查询,请参见上面的示例
- 最后一个mysql查询是否缺少$db