【问题标题】:multiple query use resultset of previous query in one php file多个查询在一个 php 文件中使用先前查询的结果集
【发布时间】:2012-02-09 13:50:22
【问题描述】:

我正在尝试使用从 MySQL 查询中收到的值,然后进行插入,但它不起作用。我收到语法错误,但插入查询是正确的。

选择查询返回一个我正在检查的金额,然后程序应该执行插入查询。

    <?php
require 'header.php';

$resID = mysql_real_escape_string($_POST['resID']);
$materialen_id = mysql_real_escape_string($_POST['materialen_id']);
$aantal = mysql_real_escape_string($_POST['aantal']);
$effectief_gebruikt = mysql_real_escape_string($_POST['effectief_gebruikt']);
$opmerking = mysql_real_escape_string($_POST['opmerking']);
//$datum_van = date('d-m-Y', $_POST['datum_van']);
//$datum_tot = date('d-m-Y', $_POST['datum_tot']);
$datum_van = $_POST['datum_van'];
$datum_tot = $_POST['datum_tot'];


$sql = "SELECT `aantal_beschikbaar` 
        FROM `materialen` 
        WHERE `id` = $materialen_id";
        
$result = mysql_query($sql) or die(mysql_error());

while ($row = mysql_fetch_array($result))
{
    $tot = $row['aantal_beschikbaar'];
    echo 'totaal: ' . $tot;
}



$sql2 = "SELECT `aantal` FROM `materialen_per_reservatie`
        WHERE `materialen_id` = $materialen_id";  
$result2 = mysql_query($sql2) or die(mysql_error());

while ($row = mysql_fetch_array($result2))
{
    //$aant = $row['aantal'];
    //echo $aant
    echo $row['aantal'];
}

$besch = ($tot - $aant);
echo 'beschikbaar: ' . $besch;



/*$sql3 = "SELECT * FROM `materialen_per_reservatie`
        WHERE `reservaties_id` = $resID
        AND   `materialen_id` = $materialen_id";
$result3 = mysql_query($sql3) or die(mysql_error());*/

if($besch > $aantal){



        $string2 = "INSERT INTO `materialen_per_reservatie`(`reservaties_id`, `materialen_id`, `aantal`, `effectief_gebruikt`, `opmerking`, `datum_van`, `datum_tot`) VALUES ($resID, $materialen_id, $aantal, $effectief_gebruikt, '$opmerking', '$datum_van', '$datum_tot')";
        mysql_query($string2) or die(mysql_error());  

        
}      
  
require 'footer.php';
?>

【问题讨论】:

  • 能否在$string2执行前回显它,然后复制粘贴到mysql中不出错?
  • 您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以获取在第 3 行的 '' 附近使用的正确语法
  • echo 'string: ' 。 $string2;不打印任何东西
  • @JimmyGeers 你测试过if 语句if($besch &gt; $aantal){ 吗?当我在键盘中运行您的代码时,它会回显$string2codepad.org/x1mim4Ot

标签: php mysql sql database phpmyadmin


【解决方案1】:

假设错误仅在插入查询上...

您的插入查询缺少所需的空格:

INSERT INTO `materialen_per_reservatie` (`reservaties_id`, `materialen_id`, `aantal`, `effectief_gebruikt`, `opmerking`, `datum_van`, `datum_tot`) VALUES ($resID, $materialen_id, $aantal, $effectief_gebruikt, '$opmerking', '$datum_van', '$datum_tot')

materialen_per_reservatie 之后添加一个空格。而且我不确定你是否需要所有的引号。

INSERT INTO materialen_per_reservatie (reservaties_id, materialen_id, aantal, effectief_gebruikt, opmerking, datum_van, datum_tot) VALUES ($resID, $materialen_id, $aantal, $effectief_gebruikt, '$opmerking', '$datum_van', '$datum_tot')

【讨论】:

  • 如果我在 mysql 中运行查询,它运行良好。当我尝试做 2 个查询时,我真的有一个错误。
  • @JimmyGeers 您是否已将 MySQL 设置为运行多个查询?
  • @JimmyGeers 尝试将allowMultiQueries=true 添加到您的连接字符串中。
  • 适用于安卓应用。数据通过 HTTP post 从 java 发送。我想我不能像你说的那样。
  • @JimmyGeers 别担心。我认为多个查询不是问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-05
  • 1970-01-01
  • 2016-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多