while循环未编译(PHP V 5.3.8)

时间:2016-06-22 18:47:52

标签: php mysql

由于某些原因,我陷入了以下不会进入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无济于事。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

所以你有这个:

while($row = mysql_fetch_assoc($retval))

是否输入循环与JavaScript,jQuery,代码编译或PHP版本完全无关。 while loop的工作原理如下:

while (expr)
    statement
     

while语句的含义很简单。它告诉PHP 执行   反复嵌套语句,只要while表达式   评估为TRUE 。每次检查表达式的值   循环的开始,所以即使这个值在期间发生变化   执行嵌套语句,直到执行才会停止   迭代的结束(每次PHP运行中的语句   循环是一次迭代)。有时,如果while表达式计算   从一开始到FALSE,嵌套的陈述甚至没有   运行一次

由于您的exprmysql_fetch_assoc()

  

返回值

     

返回与。对应的字符串关联数组   获取行,如果没有更多行,则 FALSE

...会发生什么是您的SQL查询不返回任何行。

你现在可以忘记PHP并启动你最喜欢的MySQL客户端(MySQL Workbench,HeidiSQL,等等)。在那里尝试你的SQL代码,直到它按预期工作。