我有幾種形式,具有不同的領域和目的。需要幫助使用php從mysql表中獲取id
所以我想「嘿,我會建立一個通用的insert.php頁面輸入數據到我的數據庫」。
好吧,到目前爲止這麼好。
但現在我需要將文件鏈接到每條記錄,所以我的表單有一個<input type="file">
字段。
我真正想要做的是允許用戶選擇多個文件(圖片,視頻),創建一個名稱類似於表格的目錄加上正在插入的記錄的編號(upload/$tablename/$id/
),存儲文件並添加數據庫路徑。
喜歡的東西:
ID | NAME | WEBPAGE | FILES
01 | john | john.com | /upload/tblWebpages/01/
02 | mike | mike.net | /upload/tblWebpages/02/
19 | jimy | jimy.org | /upload/tblWebpages/19/
,因爲我不知道有多少文件將被插入或他們的名字,後來我打算以獲取在該目錄中的所有圖像,並顯示它。
是否有可能在正在處理上載時從表格中知道記錄ID?
因爲,如上所述,我想將這些文件存儲在一個名爲$ ID的目錄下。
我應該如何將它添加到我的查詢?
好了,到代碼:
insert.php
include('classes/class.upload.php');
$server = "localhost";
$user = "root";
$password = "xxxxx";
$database = "myDB";
$tabela = $_POST['tabela'];
$diretorio = "upload/".$tabela."/";
mysql_connect($server,$user,$password);
mysql_select_db($database) or die("Unable to select database" . mysql_error());
// create an array to hold your filnames
$images = array();
$files = array();
foreach ($_FILES['imagem'] as $k => $l) {
foreach ($l as $i => $v) {
if (!array_key_exists($i, $files))
$files[$i] = array();
$files[$i][$k] = $v;
}
}
foreach ($files as $file) {
$handle = new Upload($file);
if ($handle->uploaded) {
$handle->Process($diretorio);
if ($handle->processed) {
echo 'OK ';
// add the filename to the array
$images[] = $handle->file_dst_pathname;
}
else { echo 'Upload error: ' . $handle->error; }
}
else { echo 'Upload error: ' . $handle->error; }
unset($handle);
}
foreach ($_POST as $field => $value) {
if (!preg_match("/$value/i", $tabela)) {
if (preg_match("/$field/i", 'data')) {$value = date('Y-m-d', strtotime($value));}
else {$value = mysql_real_escape_string($value);}
$campo .= $field . ',';
$valor .= '\'' . $value . '\'' . ',';
$query = "INSERT INTO $tabela ($campo) VALUES ($valor)";
$query = str_replace(",)",")",$query);
//echo " inside foreach RESULT = $result and QUERY = $query <br>";
}
}
$result = mysql_query($query);
echo " outside foreach RESULT = $result and QUERY = $query <br>";
if (!$result) {
$message = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $query;
die($message);
}
mysql_close();
form.php的(簡體)
<form method="POST" action="insert.php" class="classeform" enctype="multipart/form-data">
<label for="namee" class="lbl-d-input">Name: </label>
<input type="text" name="namee" id="namee" class="field">
<label for="webpage" class="lbl-d-input">Webpage: </label>
<input type="text" name="webpage" id="webpage" class="field">
<label for="files" class="lbl-d-input">Files: </label>
<input type="file" name="files[]" id="files" class="field-img">
<input type="hidden" name="tabela" value="mytbl">
<input type="submit" value="Enviar" class="btn-enviar">
</form>
明白了。稍後將發佈答案。 – RASG