免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1706 | 回复: 5
打印 上一主题 下一主题

while 里的数据为什么不循环呢? // [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-03-23 10:58 |只看该作者 |倒序浏览
$text     = $_POST['text'];
        $add          = 0;
        $text     = trim ($text);
        $text     = explode("\n",$text);
        $count    = count($text)-1;
        while($add <= $count ){
                $sql1.=" Photo_id = '$text[$add]' or ";
                $add++;
        }
                $sql1=substr($sql1,0,-4);
                echo $count;
                if($count == 0){
                  $count=1;
                }
                pageft($count,5);
                $sql2=" ORDER BY Photo_date DESC LIMIT $firstcount,$displaypg";
                $sql1.=$sql2;
                echo "SELECT Photo_id,Photo_date,Photo_content,Photo_title FROM Realtime_photo WHERE $sql1";
                $sql4=$MYDB->;execute("SELECT * FROM Realtime_photo WHERE $sql1";
                //$count=1;
                while($result = $MYDB->;fetch($sql4)){

                        // echo "<br>;";
                        ?>;
                        <div align="left">;
                        <table border="1" width="739" height="33">;
                        <tr>;
                        <td width="113" height="33" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">;<? echo  $result['Photo_id'];        ?>;</td>;
                        <td width="99"  height="33" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">;<? echo  $result['Photo_date'];        ?>;</td>;
                        <td width="237" height="33" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">;<? echo  $result['Photo_title']; ?>;</td>;
                        <td width="262" height="33" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">;<? echo  $result['Photo_content']; ?>;</td>;
                        </tr>;
                        </table>;
                        </div>;
                        <?

                }
        ?>;
while 里的数据为什么不循环呢?

论坛徽章:
0
2 [报告]
发表于 2004-03-23 11:11 |只看该作者

while 里的数据为什么不循环呢? //

不循环说明没有找到任何匹配的数据记录阿,你得将你得sql语句输出看看是不是有错,或者查询条件错了阿

论坛徽章:
0
3 [报告]
发表于 2004-03-23 12:42 |只看该作者

while 里的数据为什么不循环呢? //

SELECT Photo_id,Photo_date,Photo_content,Photo_title FROM Realtime_photo WHERE Photo_id = 'cn200205280017' or Photo_id = 'cn200205280012' or Photo_id = 'cn200205280016' or Photo_id = 'ap200301010158'
在mysqlfront里执行正常。但在程序里却只能显示一个数据。为什么呢?
第一次使用php,感觉很别扭

论坛徽章:
0
4 [报告]
发表于 2004-03-23 12:53 |只看该作者

while 里的数据为什么不循环呢? //

你可以在fetch前先查看一下获取的数据记录条数阿 mysql_num_rows()

论坛徽章:
0
5 [报告]
发表于 2004-03-23 13:31 |只看该作者

while 里的数据为什么不循环呢? //

生成语句如下:
但在mysqlfront里执行正常,而使用mysql_num_rows()计算也是一条。
SELECT count(*) FROM Realtime_photo WHERE Photo_id = 'ap200301010006 ' or Photo_id = 'ap200301010007 ' or Photo_id = 'ap200301010008 ' or Photo_id = 'ap200301010009 ' or Photo_id = 'ap200301010010 ' or Photo_id = 'ap200301010011 ' or Photo_id = 'ap200301010012'
处理程序
<?
        ob_start();
        require_once('../include/class.php');
        checkSession();

?>;
<html>;

<head>;
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">;
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">;
<meta name="rogId" content="FrontPage.Editor.Document">;
<title>;下载图信息</title>;
</head>;

<body>;

<div align="left">;
  <table border="1" width="737" height="46" bordercolor="#C0C0C0" bordercolorlight="#C0C0C0" bordercolordark="#C0C0C0">;
    <tr>;
      <td width="737" height="46" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">;
        <p align="center">;<b>;<font size="6">;下载图信息</font>;</b>;<br>;
      </td>;
    </tr>;
  </table>;
</div>;
<div align="left">;
                  <table border="1" width="737" height="37" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bordercolor="#FFFFFF">;
                  <tr>;
          <td width="109" height="37" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">;ID</td>;
          <td width="103" height="37" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">;日期</td>;
          <td width="235" height="37" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">;标题</td>;
          <td width="262" height="37" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">;内容</td>;
          </tr>;
          </table>;
          </div>;
<?php
        if(!$_POST['text']){
                echo "请填写ID号";
                exit;
        }
        $text     = $_POST['text'];
        $add          = 0;
        $text     = trim ($text);
        $text     = explode("\n",$text);
        $count    = count($text)-1;
        while($add <= $count ){
                $sql1.=" Photo_id = '$text[$add]' or ";
                $add++;
        }
        //echo $count;
        if($count == 0){
                  $count=1;
        }
        pageft($count,5);
        //$sql2=" ORDER BY Photo_date DESC LIMIT $firstcount,$displaypg";
        $sql1;//.=$sql2;
        $sql1=substr($sql1,0,-4);
        echo "SELECT count(*) FROM Realtime_photo WHERE $sql1";
        $sql=$MYDB->;execute("SELECT count(*) FROM Realtime_photo WHERE $sql1";
        $total=$MYDB->;nums($sql);
        echo "<br>;";
        echo $total;
        exit;
        echo "SELECT Photo_id,Photo_date,Photo_content,Photo_title FROM Realtime_photo WHERE $sql1";
        $sql4=$MYDB->;execute("SELECT * FROM Realtime_photo WHERE $sql1";
                //$count=1;
        while($result = $MYDB->;fetch($sql4)){

                        // echo "<br>;";
                        ?>;
                        <div align="left">;
                        <table border="1" width="739" height="33">;
                        <tr>;
                        <td width="113" height="33" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">;<? echo  $result['Photo_id'];        ?>;</td>;
                        <td width="99"  height="33" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">;<? echo  $result['Photo_date'];        ?>;</td>;
                        <td width="237" height="33" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">;<? echo  $result['Photo_title']; ?>;</td>;
                        <td width="262" height="33" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">;<? echo  $result['Photo_content']; ?>;</td>;
                        </tr>;
                        </table>;
                        </div>;
                        <?

                }
        ?>;
<p align="center">;<font size="2">;<? echo $pagenav; ?>;&amp; </font>;</p>;
</body>;
</html>;

提交表单
<?
        ob_start();
        require_once('../include/class.php');
        checkSession();

?>;
<html>;
<head>;
<meta http-equiv="Content-Language" content="zh-cn">;
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">;
<title>;下载图信息</title>;
</head>;

<body>;

<form method="OST" action="../site_manage/down_pic_info.php">;
   <p>; </p>;
   <div align="center">;
    <center>;
    <table border="1" width="855" height="58">;
      <tr>;
        <td width="855" height="58" bordercolorlight="#C0C0C0" bordercolordark="#C0C0C0" bgcolor="#C0C0C0" bordercolor="#C0C0C0">;
          <p align="center">;<font size="3">;<b>;下载图信息<br>;
          </b>;</font>;</td>;
      </tr>;
    </table>;
    </center>;
   </div>;
   <p>;<b>;<font size="3">;下载实时图文资料</font>;</b>;</p>;
   <p align="center">;<textarea rows="10" name="text" cols="54">;</textarea>;</p>;
  <p align="center">;<input type="submit" value="显示信息" name="submit">;<input type="reset" value="全部重写" name="post">;</p>;
  <p>;<font size="3">;系统提示: 每个id之间使用“,”进行分割.</font>;</p>;
</form>;

</body>;

</html>;


我使用了同事的库,但感觉是库的问题。库如下
class MYDB
{
        var $host;  //连接数据库主机名
        var $user; //连接数据库用户名
        var $passWord;  //连接数据库密码
        var $selectDataBase; //        选择数据库
        var $query;  //执行sql
        var $nums; //返回行数
        var $fetch;  //返回结果集
                
        function connection($host,$user,$passWord)
        {
                $this->;host=$host;
                $this->;user=$user;
                $this->;passWord=$passWord;
                $conn=@mysql_pconnect($this->;host,$this->;user,$this->;passWord) or
die("数据库连接有误,请与管理员联系";
            return $conn;
        }
       
        function selectDB($db)
        {
                $this->;selectDataBase=@mysql_select_db($db);
                if(!$this->;selectDataBase)
                {       
                        echo "请选择数据库";
                }
                return $this->;selectDataBase;
        }
               
        function execute($sql)
        {
                $this->;query=@mysql_query($sql) or die("SQL执行错误";
                return $this->;query;
        }

        function nums($result)
        {
                $this->;nums=mysql_num_rows($result);
                if($this->;nums<=0)
                {
                        return 0;
                }
                else
                {
                        return $this->;nums;
                }
        }       

        function fetch($result)
        {
                $this->;fetch = @mysql_fetch_array($result);
                return $this->;fetch;
        }
               
}

论坛徽章:
0
6 [报告]
发表于 2004-03-23 13:39 |只看该作者

while 里的数据为什么不循环呢? //

如果mysql_num_rows()的结果是一条的话,那肯定代码就没有问题啦
还是主意你的数据库中数据吧,比如mysqlfont查询的是一个数据库,而你代码用的又是另一个数据库。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP