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

Форум PHP

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

 

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

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

тема: помогите с алгоритмом
 
 автор: moonfox   (03.05.2005 в 17:35)   письмо автору
 
 

есть база данных в ней 5 столбцов
foto1 foto2 foto3 foto4 foto5 - изначально пустые
когда юзер через форму грузит картинку на сервак в один из столбцов записывается имя файла.... проблема в следующем:

как сделать: если foto1 пустое то записать сюда имя файла если полное то записать в foto2 если foto2 полное то записать в foto3 если foto3 полное то записать в foto4 если foto4 полное то записать в foto5

if(!$test['foto1']){ 
$b="UPDATE members SET foto1='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");}

if(!$test['foto2'])
{$b="UPDATE members SET foto2='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");}

if(!$test['foto2']){ 
$b="UPDATE members SET foto2='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");}

if(!$test['foto4'])
 { 
$b="UPDATE members SET foto3='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");}

if(!$test['foto5']){ 
$b="UPDATE members SET foto5='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");}
else{$otvet="<b>ERROR: You have already uploaded 5 photos!<b>"; include 'clear.htm';}



таким способом само собой не канает - пишет сразу во все 5 полей:) если использовать exit; после записи то останавливается весь скрипт...

   
 
 автор: Flash5   (03.05.2005 в 17:51)   письмо автору
 
   для: moonfox   (03.05.2005 в 17:35)
 

А что если break использовать, мне кажется это как раз что вам нужно, хотя я считаю что у вас не совсем правильно конструкция if построена.

   
 
 автор: moonfox   (03.05.2005 в 17:54)   письмо автору
 
   для: Flash5   (03.05.2005 в 17:51)
 

что значит не савсем правельно?
работает то!

   
 
 автор: Flash5   (03.05.2005 в 18:00)   письмо автору
 
   для: moonfox   (03.05.2005 в 17:54)
 

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

  if ($something1==true) {
    do_something;
  } else {
    if ($something2==true) {
      do_something;
    } else {
      if ($something3==true) {
        do_something;
      } else {
        if ($something4==true) {
          do_something;
        } else {
          if ($something5==true) {
            do_something;
          } else {
            all_are_full;
          }
        }
      }
    }
  }

Желаю удачи

   
 
 автор: $OMEGA   (03.05.2005 в 18:10)   письмо автору
 
   для: moonfox   (03.05.2005 в 17:54)
 

Ну еслибы работало, то и вопросов бы не было, вместо 2-5 if правильнее писать elseif, но гораздо компактнее и красивее будет использовать case или for, но как говорится на ошибках учимся.

   
 
 автор: TrunK   (03.05.2005 в 17:57)   письмо автору
 
   для: moonfox   (03.05.2005 в 17:35)
 


if(!$test['foto2']) 
{$b="UPDATE members SET foto2='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");} 

if(!$test['foto2']){ 
$b="UPDATE members SET foto2='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");} 

Два раза проверяет foto2 ...

   
 
 автор: TrunK   (03.05.2005 в 17:59)   письмо автору
 
   для: TrunK   (03.05.2005 в 17:57)
 

Напиши какое значение у переменной $test

   
 
 автор: Flash5   (03.05.2005 в 18:02)   письмо автору
 
   для: TrunK   (03.05.2005 в 17:59)
 

2 TrunK
Просто если все значения пустые то скрипт загрузит во все переменные а надо использовать конструкцию if {} else {}

   
 
 автор: moonfox   (03.05.2005 в 18:01)   письмо автору
 
   для: TrunK   (03.05.2005 в 17:57)
 

это опечатка:)
возвращал в исходный код после нескольких модефикаций в любом случае не работает:)

if(!$test['foto1']){
$b="UPDATE members SET foto1='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");}

if(!$test['foto2'])
{$b="UPDATE members SET foto2='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");}

if(!$test['foto3']){
$b="UPDATE members SET foto3='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");}

if(!$test['foto4'])
{
$b="UPDATE members SET foto4='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");}

if(!$test['foto5']){
$b="UPDATE members SET foto5='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");}
else{$otvet="<b>ERROR: You have already uploaded 5 photos!<b>"; include 'clear.htm';}

   
 
 автор: moonfox   (03.05.2005 в 18:03)   письмо автору
 
   для: TrunK   (03.05.2005 в 17:57)
 

$quary="select foto1, foto2, foto3, foto4, foto5 from members WHERE id='$uzver'";
$result=mysql_query($quary) or die ("cant get fields...");
$test=mysql_fetch_array($result);

   
 
 автор: Loki   (03.05.2005 в 18:00)   письмо автору
 
   для: moonfox   (03.05.2005 в 17:35)
 

Ну из тупых вариантов могу сразу предложить следующее:


if((!$test['foto5']) && (!$test['foto4']) && (!$test['foto3']) && (!$test['foto2']) && (!$test['foto1'])){ 
$b="UPDATE members SET foto1='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");} 

else if((!$test['foto5']) && (!$test['foto4']) && (!$test['foto3']) && (!$test['foto2'])){$b="UPDATE members SET foto2='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");} 

else if((!$test['foto5']) && (!$test['foto4']) && (!$test['foto3'])){
$b="UPDATE members SET foto2='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");} 

else if((!$test['foto5']) && (!$test['foto4']))

$b="UPDATE members SET foto3='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");} 

else if(!$test['foto5']){ 
$b="UPDATE members SET foto5='$g' WHERE id='$uzver'"; @mysql_query($b) or die("Cant insert data...");} 
else{$otvet="<b>ERROR: You have already uploaded 5 photos!<b>"; include 'clear.htm';} 


Или вообще запихать это в switch. Понимаю что вариант уродливый... если подумать минут 10 можно все это сделать красиво. Но у меня уже нет 10 минут, а голова не варит совсем в конце дня.
Удачи!;)

   
 
 автор: Flash5   (03.05.2005 в 18:03)   письмо автору
 
   для: Loki   (03.05.2005 в 18:00)
 

Вы что не заметили пост? :-)

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

  if ($something1==true) {
    do_something;
  } else {
    if ($something2==true) {
      do_something;
    } else {
      if ($something3==true) {
        do_something;
      } else {
        if ($something4==true) {
          do_something;
        } else {
          if ($something5==true) {
            do_something;
          } else {
            all_are_full;
          }
        }
      }
    }
  }

Желаю удачи

   
 
 автор: TrunK   (03.05.2005 в 18:07)   письмо автору
 
   для: Flash5   (03.05.2005 в 18:03)
 

Помогите пожалуйста: http://softtime.ru/forum/read.php?id_forum=3&id_theme=3803



P/S В каждом топе должно быть немного оффтопа

   
 
 автор: moonfox   (03.05.2005 в 18:35)   письмо автору
 
   для: Flash5   (03.05.2005 в 18:03)
 

Flash5 да все работает спасибо:)

   
 
 автор: Loki   (03.05.2005 в 22:31)   письмо автору
 
   для: Flash5   (03.05.2005 в 18:03)
 

Я в этот момент свой писал;)

   
Rambler's Top100
вверх

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