[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запрос в бд
darkfever
Есть интернет-магазин, в него заливаются фотки следующим скриптом, приведу ниже после описания ситуации. Фотки хранятся в бд под своими id в отдельной таблице. При заливке новых фоток им присваивается имя photo_номер id , следующего за последним в бд. Например, последняя фотка в бд лежит с id 80, если залить через сайт фотку новую, ей присвоится имя photo_81.jpg. А надо, чтобы при заливе фотки в название ставился артикул товара(т.е. чтобы фотка после заливки была, например, 93-ST28.jpg), артикулы хранятся в общей таблице с товарами в отдельном столбце. Связь между ними идет по id. Вот собственно, скрипт, который задает названия фоткам(привожу часть, где описывается именно это действие). Надеюсь на вашу помощь.
PS: добавление в название слова photo_ фиксированно, удалить его несложно, основной вопрос с id в названии.

//определяется максимальное положение
$sql = "UPDATE `$this->mytable` SET";
$x=0;
foreach ($this->fields as $field) {
if ($field['type']!='file') {
$name = $field['name'];
$cont = $field['cont'];
if ($x>0) $sql.=", ";
$sql.="`$name` = '$cont'
"
;
$x++;
}

}

$sql.=" where ID='$this->id'";
$this->db->requireMySQL($sql);
echo $this->db->sql;
$id= $this->id;
foreach ($this->fields as $key=>$field) {
$name = $field['name'];

if ($field['type']=='file') {
$this->fields[$key]['cont'] = $_POST[$name];
if ($this->fields[$key]['cont']) {
if (file_exists("temp/".$this->fields[$key]['cont'])) {
$copy = $this->copyPic($id,$key);
$this->db->requireMySQL("UPDATE $this->mytable set `".$name."`='".$copy."' where ID=$id");
}
}
}
}


}
}


function showRazd() {}

function ShowRzd() {}


function upMe() {
$table = $_GET['table'];
$sql ="select ID, num from $table where `num`<'$this->num' and `parent`='$this->parent' and type='$this->type' order by `num` desc limit 1";
$result = $this->db->requireMySQL($sql);
$row = mysql_fetch_array($result);
$id1 = $row['ID']; $num1 = $row['num'];
$this->db->requireMySQL("update $table set `num`='$num1' where `ID`='$this->id' limit 1");
$this->db->requireMySQL("update $table set `num`='$this->num' where `ID`='$id1' limit 1");
}

function downMe() {
$table = $_GET['table'];
$sql ="select * from $table where `num`>'$this->num' and `parent`='$this->parent' and type='$this->type' order by `num` limit 1";
$result = $this->db->requireMySQL($sql);
$row = mysql_fetch_array($result);
$id1 = $row['ID']; $num1 = $row['num'];
$this->db->requireMySQL("update $table set `num`='$num1' where `ID`='$this->id' limit 1");
$this->db->requireMySQL("update $table set `num`='$this->num' where `ID`='$id1' limit 1");
}

заранее спасибо.



Спустя 2 дня, 18 часов, 53 минуты, 6 секунд (6.09.2010 - 11:03) darkfever написал(а):
help!

Спустя 2 часа, 18 минут, 35 секунд (6.09.2010 - 13:21) inpost написал(а):
darkfever
Сделал все через ООП, а такую простую вещь переделать не можешь?

Спустя 3 часа, 42 секунды (6.09.2010 - 16:22) darkfever написал(а):
делал другой человек к сожалению, а мне исправлять( подскажите плиз

Спустя 43 минуты, 22 секунды (6.09.2010 - 17:05) demonichka написал(а):
Посмотри как работает функция "copyPic". И посмотри что там и как. А потом как дополнительный параметр в вызове этой функции передавай код товара и сохраняй под нужным тебе именем.

Спустя 5 минут, 2 секунды (6.09.2010 - 17:10) inpost написал(а):
Ты получи id этой фотки, а дальше сделай ещё одну выборку из БД из второй таблицы по ай-ди. Так и получишь данные про артикул
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.