2011-09-15 11 views
-1

をアップロードし、私のコードは次のようである:最初のアップロード時私は私のPHPでファイルをアップロードしたいファイル(IDによる名)

$hasil = mysql_query("select ID from userownfile order by ID DESC"); 
$dt = mysql_fetch_array($hasil); 
$old_id = substr($dt['ID'],2); 

$newId = $old_id[0] + 1; 

$base = $_REQUEST['image']; 
$filename = $newId . ".jpg"; 
$buffer = base64_decode($base); 
$path = "img/" . $filename . ".jpg"; 
$handle = fopen($path, 'wb'); 
$numbytes = fwrite($handle, $buffer); 
fclose($handle); 
$conn = mysql_connect("localhost","root",""); 
mysql_select_db("db_bloodglucose"); 
$sql = "insert into userownfile(ID, file) values('" . $newId . "','" . $path . "')"; 
$r = mysql_query($sql); 

、私は名前が1でファイルをアップロードするsuccedました.jpg。でも、2回目などをアップロードしたいときは、データベースに表示されず、1.jpgを表示し続けているのですが、なぜ数字が増えていないのだろうと思います。私はこのように私のコードに変更してきた

前に感謝:

<?php 

$hasil = mysql_query("select ID from userownfile order by ID DESC"); 
$dt = mysql_fetch_array($hasil); 
$old_id = substr($dt['ID'],2); 

$newId = mysql_insert_id() + 1; 

$base = $_REQUEST['image']; 
$filename = $newId . ".jpg"; 
$buffer=base64_decode($base); 
$path = "img/".$filename.".jpg"; 
$handle = fopen($path, 'wb'); 
$numbytes = fwrite($handle, $buffer); 
fclose($handle); 
$conn=mysql_connect("localhost","root",""); 
mysql_select_db("db_bloodglucose"); 
$sql = "insert into userownfile(ID, file) values('" . $newId . "','" . 

$path . "')"; 
$r=mysql_query($sql); 
?> 

をしかし、それは数が増加していない、1にこだわっ保つには、誰も私を助けてくださいことができますか?

+0

最初の試行で実際に何かがデータベースに挿入されますか? –

+0

@Handy上記の私の質問を参照してください - 何かがデータベースに挿入されますか? –

+0

@pekka、最初のものが私のデータベースに挿入されます、1.jpg、2番目のものをもう一度試してみたら、うまくいかなかった...私のidを "no auto increment"に設定しました – Handy

答えて

0

私は間違いを推測はここにある:

$dt = mysql_fetch_array($hasil) 
$old_id = substr($dt['ID'],2); 
$newId = $old_id[0]+1; 

$newId = $dt[0]+1; 

か、単に

$newId = $old_id+1; 

しかし、ずっとあなたを与えるだろう良く使用mysql_insert_idがにレコードIDを挿入してもよいです並行性の問題を避ける。

+0

両方を試してみましたが、それでもうまくいきませんでしたか?私はidを "no auto increment"に設定しましたか?私はそれを行う方法がわからない、私は私のコードに基づいていくつかの例を示すことができますか?ありがとうございます。 – Handy

+0

フィールドが自動インクリメントでない場合、mysql_insert_idは明らかに機能しません。しかし、この場合、フィールドは自動インクリメントフィールドでなければならないと思います! – MrWhite

+0

$ newId = mysql_insert_id($ hasil);私は自動インクリメントでそれを試してみましたが、2番目のものは名前なしで来ました。ちょうど ".jpg"それです、何かが欠けていますか?このような – Handy

関連する問題