首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP+MYSQL编程 » [原创]这个语句有问题吗?  


  作者:mikesumake
  注册时间:2005-01-07
  主题/回复:8/3
  积分:443
  等级:★★☆(五级)
  称号:略有小成

  zsy8764@126.com
  未提供
  www.

 

 发表:2005-01-09 05:03:23 阅读 2252 次 回复 3 次 得分1  |   字号 字色
[原创]这个语句有问题吗?
sql="update table_count set count=$counter";
它有问题吗?
table_count是表,set count=$counter这句是什么意思啊!
ps
bool empty ( mixed var)
这个函数给讲一下了,php手册解释搞不清!
if(empty($a))
不给$a赋值,他的返回是真还是假啊!
 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2005-01-10 01:52:38  评分:1 

SQL语句没有明显问题。
如果执行有错误的话,那么就可能出在 count=$counter,修改为count='$counter'

第二个问题,关于empty函数:
----------------------------------------
bool empty ( mixed var)

如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。 

除了当变量没有置值时不产生警告之外,empty() 是 (boolean) var 的反义词
-----------------------------------------------
说的已经很明白了。当你只定义了$a而没有赋值,那么返回true.



 2#楼  
 
  回复人:mikesumake
  注册时间:2005-01-07
  主题/回复:8/3
  积分:443
  等级:★★☆(五级)
  称号:略有小成

   
 2#楼 发表于2005-01-10 04:19:54  评分:× 

<html>
<head>
<title>计数器的制作实例</title>
</head>
<body>
<center>欢迎光临</center>
<center>祝贺你成功地制作了一个基于数据库的计数器!</center><p><p>
<center>
<?php
$cn=mssql_connect("zsy","sa","sa");
mssql_select_db("test",$cn);
$sql="select count from table_count"; <- (就在这行里!)
$result=mssql_query($ssql);
$record=mssql-fetch_array($cn);
if(empty($vistited))
{
$counter=$record["count"]+1;
sql="update table_count set count='$counter'";
$result=mssql_query($sql);
}
mssql_close($cn);
switch(strlen($counteer))
{case 1:
$counter="00000".$counter;
echo "你是第$counter访问者";
break;
case 2:
$counter="0000".$counter;
echo "你是第$counter访问者";
break;
case 3:
$counter="000".$counter;
echo "你是第$counter访问者";
break;
case 4:
$counter="00".$counter;
echo "你是第$counter访问者

我在数据库test中建了表table_count
按照你的方法改了但还是不行啊!
出现了一样的错误:Parse error: parse error, unexpected '=' in D:\web\jsq.php on line 18
如果在别的地方有错误也请指出!
 3#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 3#楼 发表于2005-01-10 16:46:07  评分: 

这个代码如果你手工输入的,可能有几个笔误。如果是从程序里面直接复制过来的,那么就是程序错误拉。

没有很仔细的看,起码有下面一些错误:(语法错误)
1、$result=mssql_query($ssql);
这句最好改成: $result=mssql_query($ssql,$cn);
2、$record=mssql-fetch_array($cn);
这句错了2处。必须改成:$record=mssql_fetch_array($result); 
3、$result=mssql_query($sql);
这句最好改成: mssql_query($sql,$cn);

另外应该还有一些非语法错误:(语义错误)
1、if(empty($vistited)) 
这个$visited变量不知道从哪里来的。可能是代码没有帖完整吧。
2、if语句存在一个错误,你想,你的语句的意思应该是,如果$visited为empty,那么把计数器加一,否则什么也不做。当用户第一次访问的时候,if里面的语句执行了,整个程序运行正常,但是当$visited不empty的时候,if里面的语句不执行。也就是说,这个时候$counter变量没有初始化,到了if语句后面的switch语句,那switch(strlen($counteer))的结果肯定一直是0。你的switch语句没有判断为0的情况,也没有默认值,所以可能什么都不显示。

以上一些错误,当然这个程序还有可以优化的地方。比如你的程序中出现了4次echo "你是第$counter访问者";,其实完全没有必要出现这么多,只出现一次就行了,也就是这个样子:
--------------------
switch(strlen($counteer))
{case 1:
$counter="00000".$counter;
break;
case 2:
..............
}
echo "你是第$counter访问者";
---------------------

  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.007sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版