PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
arhat
Отправлено: 25 Марта, 2014 - 14:26:08
Новичок
Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014
Откуда: Москва
Помог: 0 раз(а)
Благодарю за подсказки, что то начало вырисовываться. В общем наковырял и состряпал вот такой код для вывода размеров. Но нутром чувствую, что он такой грубый...!!! Как его облагородить?
PHP:
скопировать код в буфер обмена
<form method = "post">
Выберите размер
<select name="size" >
<?PHP
$a = mysql_query ( "SELECT * FROM sizes WHERE `sizes`.id_boot='$id ' " ) ; {
echo "<option value=$b[0] > $b[2] </option>" ;
}
?>
</select>
Через id_boot связываюсь с id товара. Размеры корректно выходят.
(Добавление)
Теперь выбранный размер нужно выводить в корзину...... Но в неё пока летит только размер 19...Прикреплено изображение (Нажмите для увеличения) (Отредактировано автором: 25 Марта, 2014 - 14:42:19)
Исильдур
Отправлено: 25 Марта, 2014 - 14:40:42
Гость
Покинул форум
Сообщений всего: 68
Дата рег-ции: Март 2012
Помог: 1 раз(а)
arhat
Лучше не делайте скринов, а сделайте
Так понятней будет.(Отредактировано автором: 25 Марта, 2014 - 14:41:32)
arhat
Отправлено: 25 Марта, 2014 - 14:50:46
Новичок
Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014
Откуда: Москва
Помог: 0 раз(а)
А, всё понял
CODE (
SQL ):
скопировать код в буфер обмена
sizes CREATE TABLE `sizes` (
`id` int( 5) NOT NULL AUTO_INCREMENT ,
`id_boot` varchar( 100) NOT NULL ,
`size` int( 5) NOT NULL ,
`description` varchar( 100) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE= MyISAM AUTO_INCREMENT = 11 DEFAULT CHARSET= utf8
Исильдур
Отправлено: 25 Марта, 2014 - 15:39:22
Гость
Покинул форум
Сообщений всего: 68
Дата рег-ции: Март 2012
Помог: 1 раз(а)
arhat
arhat пишет: `id_boot` varchar(100) NOT NULL,
Почему не int?
Хотя бы так.
А еще лучше, собрать все данные по товару одним запросом, а потом в шаблоне выводить что нужно.
arhat
Отправлено: 25 Марта, 2014 - 20:29:45
Новичок
Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014
Откуда: Москва
Помог: 0 раз(а)
Исильдур пишет: arhat
arhat пишет: `id_boot` varchar(100) NOT NULL,
Почему не int?
Хотя бы так.
А еще лучше, собрать все данные по товару одним запросом, а потом в шаблоне выводить что нужно.
Не, так вообще ошибку выдаёт: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\MyShop\views\pages\product.php on line 26.
Поэтому в этом коде отскочу пока назад.....
А так с выводом всех параметров товара проблем нет, я отдельно через функцию get_product делаю. Всё вроде как красиво получается. А вот с размерами пока криво (Отредактировано автором: 26 Марта, 2014 - 05:43:44)
arhat
Отправлено: 26 Марта, 2014 - 19:45:42
Новичок
Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014
Откуда: Москва
Помог: 0 раз(а)
С выбором размера справился. Теперь осталось как то передавать в корзину вместе с описанием самого товара и размер, но пока в корзину летит только размер 19.....
Вот форма просмотра товара:
PHP:
скопировать код в буфер обмена
<table align="center" style="border-width: 1; border-style: dashed" class="product" width="200" height="200">
<tr>
<td valign="top" align="center" cellpadding="5" cellspacing="5">
<div><a href="#"><img src="userfiles/<?= $product [ 'image' ] ?> " width="150" height="100" alt="" /></a></div>
<div class="description">
<div class="product-name"><a href="#"><?= $product [ 'title' ] ?> </a></div>
<div class="product-price">Цена: <?= $product [ 'price' ] ?> руб</div>
</div>
</td>
<td valign="top">
<div><?= $product [ 'description' ] ?> </a></div>
<form method = "post">
Выберите размер
<select name="size" >
<?PHP
$a = mysql_query ( "SELECT * FROM sizes WHERE `sizes`.`id_boot`='$id ' " ) ; {
echo "<option selected value=$b[0] > $b[2] </option>" ;
}
?>
</select>
</form>
<div><a href="index.php?view=add_to_cart&id=<?= $product [ 'id' ] ?> ">Добавить в корзину</a></div>
</td>
</tr>
</table>
В последнюю ссылку вместе с переменной $product нужно как то ещё правильно передать размер обуви, но принцип пока не допёр.....
Вот форма корзины. Здесь нужно тоже как то правильно принимать размер.....
PHP:
скопировать код в буфер обмена
<h2 align="center">Ваша корзина товаров</h2>
<?PHP
if ( $_SESSION [ 'cart' ] )
{
?>
<body >
<form action="index.php?view=update_cart" method="post" id="cart-form">
<table id="mycart" align="center" cellspacing="0" cellpadding="0" border="0" >
<tr>
<th>Товар</th>
<th>Размер</th>
<th>Цена</th>
<th>Кол-во</th>
<th>Всего</th>
</tr>
<?PHP foreach ( $_SESSION [ 'cart' ] as $id => $quantity ) :
$product = get_product( $id ) ;
$sizes = get_sizes( $id ) ;
?>
<tr>
<td align="center"><?= $product [ 'title' ] ; ?> </td>
<td align="center"> <?= $sizes [ 'size' ] ; ?> </td>
<td align="center">
<?= number_format ( $product [ 'price' ] , 2
) ; ?> руб</td>
<td align="center"><input type="text" size="2" name="<?= $id ; ?> " maxlength="2" value="<?= $quantity ; ?> " /></td>
<td align="center">
<?= number_format ( $product [ 'price' ] * $quantity , 2
) ; ?> руб</td>
</tr>
<?PHP endforeach ; ?>
</table>
<p class="total" align="center">Общая сумма заказа: <span class="product-price">
<?= number_format ( $_SESSION [ 'total_price' ] , 2
) ; ?> руб</span></p>
<p align="center"><input type="submit" name="update" value="Обновить" /></p>
</form>
</body>
<p align="center"><a href="index.php?view=order">Оформить заказ</a></p>
<?PHP
}
else
{
echo "<p align='center' style='color:#fffaaa'>Ваша корзина пуста!</p>" ;
}
?>
esterio
Отправлено: 31 Марта, 2014 - 13:36:27
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012
Откуда: Украина, Львов
Помог: 127 раз(а)
arhat пишет: $a=mysql_query("SELECT * FROM sizes WHERE `sizes`.`id_boot`='$id' ");
while ($b = mysql_fetch_array($a))
{
echo "<option selected value=$b[0] > $b[2] </option>";
}
?>
CODE (
htmlphp ):
скопировать код в буфер обмена
$query = mysql_query('SELECT id, title FROM sizes WHERE `sizes`.`id_boot`='.(int)$id);
while($row = mysql_fetch_assoc($query))
{
?>
< option selected value= "<?php echo $row ['id']; ?> "><? php echo $row [ 'title' ] ; ?> </ option>
<? php
}
А в общем все данные нужно загнать в массив еще до вывода
arhat
Отправлено: 31 Марта, 2014 - 14:50:45
Новичок
Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014
Откуда: Москва
Помог: 0 раз(а)
esterio пишет:
CODE (
htmlphp ):
скопировать код в буфер обмена
$query = mysql_query('SELECT id, title FROM sizes WHERE `sizes`.`id_boot`='.(int)$id);
while($row = mysql_fetch_assoc($query))
{
?>
< option selected value= "<?php echo $row ['id']; ?> "><? php echo $row [ 'title' ] ; ?> </ option>
<? php
}
А в общем все данные нужно загнать в массив еще до вывода
esterio , так вообще ошибки выдаёт в выводе товара,хотя закрыл фиг.скобку.... Parse error: syntax error, unexpected end of file
chivik
Отправлено: 31 Марта, 2014 - 18:46:28
Новичок
Покинул форум
Сообщений всего: 3
Дата рег-ции: Март 2014
Помог: 0 раз(а)
Делаю похожий сайт с одеждой.
Размеры у меня прописаны на сайте.
PHP:
скопировать код в буфер обмена
<?PHP include ( "blocks/bd.php" ) ;
if ( ! isset ( $_SESSION [ 'cart' ] ) ) {
$_SESSION [ 'cart' ] = array ( ) ; $_SESSION [ 'total_items' ] = 0 ;
$_SESSION [ 'total_price' ] = '0.0' ;
$_SESSION [ 'total_size' ] = '' ;
}
if ( isset ( $_GET [ 'id' ] ) ) { $id = $_GET [ 'id' ] ; } //unset ($_SESSION['cart']);
$query = mysql_query ( "SELECT * FROM products WHERE id='$id '" , $db ) ; ?>
<div id="item_name_view">
<div id="item_border">
<div id="item">
<img src="img/dress/<?= $result [ "image" ] ; ?> .jpg" />
</div>
</div>
</div>
<h1 align="center"><?= $result [ "title" ] ; ?> </h1>
<br>
<p><em><?= $result [ "description" ] ; ?> </em></p>
<p>
<b class="blue">Артикул:</b> <?= $result [ "article" ] ; ?>
<br>
<b class="blue">Цена:</b> <strong><?= $result [ "price" ] ; ?> руб.</strong>
<br>
<b class="blue">Размер:</b>
<form action="cart_fns.php" method="get" name="form_s">
<select name='select[]'>
<option value='0'><b>Выберите из списка</b></option>
<option value='XS'>32/34 (XS)</option>
<option value='S'> 36/38 (S)</option>
<option value='M'>40/42 (M)</option>
<option value='L'>44/46 (L)</option>
<option value='XL'>48/50 (XL)</option>
</select>
<b class="blue">Количество:</b> - 1 +
</p>
<a href="cart_fns.php?id=<?= $result [ 'id' ] ?> "><img src="img/system/add_to_cart.png" /></a>
<input name="id" type="hidden" value="<?= $result [ 'id' ] ?> ">
<p align="center"><input type="submit" name="order" value="Добавить"/></p>
</form>
Сам обработчик
PHP:
скопировать код в буфер обмена
include ( "blocks/bd.php" ) ;
if ( isset ( $_GET [ 'id' ] ) ) { $id = $_GET [ 'id' ] ; }
if ( isset ( $_GET [ 'select' ] ) ) { $select = $_GET [ 'select' ] ; }
if ( isset ( $_SESSION [ 'cart' ] [ $id ] ) ) {
$_SESSION [ 'cart' ] [ $id ] ++;
}
else
{
$_SESSION [ 'cart' ] [ $id ] = 1 ;
}
/////////////////////////////////////////////////////////////////////////
function total_size( $cart )
{
$total_size = '' ;
{
$vars = $_SESSION [ 'total_size' ] ;
foreach ( $_GET [ 'select' ] as $id => $val ) {
$query = "$val " ;
$total_size .= "$vars , $query " ; }
}
return $total_size ;
}
///////////////////////////////////////////////////////////////////////////////
function total_items( $cart )
{
$num_items = 0 ;
{
foreach ( $cart as $id => $qty )
{
$num_items = $num_items + $qty ;
}
}
return $num_items ;
}
function total_price( $cart )
{
$total_price = 0.0 ;
{
foreach ( $cart as $id => $qty )
{
$query = "SELECT price FROM products WHERE id='$id '" ;
if ( $result )
{
$total_price = $total_price + $item_price * $qty ;
}
}
}
return $total_price ;
}
$_SESSION [ 'total_size' ] = total_size( $_SESSION [ 'cart' ] ) ;
$_SESSION [ 'total_items' ] = total_items( $_SESSION [ 'cart' ] ) ;
$_SESSION [ 'total_price' ] = total_price( $_SESSION [ 'cart' ] ) ;
header ( 'Location: dress.php?id=' . $id ) ; ?>
Тоже проблема с размером.... Если 1 платью выбрать размер XS, потом еще M, а другому платью выбрать S, то в корзине будут у всех платьев одни и те же размеры (XS,M,S)... 2 недели не могу решить проблему(((
Вывод корзины
PHP:
скопировать код в буфер обмена
<?PHP
if ( $_SESSION [ 'cart' ] )
{
foreach ( $_SESSION [ 'cart' ] as $id => $quantity ) :
$query = mysql_query ( "SELECT * FROM products WHERE id='$id '" , $db ) ; $total_size = $_SESSION [ 'total_size' ] ;
?>
<div id="cart">
<div id="cart_img"><img src="img/dress/<?= $row [ 'image' ] ; ?> .jpg" /></div>
<div id="cart_namet" class="cart_namet">
<a href="#"><?= $row [ 'title' ] ; ?>
<br>
Артикул: <?= $row [ 'article' ] ; ?> </a>
<br>
Размер: <?= $total_size ; ?>
</div>
<div id="cart_cell"><?= $row [ 'price' ] ; ?> руб.</div>
<div id="cart_cell"><input type="text" size="2" name="<?= $id ; ?> " maxlength="2" value="<?= $quantity ; ?> " /></div>
<div id="cart_cell">
<?= number_format ( $row [ 'price' ] * $quantity , 2
) ; ?> руб.</div>
<? endforeach ; ?>
<div id="sum">
<b>Итого:</b> <b class="blue">
<?= number_format ( $_SESSION [ 'total_price' ] , 2
) ; ?> руб.</b><br>
<a href="order.php"><img src="img/system/buy.png" /></a>
</div>
<?PHP
}
else
{
echo "Ваша корзина пуста!" ;
}
?>
chivik
Отправлено: 03 Апреля, 2014 - 17:05:38
Новичок
Покинул форум
Сообщений всего: 3
Дата рег-ции: Март 2014
Помог: 0 раз(а)
Если кому пригодится, сделал то что хотел. При выборе размера платья, размер отправляется в корзину, у каждого платья свой размер.
PHP:
скопировать код в буфер обмена
файл обработчик.
/////////////////////////////////////////////////////////////////////////
if ( ! isset ( $_SESSION [ 'razmer' ] ) ) {
echo "<br>Заводим новую сессию.<br>" ;
$_SESSION [ 'razmer' ] = array ( ) ; $_SESSION [ 'razmer' ] [ $id ] = $id ;
$_SESSION [ 'size' ] [ $id ] = '' ;
echo "Вывод id" ;
echo $_SESSION [ 'razmer' ] [ $id ] ;
foreach ( $_POST [ 'select' ] as $key => $val ) {
$query = "$val " ;
$total_size .= "$query " ;
$_SESSION [ 'size' ] [ $id ] = $total_size ;
echo "<br>SESSION " ;
}
elseif ( $_SESSION [ 'razmer' ] [ $id ] == $id )
{
echo "<br>Изменяем старую сессию.<br>" ;
echo "Вывод id" ;
echo $_SESSION [ 'razmer' ] [ $id ] ;
$vars = $_SESSION [ 'size' ] [ $id ] ;
foreach ( $_POST [ 'select' ] as $key => $val ) {
$query = "$val " ;
$total_size .= "$vars , $query " ;
$_SESSION [ 'size' ] [ $id ] = $total_size ;
}
elseif ( $_SESSION [ 'razmer' ] [ $id ] != $id )
{
echo "<br>Заводим новую сессию. C НОВЫМ id<br>" ;
$_SESSION [ 'razmer' ] [ $id ] = $id ;
$_SESSION [ 'size' ] [ $id ] = '' ;
echo "Вывод id" ;
echo $_SESSION [ 'razmer' ] [ $id ] ;
foreach ( $_POST [ 'select' ] as $key => $val ) {
$query = "$val " ;
$total_size .= "$query " ;
$_SESSION [ 'size' ] [ $id ] = $total_size ;
echo "<br>SESSION " ;
}
///////////////////////////////////////////////////////////////////////////////
Поиск в теме | Версия для печати
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB