<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

В рамках упражнений курса Вы параллельно со мной будете создавать свою большую программу на Java, что даст Вам необходимую практику, после которой для Вас уже не будет разницы, какого размера создавать программы.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Ошибочка
01.09.2014 21:13:15 Ошибочка Сообщение #1
DimasikYes

DimasikYes

Новичок

Новичок

Дата регистрации:
01.09.2014 15:40:54

Сообщений: 10

Добрый вечер!

$connection = @mysqli_connect(HOST, USER, PASS, DB) or die("Нет соединения с БД";
mysqli_set_charset($connection, "utf8" or die("Не установлена кодировка соединения";
function eyestopper($eyestopper, $connection){
$query = "SELECT goods_id, name, img, price FROM goods
WHERE visible='1' AND $eyestopper='1'";
$res = mysqli_query($connection, $query) or die(mysqli_error($connection));
 
$eyestoppers = array();
while($row = mysqli_fetch_assoc($res)){
  $eyestoppers[] = $row;
}
 
return $eyestoppers;
}
$view = empty($_GET['view']) ? 'activ' : $_GET['view'];

switch($view){
case('hits':
  // лидеры продаж
  $eyestoppers = eyestopper('hits', $connection);
break;
 
case('new':
  // новинки
  $eyestoppers = eyestopper('new', $connection);
break;
 
case('sale':
  // распродажа
  $eyestoppers = eyestopper('sale', $connection);
break;
  
default:
  // если из адресной строки получено имя несуществующего вида
  $view = 'activ';
  $eyestoppers = eyestopper('activ', $connection);
}

Ошибка выходит: Unknown column 'activ' in 'where clause'
hits, new, sale, activ - это у меня шаблоны. Что интересно, если прописать любое из трех (hits, new, sale), например: 
default:
  // если из адресной строки получено имя несуществующего вида
  $view = 'hits';
  $eyestoppers = eyestopper('hits', $connection);
то ошибки не выйдет, а все эти 4 файла одинаковые по структуре (hits, new, sale, activ).
Помогите разобраться.
Профиль Ответить
01.09.2014 21:56:27 Ошибочка Сообщение #2
DimasikYes

DimasikYes

Новичок

Новичок

Дата регистрации:
01.09.2014 15:40:54

Сообщений: 10

В принципе понял, то что нет такого столбца (activ) в таблице. А как избежать этой ошибки, без проверки по БД поля activ, все таки у меня это подключаемые динамические шаблоны.
Конечно, можно просто добавить пустую строку - active, все будет работать, но это не правильно так избежать ошибку.
Профиль Ответить
02.09.2014 20:50:01 Ошибочка Сообщение #3
fabrigas201

fabrigas201

Продвинутый

Продвинутый

Дата регистрации:
20.01.2012 13:08:31

Сообщений: 59

Получается для шаблонов создаете новое поле в базе.
А не легче создать оно поле и туда записывать активный шаблон. Ну если вам нужно хранить все шаблоны в базе. то создайте отдельную таблицу для этого. 
Профиль Ответить
02.09.2014 20:58:19 Ошибочка Сообщение #4
DimasikYes

DimasikYes

Новичок

Новичок

Дата регистрации:
01.09.2014 15:40:54

Сообщений: 10

А в первом сообщении программный код оптимальный? Не будет нагружать сервер? При том что создам поле в БД activ.
Профиль Ответить
02.09.2014 21:00:32 Ошибочка Сообщение #5
DimasikYes

DimasikYes

Новичок

Новичок

Дата регистрации:
01.09.2014 15:40:54

Сообщений: 10

И да в этих полях забыл сказать, только выбирается либо 0 либо 1. То есть либо товар отображать на сайте либо нет.
Профиль Ответить
02.09.2014 21:08:16 Ошибочка Сообщение #6
fabrigas201

fabrigas201

Продвинутый

Продвинутый

Дата регистрации:
20.01.2012 13:08:31

Сообщений: 59

тут я понял идет статус товара. ТО я делал так, создавал поле satus и туда писал  так например
1 - продан
2 -новый
3 - хит продаж
и так далее
0 -без статуса

Это конечно при условии, что к товару нельзя применить больше одного статуса. Обычно это и не надо

Создавать лишние поля, тоже не хорошо,, если конечно без них нельзя обойтись

Но для функции, отображать товар или нет, думаю нужно создать поле, у вас например это activ но для остального одного достаточно
Профиль Ответить
02.09.2014 22:36:24 Ошибочка Сообщение #7
DimasikYes

DimasikYes

Новичок

Новичок

Дата регистрации:
01.09.2014 15:40:54

Сообщений: 10

Сейчас посидел подумал, но не получается. Что именно: подскажите пожалуйста, а как то можно по первому моему сообщению сделать условие, что если нет товара в наличии, это показать (нет в наличии), если можно то как, Спасибо за то, что помогаете!)

Это на вывод товаров:
<div class="catalog-index">
<h1>Новинки</h1>
<?php if($eyestoppers): ?>
                      <?php foreach($eyestoppers as $eyestopper): ?>
                      <div class="product-index">
                   <h2><a href="?view=product&goods_id=<?=$eyestopper['goods_id']?>"><?=$eyestopper['name']?></a></h2>
                   <a href="?view=product&goods_id=<?=$eyestopper['goods_id']?>"><img src="<?=TEMPLATE?>images/<?=$eyestopper['img']?>" alt="" /></a>
                   <p>Цена :  <span><?=$eyestopper['price']?> р.</span></p>
                   <a href="?view=addtocart&goods_id=<?=$eyestopper['goods_id']?>"><img class="addtocard-index" src="<?=TEMPLATE?>images/addcard-index.jpg" alt="Добавить в карзину" /></a>
                      </div>
                      <?php endforeach; ?>
                     <?php else: ?>
                         <p style="margin: 0 0 0 60px;">Здесь товаров пока нет!</p>
                 <?php endif; ?>
</div>
То есть я создаю поле с любым названием, где будет стоять отметка, если нет в наличии ( то допустим поставить 0). Остается мне написать условие правильно.
Профиль Ответить
02.09.2014 22:43:46 Ошибочка Сообщение #8
DimasikYes

DimasikYes

Новичок

Новичок

Дата регистрации:
01.09.2014 15:40:54

Сообщений: 10

Забыл, у меня есть поле visible в таблице, если там поставишь 0, то товар не будет отображаться. Вот можно как то задать условие для него, что если 0 то, показать что нет в наличии.
WHERE visible='1' AND $eyestopper='1'";
Профиль Ответить
03.09.2014 12:09:06 Ошибочка Сообщение #9
fabrigas201

fabrigas201

Продвинутый

Продвинутый

Дата регистрации:
20.01.2012 13:08:31

Сообщений: 59

Убрать условие visible в запросе, а потом просто с помощью if  проверять чему равно visible
Профиль Ответить
03.09.2014 16:29:21 Ошибочка Сообщение #10
DimasikYes

DimasikYes

Новичок

Новичок

Дата регистрации:
01.09.2014 15:40:54

Сообщений: 10

Это да, я выше и написал, только не указал, что условие visible убрать. А что писать в кавычках if?
Я это и не могу выполнить(
Профиль Ответить