[英]need help fetching the id from mysql table with php
我有幾種形式,具有不同的領域和目的。
因此,我堅決“嘿,我將構建一個通用的insert.php頁面以將數據輸入到我的數據庫中”。
好的,到目前為止很好。
但是現在我需要將文件鏈接到每個記錄,因此我的表單具有<input type="file">
字段。
我真正想做的是允許用戶選擇幾個文件(圖片,視頻),創建一個名為表的目錄,以及要插入的記錄的ID( 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>
可以與mysql_insert_id()
您看到回聲值了嗎?
我將從寫一些調試代碼開始
例如:在這行代碼之后
if (!preg_match("/$value/i", $tabela)) {
我會把
print("Value Matched");
這樣,您就知道自己進入了for循環。 另外我注意到您沒有在循環內追加到$ query變量中,因此永遠不會添加數據庫條目?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.