2012-02-09 5 views
0

私は、MySQLクエリから受け取った値を使用しようとしていますが、それは動作しません。構文エラーが発生しましたが、Insert Queryが正しいです。複数のクエリは、1つのPHPファイル内の前のクエリの結果セットを使用します。

selectクエリは、チェックする量を返し、プログラムは挿入クエリを実行する必要があります。エラーが唯一のINSERTクエリであると仮定すると

<?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'; 
?> 
+2

エラーは何ですか? –

+0

SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして正しい構文を確認してください。 '3行目にあります。 –

+0

実行前に$ string2をエコーし​​てから、エラーなくmysqlにコピー&ペーストできますか? – FreudianSlip

答えて

1

...

あなたのINSERTクエリは、必要なスペースが欠落しています。

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') 
+0

私がmysqlを実行すると、クエリは正常に動作しています。私は実際には、2つのクエリのあとにお互いをやろうとしているときに間違いがあります。 –

+0

@JimmyGeers複数のクエリを実行するようにMySQLを設定しましたか? –

+0

@ JimmyGeers接続文字列に 'allowMultiQueries = true'を追加してみてください。 –

関連する問題