首页 文章

如何在php文件的SQL查询中使用下拉列表的选定选项值? [重复]

提问于
浏览
0

这个问题在这里已有答案:

我创建了一个包含下拉列表和上传文件的表单 . 下拉列表值从数据库填充 . 此表单的操作文件是add.php文件,该文件更新数据库并在数据库中上载文件 . 我想从用户从下拉列表中选择的选项更新数据库,该选项具有选择名称“to_user”,并且对于数据库中的该行,文件将根据所选选项值上载 . 我在add.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)

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>

add.php

<?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>";  

?>

1 回答

  • 0

    尝试:

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

    PHP给出了包括字符串内部数组的问题,就像添加$ filename一样 .

    根据变量类型,您可能必须为查询添加引号:

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

相关问题