Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php while为每个_Php_Loops - Fatal编程技术网

php while为每个

php while为每个,php,loops,Php,Loops,我有这个密码。我不知道为什么while循环不起作用。我无法从课程数据库检索数据。请帮忙 我什么都试过了,但不知道怎么做。 if(isset($_POST['enroll'])){ $n = 0; foreach($_POST['trainings'] as $textbox){ $strpicture = $_POST['strpicture'][$n]; $stridnumber = $_POST['stridnumber'][$n]; $strfullname

我有这个密码。我不知道为什么while循环不起作用。我无法从课程数据库检索数据。请帮忙

我什么都试过了,但不知道怎么做。

if(isset($_POST['enroll'])){

$n = 0; 
foreach($_POST['trainings'] as $textbox){


    $strpicture = $_POST['strpicture'][$n];
    $stridnumber = $_POST['stridnumber'][$n];
    $strfullname = $_POST['strfullname'][$n];
    $strtraining =$textbox;



    //Add Query to Training Masterlist
    $AddQuery ="INSERT INTO  tms_ml 
    (strpicture,stridnumber,strfullname,strtraining)
   VALUES
   ('$strpicture','$stridnumber','$strfullname','$strtraining')";

    mysql_query($AddQuery, $con);



   $strcoursestat="OPEN";
   //query for training and status training


$SearchCourseQuery = 
        "SELECT strtraining 
        FROM course 
        WHERE strtraining like '%".$strtraining."%' AND strcoursestat like '%".$strcoursestat."%'";

    $resultcoursequery =mysql_query($SearchCourseQuery); 

   require("dbc.php");
   //retrieve data from Course DB
   while($record = mysql_fetch_array($resultcoursequery)){ //this is
    echo $sessionnum= $record['strsessnum'];               // the part
                                                            //not working
        };


    $countcourse=mysql_num_rows($resultcoursequery);

    if($countcourse==0){

        echo '</br>' . $strtraining . ' ' . '<b>No Available Schedule for this Training</b>' .'</br>';
    } else{
           echo '</br>' . $strtraining . ' ' . '<b>Enrolled</b>' .'</br>';
            //Add to Training Session

            $test="ab";
            $AddtoSession ="INSERT INTO trn_session(strsessnum)VALUES('$sessionnum')";
            mysql_query($AddtoSession, $con);

    }//else if count       

    $n++;


} // for each
谢谢大家的帮助

首先

php中的foreach有一个“索引”;可以这样确定:

   foreach ($items as $key => $item)
   {

   }
关键是你的索引(可以随意命名)认为这是一个值得你知道的技巧。。。i、 e您不需要使用$n变量并递增它

第二:


什么是
mysql\u fetch\u array($resultcoursequery)
返回?

您的Insert语句中有一个输入错误:

INSERT INTO  tms_ml 
(strpicture,stridnumber,strfullname,strtraining)
VALUES
('$strpicture','$stridnumber',$strfullname','$strtraining')
$strfullname
处缺少引号

INSERT INTO  tms_ml 
(strpicture,stridnumber,strfullname,strtraining)
VALUES
('$strpicture','$stridnumber','$strfullname','$strtraining')

除此之外,mysql*扩展已被弃用,您很容易受到SQL注入的攻击。考虑使用<代码> PDO < /代码>或<代码> MySqL*<代码>扩展和准备语句。p>

您需要添加结果类型:

while($record = mysql_fetch_array($resultcoursequery, MYSQL_BOTH)){
    echo $sessionnum= $record['strsessnum'];               

};

mysql_fetch_数组($resultcoursequery)将从课程数据库返回值。我将通过它将查询添加到trn_会话中。当然可以;但是你有什么结果吗?你把结果加进去了吗?没有,这是我的问题。我尝试回显$sessionnum=$record['stressnum'];但它没有任何价值。所以我相信while不起作用。是的,对不起,我只是编辑了原文,在stackoverflow发布在这里。我的原始代码有正确的引用。是的,我知道mysqli。我只需要在继续之前完成这个项目。然后尝试打印您的
$searchCourceQuery
,检查您是否返回了有效的查询,并使用
mysql\u error
检查是否有任何mysql错误。检查mysql\u fetch\u数组($resultcoursequery)实际上返回任何东西..可能它返回一个空数组?我尝试了回显,但什么也没有发生。你能确保mysql的连接是正确的吗?您可以插入第一个查询($AddQuery)yap,第一个$AddQuery和$AddtoSession都执行得很好,并将数据添加到数据库中。只是while循环不起作用。
while($record = mysql_fetch_array($resultcoursequery, MYSQL_BOTH)){
    echo $sessionnum= $record['strsessnum'];               

};