【问题标题】:Displaying one record at a time in php [duplicate]在php中一次显示一条记录[重复]
【发布时间】:2012-10-29 17:22:32
【问题描述】:

可能重复:
What does the PHP error message “Notice: Use of undefined constant” mean?

我试图在同一页面中一次显示一个(记录)问题。我在代码的开头放了一个条件来检查这是否是页面第一次加载,如果是,则显示第一条记录。否则,转到将显示第二条记录的“else”语句。每显示一条记录,计数器就会增加一 ($i++)。此外,我将所有检索到的记录保存在一个数组中,并从该数组中一次读取一个记录。 我不知道为什么会出现如下错误:

(1) 使用未定义的常量 i - 假定为 'i'

(2) 未定义索引:i

有人知道如何解决这个问题吗?

这是我的代码:

<?php

 $f_name = $_SESSION['first_name'];
 $l_name = $_SESSION['last_name'];

 $arr_rows;
 $i;

 if (!isset($_POST['next'])) 

 { //if form is not submitted,

  $command2 = "SELECT user_id FROM user_info WHERE user_info.first_name = '$f_name' 
  and user_info.last_name = '$l_name'";

  $command1 = "SELECT * FROM topics, documents WHERE topics.topic_id =documents.topic_id";  

  $i=0; // Counter for the number of documents per topic


  $userid = mysql_query($command2);
  $results = mysql_query($command1);
  $num=mysql_numrows($results);

  //////////////

  $arr_rows = array();
  while( $row = mysql_fetch_array( $results ) )
  $arr_rows[] = $row;


  $arr = mysql_fetch_row($userid);
  $id_user = $arr[0]; 

  echo $f_name;
  $relevancy = "This is the first time to load this page";


  $f1=$arr_rows[i]['topic_name'];
  $f1_topic_description=$arr_rows[i]['topic_descrip'];
  $f1_doc_content=$arr_rows[i]['doc_content'];

  ++$i;

  } 

  else 

  { //otherwise,

    $relevancy = $_POST['RadioGroup1'];

    $f1=$arr_rows[i]['topic_name'];
    $f1_topic_description=$arr_rows[i]['topic_descrip'];
    $f1_doc_content=$arr_rows[i]['doc_content'];

    ++$i;

    }
    ?>

【问题讨论】:

  • 你还没有为 else-case 初始化你的 $i。
  • 它在 if 之前初始化。
  • 当您遇到这种情况时,请尝试通读您的代码并思考您在做什么。然后你会注意到你实际上并没有调用你的变量,只是将 php 与一个未定义的常量混淆了。如果您仍然卡住,那么可以在这里提问,但自己解决问题实际上可以帮助您了解更多!

标签: php


【解决方案1】:
$f1=$arr_rows[i]['topic_name'];
$f1_topic_description=$arr_rows[i]['topic_descrip'];
$f1_doc_content=$arr_rows[i]['doc_content'];

应该是

$f1=$arr_rows[$i]['topic_name'];
$f1_topic_description=$arr_rows[$i]['topic_descrip'];
$f1_doc_content=$arr_rows[$i]['doc_content'];

您缺少变量“i”上的美元符号。

【讨论】:

    【解决方案2】:

    PHP 不会将您的变量存储到下一个请求中。

    您可以将计数器信息 ($i) 添加到会话变量、cookie 或请求参数中。否则你的 $i 将永远从零开始。

    【讨论】:

      【解决方案3】:

      当使用“i”指定数组中的索引时,您缺少 $。例如:

      $f1=$arr_rows[i]['topic_name']; $f1_topic_description=$arr_rows[i]['topic_descrip']; $f1_doc_content=$arr_rows[i]['doc_content'];

      应该读

      $f1=$arr_rows[$i]['topic_name'];
      $f1_topic_description=$arr_rows[$i]['topic_descrip'];
      $f1_doc_content=$arr_rows[$i]['doc_content'];
      

      【讨论】:

        【解决方案4】:

        您在变量名前缺少$。检查您的代码并将i 替换为$i

        【讨论】:

          【解决方案5】:

          我认为错误就在这里...将 i 替换为 $i 所以你实际上是在调用你的变量

          $f1=$arr_rows[$i]['topic_name'];
          $f1_topic_description=$arr_rows[$i]['topic_descrip'];
          $f1_doc_content=$arr_rows[$i]['doc_content'];
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-12-30
            • 2012-09-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-09-11
            相关资源
            最近更新 更多