Php 在mysql WHERE子句中传递数组
我想做的是在WHERE子句中传递一个数组$nameofcompanies,它需要返回很多结果,更具体地说,它将从$nameofcompanies的每个索引返回结果,我是这样做的,但它不会产生$results变量Php 在mysql WHERE子句中传递数组,php,arrays,database,Php,Arrays,Database,我想做的是在WHERE子句中传递一个数组$nameofcompanies,它需要返回很多结果,更具体地说,它将从$nameofcompanies的每个索引返回结果,我是这样做的,但它不会产生$results变量 $j=0; for ($i=0 ; $i<count($nameofcompanies);$i++){ $sql = "SELECT $feature_eps,NEXT_EPS,QUARTER,YEAR FROM `raja_table` WHERE SYMBOL_COD
$j=0;
for ($i=0 ; $i<count($nameofcompanies);$i++){
$sql = "SELECT $feature_eps,NEXT_EPS,QUARTER,YEAR FROM `raja_table` WHERE SYMBOL_CODE= '$nameofcompanies[$i]' AND YEAR >= '$FromYear' AND YEAR <= '$ToYear' ORDER BY QUARTER ASC";
$results = mysqli_query($conn, $sql);
if (mysqli_num_rows ($results) > 0) {
while($row = mysqli_fetch_assoc($results)) {
$NEXT_EPS_value[$j]=$row['NEXT_EPS'];// NEXT_EPS,NEXT_EPS_VALUES are all the col of database table.
$EPS_value[$j]=$row['EPS'];
$quarter_eps[$j]=$row['QUARTER'];
$year[$j]=$row['YEAR'];
echo $EPS_value[$j]." ".$quarter_eps[$j]." ".$NEXT_EPS_value[$j]."<br>";
$j++;
}
}
else {
echo "Not in loop";
}
$j=0;
对于($i=0;$i 0){
while($row=mysqli\u fetch\u assoc($results)){
$NEXT_EPS_value[$j]=$row['NEXT_EPS'];//NEXT_EPS,NEXT_EPS_值都是数据库表的列。
$EPS_值[$j]=$row['EPS'];
$quarter_eps[$j]=$row['quarter'];
$year[$j]=$row['year'];
回显$EPS_值[$j]。“.$quarter_EPS[$j]。”。$NEXT_EPS_值[$j]。“
”;
$j++;
}
}
否则{
回声“不在循环中”;
}
它总是返回“不在循环中”。当我给出特定公司的名称时,代码运行平稳并返回结果。
我遵循的第二种方法:
我存储数组$nameofcompanies的当前索引,然后将该变量传递到WHERE子句中,但这不起作用。尝试使用
SYMBOL\u code='{$nameofcompanies[$I]}'
。您的代码在结尾处遗漏了一个花括号(对于for
循环)。这是复制时的错误@syck@syck,这个“{$nameofcompanies[$i]}”不起作用,我试着祝你好运;将来一定要保持开放的心态,一定要感谢别人的帮助。