За последние 24 часа нас посетили 20156 программистов и 1724 робота. Сейчас ищут 1962 программиста ...

Помогите с алгоритмом скрипта

Тема в разделе "PHP для новичков", создана пользователем Novi4ek_pro, 20 июл 2015.

  1. Novi4ek_pro

    Novi4ek_pro Новичок

    С нами с:
    11 мар 2015
    Сообщения:
    12
    Симпатии:
    1
    Здравствуйте, товарищи!
    Нужна помощь с алгоритмом работы скрипта. Собственно, я пытаюсь практиковаться на онлайн игрушках и возникла проблема, которую долго не могу решить, пробовал много различных способов- результата нет.

    Сама проблема: есть две таблице в БД, одна называется "training_prof", в которой содержится информация о созданных профессиях, вторая таблица- "teacher", в которую записывается то, кто что изучает\изучил через столбец "check"( 1-изучил, 0- изучается в данный момент) здесь я все сделал. Но, далее хотел сделать так: чтобы заходя на страницу с выбором профессии отображались только те, которые пользователь не изучил ( т.е либо в таблице "teacher" в поле check -0, или совсем отсутствует строка для пользователя.

    Кусок кода, ищет только одну изученную профессию ( знаю, что не так, но не знаю как сделать правильно)

    Код (PHP):
    1. $query222 = mysql_query("select * from `teacher` where `kto`='".$user['id']."' and `check`='1' order by `id` asc  ");
    2. $res23 = mysql_fetch_assoc($query222);
    3. $query1 = mysql_query("select * from `training_prof` where `prof`='".$user['pol']."' and `type`='1' and id!='".$res23['id_training']."' order by `id` asc  ");
    4.  
    5.     while($res2 = mysql_fetch_assoc($query1))
    6.     {
    7.  
    8.             $time=$res2[time];
    9.  
    10. $hours = floor($time/3600);
    11. $min=floor($minutes = ($time/3600 - $hours)*60);
    12. //$seconds = ceil(($minutes - floor($minutes))*60);    
    13.         
    14.         $timing="$hours ч: $min м $seconds";
    15.      echo '[url="training.php?mod=info&id='.$res2['id'].'"]'.$res2['name'].'[/url]<br /> <b>Цена:'.$res2['cine'].'</b> руб.</br />
    16.      
    17.      <FONT SIZE=2> <b>Время '.$timing.'</b></FONT></br>
    18.  ';     
    19.         } 
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    У вас должно быть 2 массива/списка:
    1. Список всех профессий
    2. Список профессий, которыми владеет персонаж

    Задача вывода профессий которые ещё не были изучены сводится к выводу списка 1, исключая элементы списка 2, что можно сделать хоть на уровне логики шаблона.

    С точки зрения реализации, запрашивать список 1 у СУБД на лету (при запросе страницы со списком профессий) нет вообще никакого смысла: держите его в кеше и перешивайте кеш при добавлении/удалении профессий.

    З.Ы. Оформляйте код как положено. Читать неоформленную галиматью сложнее.