繁体   English   中英

没有将价值从PHP转移到echo

[英]Not transferring value from PHP to echo

php问题比什么都重要。

我有一个很奇怪的问题。 我正在从PHP发出_POST请求,该请求对我的查询有效,但是当我尝试将相同的数字包含在回显中时,它不起作用。 这是怎么回事?

我正在执行以下操作:

     $pageNumber = $_POST['pageNumber'];
     $startIndex = $pageNumber*10;
     $sqlQuery = "select * from my_table id asc limit $startIndex, 10";
     // this works    

     $string = "";   
     $fetcheddata = $mysqlConnection->query($sqlQuery); 
     if($fetcheddata!=null && $fetcheddata->num_rows>0){
             while ($row = $fetcheddata->fetch_array(MYSQLI_ASSOC)){
                     $string.="<p>".$row['id'].",".$row['first_name'].",".$row['last_name']."    </p>";                          

             }               
     }     
     // this also works when I load with different data and 
     // I know this because the data from the database is of
     // the right index which means $pageNumber IS INFACT incrementing

     echo "<div class='newData'>INFO: ".$string. "</div><div id = 'dom-target' style='display    : none'>".$pageNumber."TESTING META DATA</div>";
     // but for some reason this doesn't give me the correct
     // $pageNumber, it always gives me zero. 

当我尝试将$ pageNumber回显为html时,我的请求始终为0,尽管由于整个查询正常,该数字显然在增加,否则它将无法正确地从数据库中提取。 但它正在工作! 那为什么不能正确打印呢? 我要疯了吗?

编辑:只是为了澄清,查询正在工作,代码的最后一行不能打印出正确的$ pageNumber,即使该数字存在,我也知道这是因为查询有效。

这是php错误日志:

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using Users-Computer.local. Set the 'ServerName' directive globally to suppress this message
[Wed Feb 25 12:58:16.260705 2015] [mpm_prefork:notice] [pid 51] AH00163: Apache/2.4.9 (Unix) PHP/5.5.14 configured -- resuming normal operations
[Wed Feb 25 12:58:16.260985 2015] [core:notice] [pid 51] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'

解:

我通过使用其他$ _POST('newVariable')找到了解决此问题的方法。 由于某种原因,当我在查询之前将$ sql查询用于任何内容时,php变量丢失了它的值。 我不知道为什么这样做,但是解决方案是只对每个变量使用一次。 我也看到这个问题也发表在其他几个地方。

具体来说,我添加了echo "<div class = 'metadata'>".$sqlQuery."</div>"; 在定义$sqlQuery之后。 在此之前,该查询有效,而在此之后,该查询无效。 我仍然不知道为什么。

编辑:

之所以不显示页码,是因为style='display : none'

  • 删除它,或执行style='display : block'

inline或其他您要使用的CSS方法。

我注意到的另一件事是错误日志中的“ ajax”一词。

您需要证明,问题也可能存在。


原始帖子的原始答案:

您同时缺少$和分号

_POST['pageNumber']

改成

$_POST['pageNumber'];

这是一个超级全球

然后这条线

$sqlQuery = "select * from my_table id asc limit $startIndex, 10";
                                    ^^ ^^^

您可能正在尝试使用asc进行ORDER BYGROUP BY

因此,很难说出要排序或分组的列。

请尝试:

select * from my_table group by id asc

要么

select * from my_table order by id asc

ORDER | GROUP BY column ASC

如果您不是要订购或分组,请从查询中删除asc

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
      [HIGH_PRIORITY]
      [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr ...]
    [FROM table_references
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ...]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]

按照


另外,使用以下命令检查查询中的错误:

此行也看起来不正确:

$sqlQuery = "select * from my_table id asc limit $startIndex, 10";

应该:

$sqlQuery = "select * from my_table id asc limit " . $startIndex . ", 10";

我会尝试这个,然后看看我会从中得到哪些价值。

$pageNumber = $_POST['pageNumber'];
$startIndex = $pageNumber*10;
$sqlQuery = "select * from my_table id asc limit $startIndex, 10";

$string = "";   
$fetcheddata = $mysqlConnection->query($sqlQuery); 
if($fetcheddata!=null && $fetcheddata->num_rows>0){
        while ($row = $fetcheddata->fetch_array(MYSQLI_ASSOC)){
                $string.="<p>".$row['id'].",".$row['first_name'].",".$row['last_name']."    </p>";                          
         }               
}

echo "<div class='newData'>INFO: ".$string. "</div><div id = 'dom-target' style='display    : none'>".$pageNumber." OR ". $_POST['pageNumber'] ." OR ". $startIndex/10 . " TESTING META DATA</div>";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM