我对HTML和CSS的了解非常好,但是对于PHP / SQL我直到上周才知道〜(开发了多个HTML / CSS专用网站)总结:聘请经验丰富开发网站以前的商业合作伙伴(我信任这个家伙!)...网站一开始看起来很棒(我看了好几次,但从来没有几个小时)......我付了我的前合作伙伴的工作...... 。最近有时间真正真正仔细检查网站几个小时....发现了很多错误....合作伙伴没有回应我的帮助请求....我必须学习PHP自己修复这些错误: )
以下是其中一个问题:我需要从一个名为“stats”的SQL数据库中检索一个值(来自所有用户都拥有的变量“财富”),以确定对于任何给定用户,财富'是(< 1)或(> = 1),但我似乎无法检索此值。如果财富< 1,执行 X ,但如果财富> = 1,请执行 Y 。一切正常,除了 Y 执行任何财富价值(包括0和负数)。我试图通过声明一个全局变量$ stats9999(我也尝试过这个本地变量)来解决这个问题,它从SQL数据库中获取值,但这就是问题的起点。这是php代码:
<?php session_start();
if ((($_SESSION['role']) != SHA1('user')) && (($_SESSION['status']) != SHA1('active')))
{
header( 'Location: index.php' ) ;
session_destroy();
} else
include 'connect.php' ; //Connects to SQL database just fine
$_SESSION['fname'];
$_SESSION['login_id'];
$_SESSION['user'];
$stats9999=mysql_fetch_assoc(mysql_query("SELECT wealth FROM stats WHERE login_id = '"
. mysql_real_escape_string($_SESSION['login_id']) . "'")); //Global $stats9999
if {.....} //Several if...else if statements in a row but no problems here as far as I
//can tell, one of the problems is in next series of lines of code
else if ((($_POST['hidden'] ) == 'Function') && (($stats9999) == 0)) {
$message = 'Text1';
echo "<SCRIPT>
alert('$message');
location = 'profile.php';
</SCRIPT>";
}
else if ((($_POST['hidden'] ) == 'Function') && (($stats9999) != 0)) {
$message = 'Text2';
echo "<SCRIPT>
alert('$message');
location = 'profile.php';
</SCRIPT>";
}
如果我不尝试通过$ stats9999来计算“财富”,浏览器会成功识别“功能”,并且网站的行为也会相应。但是,问题是$ stats9999似乎没有得到承认。我假设浏览器不知道“看到/识别”我在代码开头附近查询的SQL数据库和/或数据库条目和/或没有检索(“获取”)我想要的条目(我'我确定由于我的代码中的错误)。作为实验,我用($ _SESSION ['user']!=“”)和($ _SESSION ['user'] ==“”)替换了($ stats9999!= 0)和($ stats9999 == 0) 。代码“看到/识别”这些$ _SESSION值为不等于“”的字符串,并且网站以适当的方式运行。这加强了我的信念,“统计数据”数据库中的具体条目没有被“看到/认可”。
我还测试了$ stats9999,试图在警告框中回应'$ stats9999'(加上这个名字的变体,想知道这是否有所不同,但我认为没有),但是在许多变化中都有各种不必要的结果,包括(a)页面崩溃(b)空白警报框(c)资源ID#2。使用上面编写的代码,网站崩溃了。
我非常感谢任何帮助,并乐意澄清我所做的任何令人困惑的陈述....谢谢!!
答案 0 :(得分:0)
mysql_fetch_assoc
返回一个关联数组,其中键是select
查询中的列名。您正在尝试使用$stats9999
,就好像它是包含该列的标量变量一样。你需要写:
$wealth = $stats9999['wealth'];
然后您可以在$wealth
语句中使用if
。