Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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
Can';t使用PHP在MySQL中插入所有数据_Php_For Loop_While Loop - Fatal编程技术网

Can';t使用PHP在MySQL中插入所有数据

Can';t使用PHP在MySQL中插入所有数据,php,for-loop,while-loop,Php,For Loop,While Loop,标题并不能肯定地透露整个事情。 现在我正在开发一个实验室软件。在这里,所有单独的测试名称及其详细信息都在一个表中(比如名称“test_info”)&为这些测试生成的所有账单都在另一个表中(比如名称“bill_info”)&当插入测试报告时,我将其存储在另一个表中(比如名称“rpt_info”) 有几个组测试是测试的集合。我创建了一个名为“group”的列,如果该值为null,则它们不在任何组测试下&如果它们是值(即测试名称),则表示该测试在该组测试下 现在,看看是什么迫使我在这里提出一个问题。

标题并不能肯定地透露整个事情。 现在我正在开发一个实验室软件。在这里,所有单独的测试名称及其详细信息都在一个表中(比如名称“test_info”)&为这些测试生成的所有账单都在另一个表中(比如名称“bill_info”)&当插入测试报告时,我将其存储在另一个表中(比如名称“rpt_info”)

有几个组测试是测试的集合。我创建了一个名为“group”的列,如果该值为null,则它们不在任何组测试下&如果它们是值(即测试名称),则表示该测试在该组测试下

现在,看看是什么迫使我在这里提出一个问题。 当输入测试报告的值时,我只是像这样调用它们-

           <?php
          $gtsql = "SELECT * FROM `bill_info` where `test_id` = '" . $pid."' and `group`='y'";
        $reslt = mysql_query($gtsql);
        while ($data = mysql_fetch_assoc($reslt))
        {
            $test_inf=  "SELECT * FROM `test_info` where `group` = '". $data["pr_name"]."'";
            $test_qr=  mysql_query($test_inf);
             $k = 1;
             while ($test = mysql_fetch_assoc($test_qr)) {

            echo '<tr><td width="80"></td><td align="left"> <input name="name" id="name" style="border:none; background: transparent;" value="' .  $test["name"] . '" readonly/></td><td width="144" align="left"> <INPUT name="result" id="result" /></td><td width="125" align="left"><input name="unit" id="unit" style="border:none; background: transparent;" value="' . $test["unit"] . '" readonly/></td><td align="left">'; 
$ref= $test["ref_range"];
$ref2= $test["ref_range2"];
$ref3= $test["ref_range3"];
if($ref=!"")
{ echo '<br/><input name="ref_range" id="ref_range" style="border:none; background: transparent;" value="'.$test["ref_range"].'" readonly/>';} 
if ($ref2=!"")
{ echo '<br/><input name="ref_range2" id="ref_range2" style="border:none; background: transparent;" value="'.$test["ref_range2"].'" readonly/>';} else { echo "";}
if ($ref3=!"")
{ echo '<br/><input name="ref_range3" id="ref_range3" style="border:none; background: transparent;" value="'.$test["ref_range3"].'" readonly/>';} else { echo "";}; 

'
</td></tr>
';
            $k++;
             }
    }


         ?>
有人能帮我吗

这是我的第一个问题&也许我不能向你们所有人解释清楚。如果你想更清楚这个问题,请随时问我问题。

1)你的
$num=$datas['SUM(num)'不存在。试一试

$prsql = "SELECT SUM(num) as SumNum FROM `sell` where `test_id`='".$_POST['test_id']."'";
您可以使用
$num=$datas['SumNum']获得它

2)
$str\u tst
是一个简单的字符串,您不会告诉它执行查询。您可以使用
mysql\u查询($str\u tst)或die mysql\u error()执行它。使用

while ($i < $num)
  {
$str_tst = "INSERT INTO `rpt_info` (`pt_id`,`test_id`,`result`,`name`,`unit`,`ref_range`, `ref_range2`, `ref_range3`, `rcv_date`, `dlv_date`, `age`, `test_cat`)VALUES ( '" . $_POST['pt_id'] . "', '" . $_POST['test_id'] . "', '" . $_POST['result'] . "', '" . $_POST['name'] . "', '" . $_POST['unit'] . "', '" . $_POST['ref_range'] . "', '" . $_POST['ref_range2'] . "', '" . $_POST['ref_range3'] . "', '" . $_POST['rcv_date']. "', '" . $_POST['dlv_date'] . "', '" . $_POST['pt_age'] . "', '" .  $_POST['test_cat']. "')";
mysql_query($str_tst) or die mysql_error(); // Each loop execute the query
 $i++;

  }
while($i<$num)
{
“PTU-POST[“pt-U-id”、“测试测试的测试的id号”、“结果”、“结果”、“名称”、“单位”、“名称”、“单位”、“单位”、“参考的范围”、“参考的测距范围”、“参考的测距2”、“参考的测距范围2”、“参考的测距范围2”、“参考的测距范围3”、“参考的测距范围3”、“rcv-Rang3”、“rcv-日期”、“数据日期”、“日期”、“年龄”、“年龄”、“测试的猫猫猫”等)价值值值值(这些)值值值(这些)值值(““““““,””,“邮政公司”的邮政[“若若若若将[“邮局[“中国邮政[“这一部分[“这一部分[“这两两名”若若若若若若”将将将将把把把把把把把把把把这两名”这两部分[“鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于“这两个因素,这两个因素,这两个.“,”“,”,“$发布['ref_range2']。”,“$发布['ref_range3']。”,“$发布['rcv_date']。”,“$发布['dlv_date']。”,“$发布['pt_age']。”,“$发布['test_cat']。”)”;
mysql_query($str_tst)或die mysql_error();//每个循环执行查询
$i++;
}

3) 您的
while
循环不正确。我认为您缺少一个insert。例如,您从1开始到10,因此您插入了9行,因为您使用的是
代码中没有insert查询?发布不工作的部分,而不是正在工作的部分您没有发布
insert
查询或错误Message抱歉,我正在更新我的问题,除了您不应该再使用mysql_*函数(使用mysqli或PDO,您正在创建插入查询,但您没有执行它。1)但是当我执行echo$num时,它显示了正确的值:/Ok,我现在正在尝试您的方法。最重要的是,您没有执行插入查询,因此这不应该起作用……请小心,您缺少了一个插入。
$I
应该开始0或将
使用`或死亡mysql\u错误()`在你的查询结束时,看看你有什么错误3)我也有这样的想法。但不幸的是,每次它只插入一行,不管是5行还是6行……看看你的循环。你得到一个字符串,然后$I++,然后用新查询编辑同一个变量,然后它再次对它进行edeting 5-6次。我说你应该在循环中插入,而不是超出IDE
while ($i < $num)
  {
$str_tst = "INSERT INTO `rpt_info` (`pt_id`,`test_id`,`result`,`name`,`unit`,`ref_range`, `ref_range2`, `ref_range3`, `rcv_date`, `dlv_date`, `age`, `test_cat`)VALUES ( '" . $_POST['pt_id'] . "', '" . $_POST['test_id'] . "', '" . $_POST['result'] . "', '" . $_POST['name'] . "', '" . $_POST['unit'] . "', '" . $_POST['ref_range'] . "', '" . $_POST['ref_range2'] . "', '" . $_POST['ref_range3'] . "', '" . $_POST['rcv_date']. "', '" . $_POST['dlv_date'] . "', '" . $_POST['pt_age'] . "', '" .  $_POST['test_cat']. "')";
mysql_query($str_tst) or die mysql_error(); // Each loop execute the query
 $i++;

  }