2011-10-21 18 views
1

PHPに一意のIDを追加する簡単な方法がありますか?私はこれらのフォーラムをスクロールしましたが、私の目的を達成するためにはるかに簡単な方法があることを願っていました。php mysql uploadにユニークIDを追加

本質的に、私は完璧に動作するアップロードを持っています。そして、mysqlの自動増分ユニークIDフィールドを使って生成される各アイテムに製品コードを追加したいと考えています。唯一の "問題のある行を" コードである -

今、与えられたすべての作品
<form enctype="multipart/form-data" action="addfurn.php" method="POST"> 
    <table width="100%" border="2" cellpadding="5"class="myaccount"> 
    <tr> 
     <td>Title: </td> 
     <td><input type="text" name="title" /></td> 
    </tr> 
    <tr> 
     <td>Description: </td> 
     <td><input type="text" name = "desc" /></td> 
    </tr> 
      <tr> 
     <td>Price: </td> 
     <td><input type="text" name = "price" /></td> 
    </tr> 
     <tr> 
     <td>P&amp;P: </td> 
     <td><input type="text" name = "pandp" /></td> 
    </tr> 
    <tr> 
     <td>Main Image: </td> 
     <td><input type="file" name="photo" /></td> 
    </tr> 
    <tr> 
     <td colspan="2"><input type="submit" class="CMSbutton" value="Add" /></td> 
    </tr> 
    </table> 
</form> 

は:

<?php include 'dbc.php'; page_protect(); 

if(!checkAdmin()) {header("Location: login.php"); 
exit(); 
} 

$host = $_SERVER['HTTP_HOST']; 
$host_upper = strtoupper($host); 
$login_path = @ereg_replace('admin','',dirname($_SERVER['PHP_SELF'])); 
$path = rtrim($login_path, '/\\'); 

foreach($_GET as $key => $value) { 
    $get[$key] = filter($value); 
} 

foreach($_POST as $key => $value) { 
    $post[$key] = filter($value); 
} 
?> 

<?php 
if($_FILES['photo']) //check if we uploading a file 
{ 
    $target = "images/furnishings/"; 
    $target = $target . basename($_FILES['photo']['name']); 

    $title = mysql_real_escape_string($_POST['title']); 
    $desc = mysql_real_escape_string($_POST['desc']); 
    $price = mysql_real_escape_string($_POST['price']); 
    $pandp = mysql_real_escape_string($_POST['pandp']); 
    $pic = "images/furnishings/" .(mysql_real_escape_string($_FILES['photo']['name'])); 
    $productcode = "FUR000" .(mysql_real_escape_string($_POST['id'])); 
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
{ 
    mysql_query("INSERT INTO `furnishings` (`title`, `desc`, `price`, `pandp`, `photo`,`productcode`) VALUES ('$title', '$desc', '$price', '$pandp', '$pic', '$productcode')") ;  

    echo "The product has been added to the furnishings category"; 
} 
else 
{ 
    echo "Please fill out the specifications and select the respective file to upload for the main image"; 

} 
} 
?> 

し、次のHTML:

は、これまでのところ私は、次のPHPを持っています

$productcode = "FUR000" .(mysql_real_escape_string($_POST['id'])); 

IDがまだ生成されていないため、挿入クエリにそれを追加できないため、私のテーブルsqlは、追加された新しい項目ごとにFUR000を返します。

この行を新しい行の追加と同様にmysqlの自動インクリメントに修正する方法はありますか?またはHTMLテーブル内の各項目に固有のコードを含める必要がありますか?

ご迷惑をおかけして申し訳ありません。

おかげ JD

+0

彼は何について話していますか? "mysql upload"とは何ですか? –

+0

申し訳ありません - PHPのmysqlの挿入..... – JD2011

答えて

0

あなたはユニークなIDを生成する、uniqidを使用したいです。私は安全な側にするために、より多くのエントロピーでそれを使用することをお勧めします。

+0

ちょうど私の後....私はそれを組み込むいくつかの助けが必要です! %product \ printf( "uniqid( ''、true):%s \ r \ n"、uniqid( ''、true)); mysql_query( "INSERT INTO' furnishings'( 'title'、' desc'、 'price'、' pandp'、 'photo'、' productcode')VALUES(これは私のページの上部にあります。 '$ title'、 '$ desc'、 '$ price'、 '$ pandp'、 '$ pic'、 '$ productcode') "); 。これは間違いなくテーブルに何かを追加していますが、何らかの理由でmysqlに2桁の数字が返されています - productcodeのcol型はVARCHAR(255)です - これが問題でしょうか? – JD2011

1

これには2つのクエリが必要です。

最初に、プロダクトコードなしでデータを挿入してください。次
、(にmysql_insert_idを使用してIDを取得)
は最終的に、あなたの製品コードを作成し、この新しく生成されたID

を使用してテーブルを更新しかし、私は、このような分野ではない点を見ていません。その場で作成してみませんか?

+0

私は完全に同意して飛んで作成しようとしていないuniqid関数を見直してきました。 – JD2011

+0

uniqidはあなたを助けません。 –

+0

はCol Shrapnel !? – JD2011

関連する問題