我试图通过口袋妖怪的名字和类型显示游戏中某个宠物小精灵的数量(有两种类型正常和有光泽)我希望它只抓住一种难以解释的类型。 ..现在它正在研究这两种类型,我不知道为什么这是我的代码:/
$sql23 = "
SELECT * FROM user_pokemon
WHERE belongsto='". $_SESSION['username']."'AND (slot='1')
";
$result = mysql_query("
SELECT * FROM user_pokemon
WHERE belongsto='". $_SESSION{'username'}."'AND (slot='1')
");
while($row = mysql_fetch_array($result))
{
$sql = "SELECT * FROM pokemon WHERE name='".$row['pokemon']."'";
$result = mysql_query($sql) or die(mysql_error());
$battle_get = mysql_fetch_array($result);
$count = mysql_query("
SELECT count(*) FROM user_pokemon WHERE pokemon='".$row['pokemon']."
'AND type='".$row['type']."'
");
$count2 = mysql_fetch_array($count);
老实说,我不明白为什么它不起作用,任何帮助都会受到赞赏:)
$row['pokemon']
是宠物小精灵的名字
$row['type']
是宠物小精灵的类型(闪亮,正常,等等)
user_pokemon
表:
Field Type Null Default Comments
-----------------------------------------------------------
id int(11) No
hp int(55) No 30
pokemon varchar(50) No
belongsto varchar(50) No
exp int(50) No 500
item varchar(50) No No Item
nickname varchar(50) No No Nickname
move1 varchar(50) No Ember
move2 varchar(50) No Ember
move3 varchar(50) No Ember
move4 varchar(50) No Ember
slot int(50) No
level int(90) No 5
time_stamp timestamp No CURRENT_TIMESTAMP
gender varchar(25) No Male
type varchar(55) No Normal Type: normal/shiny etc
safari_zone int(10) No 0
答案 0 :(得分:1)
我经常在StackOverflow上看到的一件事是缺乏代码格式化。在我看来,修复这是一个很好的方法,使你的代码对自己(帮助学习)和其他人(在这里帮助你的读者)更具可读性。它还减少了水平滚动的需要,允许您在屏幕上并排放置多个编辑器。
以下是您的代码,其中包含建议的代码格式:
$sql23 = "
SELECT
*
FROM
user_pokemon
WHERE
belongsto = '{$_SESSION['username']}'
AND (slot = '1')
";
$result = mysql_query($sql23) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$sql = "
SELECT * FROM pokemon WHERE name = '{$row['pokemon']}'
";
$result = mysql_query($sql) or die(mysql_error());
$battle_get = mysql_fetch_array($result);
$count = mysql_query("
SELECT
COUNT(*)
FROM
user_pokemon
WHERE
pokemon='{$row['pokemon']}'
AND type='{$row['type']}'
");
$count2 = mysql_fetch_array($count);
}
这有助于表明您的while
缺少右括号,并且实际上并未使用变量$sql23
。另请注意,您可以在双引号字符串中使用内联数组值,方法是将它们包装在大括号中。
如评论中所述,您应该升级到PDO或mysqli。另外,如果值来自用户,请注意直接将值注入SQL,因为这可能导致SQL注入漏洞。查看查询参数化,或至少忽略,以确保您的代码是安全的。