由于某些原因,我陷入了以下不会进入while循环的代码:
<?php
// get All data from company and set into table
if(!isset($_SESSION)){
session_start();
}
?>
<?php
$user_id1="";
if (isset($_SESSION['user_id']))
{$user_id1=$_SESSION['user_id'];}
?>
<script type="text/javascript" language="javascript">
var $j = jQuery.noConflict();
</script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="js/plugins/jquery.spincrement.js"></script>
<div id="container" class="row">
<div class="col-sm-8">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">Trending Stocks List</h3>
</div> </div>
<ul class="grid">
<?php
include 'db.php';
$json = "";
//$json=array();
$con=GetMyConnection();
// check for sell if not holding any stocks
$comp_sell_id=array();
$query_2="select distinct(comp_id) from tbl_buy_sell_share where (reedim_status!='y' or reedim_status is null) and user_id='$user_id1'";
$retval = mysql_query( $query_2, $con );
if(! $retval )
{
die('Could not get data: ' . mysql_error());
}
$i=0;
while($row = mysql_fetch_assoc($retval))
{
$comp_sell_id[$i]=$row['comp_id'];
$i++;
}
//$queryt="SELECT id_com_manual,current_price,image_path,fb,twitter,instagram,profile_id,(current_price - close_price) as profit FROM tbl_company_manual where status='1' and //profile_id!='' ORDER BY profit desc company_name asc limit 40";
$queryt="SELECT id_com_manual,company_name,min_price,max_price,close_price,image_path,market_cap,profile_id,current_price,fb,twitter,instagram,ABS(current_price - close_price) as profit FROM tbl_company_manual where status='1' and profile_id!='' ORDER BY profit DESC,company_name ASC limit 40";
// get the data from database
$retval = mysql_query( $queryt, $con );
if(! $retval )
{
die('Could not get data: ' . mysql_error());
}
$countrow=0;
while($row = mysql_fetch_assoc($retval))
{
$comp_id=$row['id_com_manual'];
$countrow++;
$actualprices = ($row['current_price']);
$pr = ($row['profit']);
$closeprice = ($row['close_price']);
$imagepath = ($row['image_path']);
$fb = ($row['fb']);
$twitter = ($row['twitter']);
$insta = ($row['instagram']);
当我回显它时, retval
返回一个资源ID,所以我知道db已经连接并且正在向fetch_assoc函数发送一些值。我尝试用fetch_array替换该函数,但这也不起作用。此外,我在使用&#39;或者死亡时看不到任何错误。 php的功能。
我已经尝试将retval重命名为不同的变量,并且还使用mysqli无济于事。有什么想法吗?
答案 0 :(得分:1)
所以你有这个:
while($row = mysql_fetch_assoc($retval))
是否输入循环与JavaScript,jQuery,代码编译或PHP版本完全无关。 while loop的工作原理如下:
while (expr) statement
while语句的含义很简单。它告诉PHP 执行 反复嵌套语句,只要while表达式 评估为
TRUE
。每次检查表达式的值 循环的开始,所以即使这个值在期间发生变化 执行嵌套语句,直到执行才会停止 迭代的结束(每次PHP运行中的语句 循环是一次迭代)。有时,如果while表达式计算 从一开始到FALSE
,嵌套的陈述甚至没有 运行一次。
由于您的expr
是mysql_fetch_assoc():
返回值
返回与。对应的字符串关联数组 获取行,如果没有更多行,则 FALSE 。
...会发生什么是您的SQL查询不返回任何行。
你现在可以忘记PHP并启动你最喜欢的MySQL客户端(MySQL Workbench,HeidiSQL,等等)。在那里尝试你的SQL代码,直到它按预期工作。