Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Удаление файлов
 
 автор: kis-kis   (11.12.2008 в 18:43)   письмо автору
 
 

Насколько практичен данный код?


for ($i = 0; $i <= 4; $i++) 
            {
if ($_POST["df_$i"] == '1')
                        {
$resultc=mysql_query("SELECT * FROM auto_photo WHERE auto_id = '$auto[id]' order by id asc limit ".$i.",1") or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
$aphoto = mysql_fetch_array($resultc);

unlink("../photo/files/".$aphoto[img_name]); 
unlink("../photo/files/s_".$aphoto[img_name]);
if ($_POST["df_0"] == '1') { unlink("../photo/files/m_".$aphoto[img_name]); }

$query_df = "DELETE FROM auto_photo WHERE id = '$aphoto[id]' and auto_id='$auto[id]'";
$req_df = mysql_query($query_df) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");

$query_auto_pic="SELECT * FROM auto_photo where auto_id='$auto[id]'";
$result_auto_pic=mysql_query($query_auto_pic) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
if (mysql_num_rows($result_auto_pic)==0)
{
$query = "UPDATE auto SET photo='0' WHERE id = '$auto[id]'";
$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
}

                        }
            }

  Ответить  
 
 автор: cheops   (13.12.2008 в 15:03)   письмо автору
 
   для: kis-kis   (11.12.2008 в 18:43)
 

Следующие строки лучше поменять местами - иначе у вас цикл гоняется всякий раз, даже когда условие не выполняется, а когда оно выполняется - проверка осуществляется пять раз, вместо одного.
for ($i = 0; $i <= 4; $i++)  
            { 
if ($_POST["df_$i"] == '1')

PS А вообще, если скрипт работает - он практичен :)))

  Ответить  
 
 автор: kis-kis   (15.12.2008 в 09:29)   письмо автору
 
   для: cheops   (13.12.2008 в 15:03)
 

спасибо за ответ. А на счет строк, разве нужно их менять? Проверка просто идет для 5 фотографий

  Ответить  
 
 автор: kis-kis   (15.12.2008 в 11:27)   письмо автору
 
   для: kis-kis   (15.12.2008 в 09:29)
 

Еще вопрос, не подскажите почему при удалении сразу всех (5) фото, удаляются только первые три? При повторном удалении еще одна, потом еще одна... (

  Ответить  
 
 автор: Trianon   (15.12.2008 в 12:04)   письмо автору
 
   для: cheops   (13.12.2008 в 15:03)
 

Если поменять строки местами, получится нотайс. Но Вы его уже не увидите.

PS. Заглянул в яндекс-словари.
Практичность - совокупность свойств инструмента, влияющих на эффективность его использования в конкретной предметной деятельности, и выражающихся:
- в применимости этого инструмента;
- в легкости его освоения и использования;
- в воспроизводимости полученных навыков;
- в низкой частоте ошибок;
- в субъективном удовольствии и других факторах.
Определение не единственное, но наиболее емкое, на мой взгляд.
Комментарии, как говорится, излишни.

  Ответить  
 
 автор: kis-kis   (15.12.2008 в 13:08)   письмо автору
 
   для: Trianon   (15.12.2008 в 12:04)
 

А если без философии? :)

  Ответить  
 
 автор: Trianon   (15.12.2008 в 13:30)   письмо автору
 
   для: kis-kis   (15.12.2008 в 13:08)
 

А если без философии, то мне, например сложно прочесть этот код.
просто прочесть, чтобы понять что же он делает и как его можно применить.

То есть, можно конечно, и строки длинные свернуть, и скобки читабельно расставить, и отступы сделать человеческие, какие-то минимальные комментарии написать..

А вот в этом виде самое практичное, что можно с ним сделать - выкинуть, не вчитываясь.

  Ответить  
 
 автор: xx77   (15.12.2008 в 13:17)   письмо автору
 
   для: Trianon   (15.12.2008 в 12:04)
 

я-бы добавил ;)

*** если конкретная предметная деятельность не имеет преобладающего приоритета над другими конкретными предметными деятельностями, то фактор лёгкости избавления от инструмента как от ненужного, с понесением минимального ущерба является одним из главных свойств практичности.
- применимость непименяемости как практичность пользователя.
следовательно :
Практичность - совокупность харрактеристик пользователя, в конкретно данной обстановке , способствующая достижения определённых целей, получение совокупности материальных и моральных вознаграждений:
- субъективное удовольствие и другие факторы .)

  Ответить  
 
 автор: Trianon   (15.12.2008 в 13:31)   письмо автору
 
   для: xx77   (15.12.2008 в 13:17)
 

крайне туманно.
поясните, пожалуйста, на примере.

  Ответить  
 
 автор: xx77   (15.12.2008 в 13:47)   письмо автору
 
   для: Trianon   (15.12.2008 в 13:31)
 

я так , к слову просто :)

лично я для себя сделал-бы в начале как-нибудь так ,
потому-что мне так удобнее разобраться с переменными
, и скопипастить куданибудь попроще, если изменить чего ,)
, только одно ещё могло-бы повлиять , время выполнения скрипта
, практично лично для меня.
<?
$array 
= array();
if (isset(
$_POST['df_0']) && $_POST['df_0']==1$flag true;

array_walk($_POST'obrabotka');
if (
$_POST['df_0']) $flag true;

function 
obrabotka($v$k) {
    global 
$array;
    list(
$k) = sscanf($k"df_%i");
    if (
$k && $v == 1$array[] = $k;
}

foreach(
$array AS $i) {
        
$resultc mysql_query("SELECT * FROM auto_photo
 WHERE auto_id = '
$auto[id]' order by id asc limit ".$i.",1")
 or die(
"<B>Error ".mysql_errno()." :</B>".mysql_error().""); 
$aphoto mysql_fetch_array($resultc); 

unlink("../photo/files/".$aphoto[img_name]);  
unlink("../photo/files/s_".$aphoto[img_name]); 
if (
$flag) { unlink("../photo/files/m_".$aphoto[img_name]); } 
//...............
//...........
}

А то насколько практично для интерпритатора , дело второе ,) если работает нормально

  Ответить  
 
 автор: xx77   (15.12.2008 в 14:46)   письмо автору
 
   для: xx77   (15.12.2008 в 13:47)
 

:)
хотя для PHP наверное было-бы практичнее если я-бы сделал
while($var = (isset($var)) ? next($_POST) : current($_POST)) {
...........
// upd исправлял ошибки раза три )

  Ответить  
 
 автор: xx77   (15.12.2008 в 17:28)   письмо автору
2 Кб
 
   для: xx77   (15.12.2008 в 14:46)
 

<?//вообще-то сравнил array_walk()
//c функцией
function obrabotka($v$k) {
    global 
$array;
    list(
$k) = sscanf($k"df_%i");
    if (
$k && $v == 1$array[] = $k;
}

//и просто вызов функции 

function razrabotk($post) {
    global 
$array;
    foreach(
$post AS $k => $v) {
        list(
$k) = sscanf($k"df_%i");
        if (
$k && $v == 1$array[] = $k;
    }
}

array_walk() заметно медленнее раза в два )
// прикрепил код которым сравнивал

//upd
Заметил ошибку, переприкрепил

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования