我有一个图像上传脚本,我想在其中将数据插入2个表中。
表:将在其中插入描述,品牌,年份的礼服 表格:我在其中插入dress_id和图片链接的图片
我有一个foreach循环-在第一个循环中-衣服和第一个图像应插入,在第二个循环中,...仅将图像循环到表图像。
这可能吗?我正在使用mysql_insert_id()甚至可能吗?
谢谢您的帮助和建议!
亲切的问候,斯蒂芬
到目前为止,这是我的代码。
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
$file_name = $key.$_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
$file_type=$_FILES['files']['type'][$key];
if($file_size > 400097152){
$errors[]='Maximale Filegröße: 100MB';
}
$file_name = 'image_' . date('Y-m-d-H-i-s') . '_' . uniqid() . '.jpg';
$url = 'dresses/' . $_POST['jahr']. '/';
$link = $domain . '/dresses/' . $_POST['jahr'] . '/'. $file_name;
$name_insert = mysql_real_escape_string($_POST['name']);
$brand_insert = mysql_real_escape_string($_POST['brand']);
$style_insert = mysql_real_escape_string($_POST['style']);
$jahr_insert = mysql_real_escape_string($_POST['jahr']);
$desc_insert = mysql_real_escape_string($_POST['desc']);
mysql_query("SET CHARACTER SET 'utf8'");
$sql_upload="INSERT into dresses (model,brand,style,jahr,beschreibung) VALUES('$name_insert','$brand_insert','$style_insert','$jahr_insert','$desc_insert')";
$result = mysql_query($sql_upload,$db);
$dress_id = mysql_insert_id();
$sql_image = "Insert into images (dress_id, url) VALUES ('$dress_id','$link')";
$result = mysql_query($sql_image, $db);
$desired_dir= $url;
if(empty($errors)==true){
if(is_dir($desired_dir)==false){
mkdir("$desired_dir", 0755, true); // Create directory if it does not exist
}
if(is_dir("$desired_dir/".$file_name)==false){
move_uploaded_file($file_tmp,"$desired_dir/".$file_name);
$source_img = "$desired_dir/".$file_name;
$destination_img = $desired_dir."/".$file_name;
$d = compress($source_img, $destination_img, 50);
}else{ // rename the file if another one exist
$new_dir="$desired_dir/".$file_name.time();
rename($file_tmp,$new_dir) ;
}
答案 0 :(得分:0)
首先,正如Aleks G所说,停止使用mysql_并开始使用PDO或mysqli和准备好的语句。
第二,重新处理您的处理。收集您的着装信息,插入着装信息,获取对它的引用,然后遍历文件数组。没有理由将礼服插入处理置于处理文件的循环中
基本上,将这段代码移至foreach
开始之前-
$name_insert = mysql_real_escape_string($_POST['name']);
$brand_insert = mysql_real_escape_string($_POST['brand']);
$style_insert = mysql_real_escape_string($_POST['style']);
$jahr_insert = mysql_real_escape_string($_POST['jahr']);
$desc_insert = mysql_real_escape_string($_POST['desc']);
mysql_query("SET CHARACTER SET 'utf8'");
$sql_upload="INSERT into dresses (model,brand,style,jahr,beschreibung) VALUES('$name_insert','$brand_insert','$style_insert','$jahr_insert','$desc_insert')";
$result = mysql_query($sql_upload,$db);
$dress_id = mysql_insert_id();
// start foreach after this