[英]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 BY
或GROUP 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.