2017-05-28 11 views
0

ドロップダウンリストとファイルをアップロードするフォームを作成しました。ドロップダウンリストの値はデータベースから取り込まれます。このフォームのアクションファイルは、データベースを更新してファイルをデータベースにアップロードするadd.phpファイルです。私は選択名 "to_user"を持つドロップダウンリストからユーザが選択したオプションからデータベースを更新し、データベースのその行については、選択されたオプション値に対応するファイルがアップロードされます。私はこのSQLクエリをadd.phpファイルで使用しています:phpファイルのSQLクエリでドロップダウンの選択されたオプション値を使用するには?

mysql_query(" UPDATE TABLE2 SET COL6=('$filename') WHERE COL1=$_POST['to_user'] "); 

私はエラーが発生しています。私は何をすべきか? エラー: 解析エラー:ライン21

に/Applications/XAMPP/xamppfiles/htdocs/add.phpの構文エラー、予期しない ''(T_ENCAPSED_AND_WHITESPACE)、期待識別子(T_STRING)または可変(T_VARIABLE)または番号(T_NUM_STRING)

add.php

index.php - webpage which has the drop down list and file uploading option

add.php- action file of the form created in index.php file

のindex.php

<!DOCTYPE html> 
<html> 
<head> 
<title>Sch </title> 
<meta charset="utf-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1”> 
<link rel="stylesheet" href="https://www.w3schools.com/tags/tag_select.asp"> 
<link rel = "stylesheet" href="custom.css"> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> 

<style> 


div.container { 
    margin: 20px 0 20px 0; 
    padding: 20px; 
} 
div.space { 
    margin: 2px 0 2px 0; 
    padding: 1px; 
} 
div.space1 { 
    margin: 2px 0 2px 0; 
    padding: 1px; 
} 
div.space2 { 
    margin: 2px 0 2px 0; 
    padding: 2px; 
} 

div.space3 { 
    margin: 2px 0 2px 0; 
    padding: 2px; 
} 

div.space4 { 
    margin: 2px 0 2px 0; 
    padding: 2px; 
} 

div.space5 { 
    margin: 10px 0 15px 0; 
    padding: 2px; 
} 


</style> 
</head> 
<body> 


<div class="container"> 
<h2>Select the Radioactive source and upload the documents:</h2> 
</div> 


<form enctype="multipart/form-data" action="add.php" method="POST"> 

<div class="space"> 
<?php include('d2.php') ?> 

<select name="to_user" class="form-control"> 
<option value="pick">Radioactive source</option> 
<?php 
$sql = mysqli_query($con, "SELECT DISTINCT COL1 FROM TABLE2"); 
$row = mysqli_num_rows($sql); 
while ($row = mysqli_fetch_array($sql)) 
{ 
echo "<option value='". $row['COL1'] ."'>" .$row['COL1'] ."</option>" ; 
} 
?> 
</select> 
</div> 

<div class="space1"> 
<p> 
Upload NOC file :<br> 
<input type="file" name="datafile1" size="40"> 
</p> </div> 

<div class="space2"> 
<p> 
Upload LT file :<br> 
<input type="file" name="datafile2" size="40"> 
</p> </div> 


<div class="space3"> 
<p> 
Upload Import Noc file :<br> 
<input type="file" name="datafile3" size="40"> 
</p> </div> 

<div class="space4"> 
<p> 
Upload Photo Inventory file :<br> 
<input type="file" name="datafile4" size="40"> 
</p> 
</div> 

<div class="space5"> 
<input type="submit" value=Submit 
</div> 
</form> 

<div class="background"> 
<div class="transbox"> 

</body> 
<footer>done </footer> </html> 

<?php include('index2.php') ?> 
<?php 

$file1=($_FILES['datafile1']['name']); 
$file_size1 = $_FILES['datafile1']['size']; 

$file2=($_FILES['datafile2']['name']); 
$file_size2 = $_FILES['datafile2']['size']; 

$file3=($_FILES['datafile3']['name']); 
$file_size3 = $_FILES['datafile3']['size']; 

$file4=($_FILES['datafile4']['name']); 
$file_size4 = $_FILES['datafile4']['size']; 

mysql_connect("localhost", "root", "") or die(mysql_error()) ; 
mysql_select_db("CSV_DB") or die(mysql_error()) ; 

if($file_size1 >0) 
{ 
mysql_query("UPDATE Table2 SET COL6=('$file1') WHERE COL1=$_POST['to_user']")or die('Error, query failed'); 
} 
if($file_size2 >0) 
{ 
mysql_query("UPDATE Table2 SET COL7=('$file2') WHERE COL1=$_POST['to_user']")or die('Error, query failed'); 
} 
if($file_size3 >0) 
{ 
mysql_query("UPDATE Table2 SET COL8=('$file3') WHERE COL1=$_POST['to_user']")or die('Error, query failed'); 
} 
if($file_size4 >0) 
{ 
mysql_query("UPDATE Table2 SET COL9=('$file4') WHERE COL1=$_POST['to_user']")or die('Error, query failed'); 
} 

echo "<br>File $file1 uploaded<br>"; 
echo "<br>File $file2 uploaded<br>"; 
echo "<br>File $file3 uploaded<br>"; 
echo "<br>File $file4 uploaded<br>"; 

?> 
+0

は、なぜあなたは$ファイル名に丸括弧を使用していますか? 私は2つのsuggerencesを持っています: まず、mysqliを使用して、mysqlは推奨されません。 2番目:mysql_error()関数を使用してエラーの理由をチェックします。 –

+1

質問に関連するすべてのコードを表示し、エラーの内容を特定してください。画像内のコードはコピーできません。私たちは2つの追加ソースを開いて、質問自体に単純に利用可能なものを読み込まなければなりません。 – charlietfl

+0

これは単なるテストまたは個人的なプロジェクトであると教えてください。そのコードはSQLインジェクションにオープンしているためです。そのコードをサーバーに置かないでください。最初にSQLセキュリティについて読んでください。私はあなたが問題を抱えている理由は、あなたがto_user変数を追加する方法だと思います。 – Chris

答えて

0

試してみてください。

mysql_query(" UPDATE TABLE2 SET COL6=('$filename') WHERE COL1=" . $_POST['to_user'] . " ") 

PHPは文字列内の問題を含むアレイを、あなたは$ファイル名を追加したのと同じ方法を提供します。

変数の種類に応じて、クエリに引用符を追加する必要があるかもしれませんが:

mysql_query(" UPDATE TABLE2 SET COL6=('$filename') WHERE COL1='" . $_POST['to_user'] . "' ") 
関連する問題