我对HTML和CSS的知识非常好,但是到PHP / SQL为止,我直到上周才知道0(开发多个HTML / CSS专用网站)总结:聘请了经验丰富的前业务合作伙伴(我信任这个人!)开发网站...网站最初看起来很棒(我看了好几次,但一次都没看过几个小时...)...我付了我以前的合伙人的工作费....最近有时间去真正地仔细检查网站一次达几个小时。。。发现许多错误。。。合作伙伴没有响应我的帮助请求。。。我必须自己学习PHP来修复这些错误:)

这是问题之一:我需要从一个名为“ stats”的SQL数据库中检索一个值(从所有用户拥有的变量“ wealth”作为统计信息的一部分),以确定对于任何给定用户,“ wealth”是否为( = 1),但我似乎无法检索到该值。如果财富 = 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。使用上面编写的代码,站点崩溃。

我将不胜感激任何帮助,并很乐意澄清我所作的任何令人困惑的声明。...谢谢!!

最佳答案

mysql_fetch_assoc返回一个关联数组,其中键是select查询中的列名。您试图使用$stats9999,就像它是包含列的标量变量一样。您需要写:

$wealth = $stats9999['wealth'];


然后可以在$wealth语句中使用if

09-19 23:39