簡體   English   中英

需要幫助,使用php從mysql表中獲取ID

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM