Качване на 6 снимки - проблем?

nom3r1

Registered
Имам код, който прави заявка към базата данни и качва по 6 снимки в определени папки.
Папки:
img/F/
img/M/

Снимките се качват без проблем, но записването в базата данни е ужасно! Това ще рече, защото в базата от данни ми записва само: gr_name и ip, но не и снимките, също така ми прави 6 записа само с едно натискане на бутана "запиши", а както се сещате трябва да прави само 1 заявка. :lol:

SQL
Код:
 CREATE TABLE IF NOT EXISTS `zaqvka` (
  `id` int(10) NOT NULL auto_increment,
  `gr_name` varchar(50) NOT NULL,
  `picture1` text NOT NULL,
  `picture2` text NOT NULL,
  `picture3` text NOT NULL,
  `picture4` text NOT NULL,
  `picture5` text NOT NULL,
  `picture6` text NOT NULL,
  `ip` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM ;


Кода е следния:

Код:
<?php
include ("config.php");
echo "<form method=\"POST\" enctype=\"multipart/form-data\">
Име: <input type=\"text\" name=\"name\" size=\"63\" MAXLENGTH=\"40\" MOLANG=\"DEFAULT\"><br>
<select name='pol' id='pol'><option selected='selected'>----</option><option value='M'>мъж</option><option value='F'>жена</option></select><br />
Snimka1: <input type=\"file\" name=\"pic1\"><br>
Snimka2: <input type=\"file\" name=\"pic2\"><br>
Snimka3: <input type=\"file\" name=\"pic3\"><br>
Snimka4: <input type=\"file\" name=\"pic4\"><br>
Snimka5: <input type=\"file\" name=\"pic5\"><br>
Snimka6: <input type=\"file\" name=\"pic6\"><br><br>
<input type=\"submit\" name=\"submit\" value=\"запиши\"><br>
</form>";

if (isset($_POST['submit'])){
$gr_name = htmlspecialchars($_POST['name']);
$pol = htmlspecialchars($_POST['pol']);
$pic1 = $_FILES['pic1']['name'];
$pic2 = $_FILES['pic2']['name'];
$pic3 = $_FILES['pic3']['name'];
$pic4 = $_FILES['pic4']['name'];
$pic5 = $_FILES['pic5']['name'];
$pic6 = $_FILES['pic6']['name'];
if (isset($pic1) and !empty($pic1) and isset($pic2) and !empty($pic2) and isset($pic3) and !empty($pic3) 
and isset($pic4) and !empty($pic4) and isset($pic5) and !empty($pic5) and isset($pic6) and !empty($pic6)){
if (isset($gr_name) and !empty($gr_name)){
for ($i = 1; $i <= 6; $i++){
$a = $_FILES['pic'.$i.'']['name'];
$b = explode(".",$a);
$c = count($b);
$d = $b[$c-1];
$e = array("JPG","JPEG","jpg","jpg");
if (in_array($d,$e)){
$path = "img/$pol/";
$datename = date("YmdHis"); //2010/09/01 24:00:00
$name = $datename."_".$gr_name."_"."pic"."_".$i.".".$d;
move_uploaded_file($_FILES['pic'.$i.'']["tmp_name"], $path.$name);
$ip = $_SERVER['REMOTE_ADDR'];
echo "Снимка $i е качена.<br>";
mysql_query("INSERT INTO `zaqvka` (gr_name, picture1, picture2, picture3, picture4, picture5, picture6, ip) VALUES('$gr_name','$picture1','$picture2','$picture3',
'$picture4','$picture5','$picture6','$ip')") or die(mysql_error());
}
else{
echo "Снимка $i използва неразрешен формат!";
}}
echo '
Вашата заявка за участие е приета и записана.</center><br /><br />!';
}
else{
echo "Трябва да въведете Име!";
}}
else{
echo "Снимките са по-малко от 6!";
}}
?>
 
<?php
include ("config.php");
echo "<form method=\"POST\" enctype=\"multipart/form-data\">
Име: <input type=\"text\" name=\"name\" size=\"63\" MAXLENGTH=\"40\" MOLANG=\"DEFAULT\"><br>
<select name='pol' id='pol'><option selected='selected'>----</option><option value='M'>мъж</option><option value='F'>жена</option></select><br />
Snimka1: <input type=\"file\" name=\"pic1\"><br>
Snimka2: <input type=\"file\" name=\"pic2\"><br>
Snimka3: <input type=\"file\" name=\"pic3\"><br>
Snimka4: <input type=\"file\" name=\"pic4\"><br>
Snimka5: <input type=\"file\" name=\"pic5\"><br>
Snimka6: <input type=\"file\" name=\"pic6\"><br><br>
<input type=\"submit\" name=\"submit\" value=\"запиши\"><br>
</form>";

if (isset($_POST['submit'])){
$gr_name = htmlspecialchars($_POST['name']);
$pol = htmlspecialchars($_POST['pol']);
$pic1 = $_FILES['pic1']['name'];
$pic2 = $_FILES['pic2']['name'];
$pic3 = $_FILES['pic3']['name'];
$pic4 = $_FILES['pic4']['name'];
$pic5 = $_FILES['pic5']['name'];
$pic6 = $_FILES['pic6']['name'];
if (isset($pic1) and !empty($pic1) and isset($pic2) and !empty($pic2) and isset($pic3) and !empty($pic3) and isset($pic4) and !empty($pic4) and isset($pic5) and !empty($pic5) and isset($pic6) and !empty($pic6)){
if (isset($gr_name) and !empty($gr_name)){
for ($i = 1; $i <= 6; $i++){
$a = $_FILES['pic'.$i.'']['name'];
$b = explode(".",$a);
$c = count($b);
$d = $b[$c-1];
$e = array("JPG","JPEG","jpg","jpg");
if (in_array($d,$e)){
$path = "img/$pol/";
$datename = date("YmdHis"); //2010/09/01 24:00:00
$name = $datename."_".$gr_name."_"."pic"."_".$i.".".$d;
move_uploaded_file($_FILES['pic'.$i.'']["tmp_name"], $path.$name);
$ip = $_SERVER['REMOTE_ADDR'];
echo "Снимка $i е качена.<br>";
mysql_query("INSERT INTO `zaqvka` (gr_name, picture1, picture2, picture3, picture4, picture5, picture6, ip) VALUES('$gr_name','$pic1','$pic2','$pic3','$pic4','$pic5','$pic6','$ip')") or die(mysql_error());
}
else{
echo "Снимка $i използва неразрешен формат!";
}}
echo '
Вашата заявка за участие е приета и записана.</center><br /><br />!';
}
else{
echo "Трябва да въведете Име!";
}}
else{
echo "Снимките са по-малко от 6!";
}}
?>
 
По-този начин взима реалното име на снимката, а на мен не ми върши работа. Понеже използвам код за преименуване на снимката, за да няма съвпадащи имена на снимките и отново ми прави по 6 заявка в базата :idea:

ЕДИТ: Направих го да записва имената на снимките, така както искам, но отново ми прави проблем и прави по 6 записа, в тази таблица. Май ще се наложи снимките да ги записвам в нова таблица?

Код:
 CREATE TABLE IF NOT EXISTS `zaqvka2` (
  `id` int(10) NOT NULL auto_increment,
  `uid` int(10) NOT NULL,
  `picture1` text NOT NULL,
  `picture2` text NOT NULL,
  `picture3` text NOT NULL,
  `picture4` text NOT NULL,
  `picture5` text NOT NULL,
  `picture6` text NOT NULL,
  `ip` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM ;

uid - номер на Потребителя от заявка1
Но как да ги вържа?

Кода, който работи със записването в базата от данни на снимките:
Код:
<?php
include ("config.php");
echo "<form method=\"POST\" enctype=\"multipart/form-data\">
Име: <input type=\"text\" name=\"name\" size=\"63\" MAXLENGTH=\"40\" MOLANG=\"DEFAULT\"><br>
<select name='gr_pol' id='gr_pol'>
<option selected='selected'>----</option>
<option value='M'>мъж</option>
<option value='F'>жена</option>
</select><br />
Snimka1: <input type=\"file\" name=\"pic1\"><br>
Snimka2: <input type=\"file\" name=\"pic2\"><br>
Snimka3: <input type=\"file\" name=\"pic3\"><br>
Snimka4: <input type=\"file\" name=\"pic4\"><br>
Snimka5: <input type=\"file\" name=\"pic5\"><br>
Snimka6: <input type=\"file\" name=\"pic6\"><br><br>
<input type=\"submit\" name=\"submit\" value=\"запиши\"><br>
</form>";

if (isset($_POST['submit'])){
$gr_name = htmlspecialchars($_POST['name']);
$gr_pol = htmlspecialchars($_POST['gr_pol']);
$pic1 = $_FILES['pic1']['name'];
$pic2 = $_FILES['pic2']['name'];
$pic3 = $_FILES['pic3']['name'];
$pic4 = $_FILES['pic4']['name'];
$pic5 = $_FILES['pic5']['name'];
$pic6 = $_FILES['pic6']['name'];
if (isset($pic1) and !empty($pic1) and isset($pic2) and !empty($pic2) and isset($pic3) and !empty($pic3) and isset($pic4) and !empty($pic4) and isset($pic5) and !empty($pic5) and isset($pic6) and !empty($pic6)){
if (isset($gr_name) and !empty($gr_name)){
for ($i = 1; $i <= 6; $i++){
$a = $_FILES['pic'.$i.'']['name'];
$b = explode(".",$a);
$c = count($b);
$d = $b[$c-1];
$e = array("JPG","JPEG","jpg","jpg");
if (in_array($d,$e)){
$path = "img/$gr_pol/";
$datename = date("YmdHis"); //2010/09/01 24:00:00
$name = $datename."_".$gr_name."_"."pic"."_".$i.".".$d;
move_uploaded_file($_FILES['pic'.$i.'']["tmp_name"], $path.$name);
$ip = $_SERVER['REMOTE_ADDR'];
echo "Снимка $i е качена.<br>";
mysql_query("INSERT INTO zaqvka (gr_name, picture1, picture2, picture3, picture4, picture5, picture6, ip) VALUES('$gr_name','$name','$name','$name','$name','$name','$name','$ip')") or die(mysql_error());
}
else{
echo "Снимка $i използва неразрешен формат!";
}}
echo '
Вашата заявка за участие е приета и записана.<br /><br />
Вашият профил ще бъде активиран от началото на следващият месец, ако отговаря на условията на конкурса.</center><br /><br />!';
}
else{
echo "Трябва да въведете Име!";
}}
else{
echo "Снимките са по-малко от 6!";
}}
?>
 
Да, видях си грешката.
Код:
<?php
include ("config.php");
echo "<form method=\"POST\" enctype=\"multipart/form-data\">
Име: <input type=\"text\" name=\"name\" size=\"63\" MAXLENGTH=\"40\" MOLANG=\"DEFAULT\"><br>
<select name='gr_pol' id='gr_pol'>
<option selected='selected'>----</option>
<option value='M'>мъж</option>
<option value='F'>жена</option>
</select><br />
Snimka1: <input type=\"file\" name=\"pic1\"><br>
Snimka2: <input type=\"file\" name=\"pic2\"><br>
Snimka3: <input type=\"file\" name=\"pic3\"><br>
Snimka4: <input type=\"file\" name=\"pic4\"><br>
Snimka5: <input type=\"file\" name=\"pic5\"><br>
Snimka6: <input type=\"file\" name=\"pic6\"><br><br>
<input type=\"submit\" name=\"submit\" value=\"запиши\"><br>
</form>";

if (isset($_POST['submit'])){
$gr_name = htmlspecialchars($_POST['name']);
$gr_pol = htmlspecialchars($_POST['gr_pol']);
$pic1 = $_FILES['pic1']['name'];
$pic2 = $_FILES['pic2']['name'];
$pic3 = $_FILES['pic3']['name'];
$pic4 = $_FILES['pic4']['name'];
$pic5 = $_FILES['pic5']['name'];
$pic6 = $_FILES['pic6']['name'];
if (isset($pic1) and !empty($pic1) and isset($pic2) and !empty($pic2) and isset($pic3) and !empty($pic3) and isset($pic4) and !empty($pic4) and isset($pic5) and !empty($pic5) and isset($pic6) and !empty($pic6)){
if (isset($gr_name) and !empty($gr_name)){
for ($i = 1; $i <= 6; $i++){
$a = $_FILES['pic'.$i.'']['name'];
$b = explode(".",$a);
$c = count($b);
$d = $b[$c-1];
$e = array("JPG","JPEG","jpg","jpg");
if (in_array($d,$e)){
$path = "img/$gr_pol/";
$datename = date("YmdHis"); //2010/09/01 24:00:00
$name = $datename."_".$gr_name."_"."pic"."_".$i.".".$d;
move_uploaded_file($_FILES['pic'.$i.'']["tmp_name"], $path.$name);
echo "Снимка $i е качена.<br>";
}
else{
echo "Снимка $i използва неразрешен формат!";
}}
$ip = $_SERVER['REMOTE_ADDR'];
$q = mysql_query("INSERT INTO zaqvka (gr_name, picture1, picture2, picture3, picture4, picture5, picture6, ip) VALUES('$gr_name','$name','$name','$name','$name','$name','$name','$ip')") or die(mysql_error());
echo '
Вашата заявка за участие е приета и записана.<br /><br />
Вашият профил ще бъде активиран от началото на следващият месец, ако отговаря на условията на конкурса.</center><br /><br />!';
}
else{
echo "Трябва да въведете Име!";
}}
else{
echo "Снимките са по-малко от 6!";
}}
?>
 
Чак сега видях другия проблем. В момента в базата данни всички колони pictures1,2,3,4,5,6

ми ги записва с едно и също име т.е.
20100901171540_asdfgjhkl_pic_6.jpg | 20100901171540_asdfgjhkl_pic_6.jpg | 20100901171540_asdfgjhkl_pic_6.jpg | 20100901171540_asdfgjhkl_pic_6.jpg | 20100901171540_asdfgjhkl_pic_6.jpg | 20100901171540_asdfgjhkl_pic_6.jpg

А би трябвало да е:
20100901171540_asdfgjhkl_pic_1.jpg | 20100901171540_asdfgjhkl_pic_2.jpg | 20100901171540_asdfgjhkl_pic_3.jpg | 20100901171540_asdfgjhkl_pic_4.jpg | 20100901171540_asdfgjhkl_pic_5.jpg | 20100901171540_asdfgjhkl_pic_6.jpg
 
Пробвай да направиш $name по този начин

Код:
@${name.$i} = $datename."_".$gr_name."_"."pic"."_".$i.".".$d;

и после в заявката

Код:
$q = mysql_query("INSERT INTO zaqvka (gr_name, picture1, picture2, picture3, picture4, picture5, picture6, ip) VALUES('$gr_name','$name1','$name2','$name3','$name4','$name5','$name6','$ip')") or die(mysql_error());
 

Back
Горе