PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (4): « 1 [2] 3 4 »
Найдено сообщений: 58
Andrey
Отправлено: 06 Сентября, 2007 - 15:29:34 • Тема: Реферы • Форум: Программирование на PHP
Ответов: 5 Просмотров: 576
valenok пишет: Нет. я писал
$_SERVER['HTTP_REFERER'] , а не SERVER['HTTP_REFERER']
Сделал файл 1.php:
Залил его на сервер. В браузере ввожу: xxxxxx.ru/1.php
и получаю пустую страницу...
Andrey
Отправлено: 05 Сентября, 2007 - 10:43:57 • Тема: Реферы • Форум: Программирование на PHP
Ответов: 5 Просмотров: 576
valenok пишет: echo $_SERVER['HTTP_REFERER'];
Если браузер передаёт это значение то ты будешь знать на каом сайте пользователь нажал на ссылку.
Ещё можно
a href = 'site.ru/index.php?referer=vasya'
по какой ссылке: $_SERVER['REQUEST_URI']
А в каком месте кода это вставлять?
Так?
Andrey
Отправлено: 04 Сентября, 2007 - 16:08:58 • Тема: Реферы • Форум: Программирование на PHP
Ответов: 5 Просмотров: 576
Задумка такая: человек заходит в мой интернет магазин и начинает в корзину набирать товар.
Вопрос: как отследить откуда (c какой страницы, по какой ссылке) пришёл человек?
Даже не представляю с чего начать решение такой задачи...
Andrey
Отправлено: 29 Августа, 2007 - 19:14:09 • Тема: Неполучается вставить данные из формы в БД • Форум: SQL и Архитектура БД
Ответов: 6 Просмотров: 71
valenok пишет: (customer_surname, customer_name, customer_parthname, customer_phone,
customer_email, customer_metro, customer_address, customer_time,
customer_comments)
если это все поля таблицы то сотрите к чёртовой матери эту часть.
В том-то и дело, что заполняю не все поля в таблице, а только некоторые.
Но я проблему решил.
Всего-то надо было в phpmyadmin в свойствах таблицы значение "Сравнение" поменять с "latin1_bin" на "cp1251_bin".
Andrey
Отправлено: 28 Августа, 2007 - 23:29:53 • Тема: Неполучается вставить данные из формы в БД • Форум: SQL и Архитектура БД
Ответов: 6 Просмотров: 71
evgenijj пишет:
Проблемы с кодировкой. Копай в сторону SET NAMES ...
Ну, спасибо! Сам бы я не догадался, что это проблемы с кодировкой!
Попробовал перед кодом вставить такой кусок:
PHP:
скопировать код в буфер обмена
$user_surname = iconv ( "Windows-1251" , "UTF-8" , $user_surname ) ; $user_parthname = iconv ( "Windows-1251" , "UTF-8" , $user_parthname ) ; $user_telephone = iconv ( "Windows-1251" , "UTF-8" , $user_telephone ) ; $user_address = iconv ( "Windows-1251" , "UTF-8" , $user_address ) ; $user_time = iconv ( "Windows-1251" , "UTF-8" , $user_time ) ; $user_addition = iconv ( "Windows-1251" , "UTF-8" , $user_addition ) ;
и такой:
PHP:
скопировать код в буфер обмена
$this -> conn -> query ( "set character_set_client='cp1251'" ) ;
$this -> conn -> query ( "set character_set_results='utf-8'" ) ;
$this -> conn -> query ( "set collation_connection='cp1251_general_ci'" ) ;
Ни то, ни другое не помогает...
Andrey
Отправлено: 28 Августа, 2007 - 22:49:46 • Тема: Неполучается вставить данные из формы в БД • Форум: SQL и Архитектура БД
Ответов: 6 Просмотров: 71
При попытке вставить в БД таблицу customer данные полученные из формы посредством кода представленого ниже:
PHP:
скопировать код в буфер обмена
$sql = "INSERT INTO customer
(customer_surname, customer_name, customer_parthname, customer_phone,
customer_email, customer_metro, customer_address, customer_time,
customer_comments) VALUES ('Алексеев', 'Алексей', 'Алексеевич', '587-2291',
'alex@mail.ru', '3', 'Тихомирова, 28-92', '10-18', 'ХОЧУ')" ;
$res = $this -> conn -> query ( $sql ) ;
if ( $res )
echo "Данные добавлены" ;
else
echo "FUCK" ;
браузер выдаёт "FUCK", то есть данные не добавляется.
Когда я пытаюсь сделать запрос напрямую в базе в MySQL-Front, выдаёт сообщение об ошибке:
-------------------------------- -------------------------------- -------------------------------- ---
Ошибка при выполнении SQL-запроса (1366). Ответ от сервера:
Incorrect string value: "xC0xEBxE5xEAxF1xE5...' for column 'customer_surname'
-------------------------------- -------------------------------- -------------------------------- ----
Как бороться с данной проблемой?
Andrey
Отправлено: 17 Августа, 2007 - 21:57:55 • Тема: Какая ошибка? • Форум: Программирование на PHP
Ответов: 5 Просмотров: 2284
valenok пишет: var_dump($item)
Браузер выдаёт:
object(stdClass)#4 (1) { ["product_price"]=> string(6) "496.15" }
по мере добавления элементов в корзину
object(stdClass)#4 (1) { ["product_price"]=> string(6) "496.15" }
object(stdClass)#3 (1) { ["product_price"]=> string(6) "376.83" }
object(stdClass)#5 (1) { ["product_price"]=> string(5) "82.00" }
Andrey
Отправлено: 15 Августа, 2007 - 23:42:50 • Тема: Какая ошибка? • Форум: Программирование на PHP
Ответов: 5 Просмотров: 2284
valenok пишет: phpfaq.ru/debug
Вы порверяли что находится в item во время исполнения вашей строки?
Для проверки этого добавил в код строку
Браузер выдает:
Catchable fatal error: Object of class stdClass could not be converted to string in C:Program FilesApache GroupApache2htdocsmyshop0class.e shop.php on line 424
Andrey
Отправлено: 15 Августа, 2007 - 22:51:37 • Тема: Какая ошибка? • Форум: Программирование на PHP
Ответов: 5 Просмотров: 2284
Кусок кода:
PHP:
скопировать код в буфер обмена
function calculate_price( $cart )
{
$price = 0 ;
{
foreach ( $cart as $isbn => $qty )
{
$sql = "SELECT product_price FROM product WHERE product_id='$isbn '" ;
$res = $this -> conn -> query ( $sql ) ;
if ( $res )
{
$item = $res -> fetch_object ( ) ;
$item_price = $item -> price ;
$price += $item_price * $$qty ;
}
}
}
return $price ;
}
Когда программа выполняет эту часть кода, браузер выдаёт ошибку:
Notice: Undefined property: stdClass::$price in C:Program FilesApache GroupApache2htdocsmyshop0class.e shop.php on line 424
424 строка это:
В чём проблема?
Andrey
Отправлено: 06 Августа, 2007 - 21:22:19 • Тема: Некорректное обновление корзины • Форум: SQL и Архитектура БД
Ответов: 9 Просмотров: 102
evgenijj, спасибо за ссылки - очень познавательно.
evgenijj пишет: Даже если ты вынес тег формы за пределы цикла - это еще не решает твоей проблемы - у тебя в этой форме столько ошибок, что я удивляюсь, что хоть как-то работает.
И всё-таки я обратился на этот форум за помощью - если бы всё работало, я бы неспрашивал. Нет глупых вопросов, но есть глупые ответы!
Что надо переписать в моём скрипте для корректного обновления корзины? Заранее благодарю.
Andrey
Отправлено: 06 Августа, 2007 - 16:55:08 • Тема: Некорректное обновление корзины • Форум: SQL и Архитектура БД
Ответов: 9 Просмотров: 102
valenok пишет: В браузере Internet Explorer исходный код можно посмотреть, выбрав в меню Вид - Просмотр HTML-кода.
Если не увидите там ничего интересного - скопируйте сюда.
HTML код чего корзины?
Andrey
Отправлено: 06 Августа, 2007 - 08:16:41 • Тема: Некорректное обновление корзины • Форум: SQL и Архитектура БД
Ответов: 9 Просмотров: 102
evgenijj пишет: Тот факт, что строка
< form action="update_cart.php" method="GET" >
находится внутри цикла foreach - не наводит на размышления?
Так я её специально туда и вставил, чтобы цикл перебирал всё содержимое корзины...
Переставил сейчас эту строку перед foreach, но проблема таже - обновляется только последний товар.
Andrey
Отправлено: 05 Августа, 2007 - 22:28:59 • Тема: Некорректное обновление корзины • Форум: SQL и Архитектура БД
Ответов: 9 Просмотров: 102
Ситуация такая: Есть корзина в виде таблицы cart:
cart_id
cart_customer
prioduct_id
cart_qty
datetime
Таблица выводится функцией display_cart, код которой приведён ниже:
class.eshop.php
PHP:
скопировать код в буфер обмена
<?PHP
...
function display_cart( $cart_array ) {
echo '<center>Корзина пуста - Вы ещё ничего не выбрали</center><br><br>' ; ?>
<center><a href="index.php">Вернуться к выбору товара</a></center><?PHP sum= 0 ;
} else { ?>
<strong><center>Ваша корзина:</center></strong><br>
<table border="0" align="center">
<th>Артикул</th>
<th>Наименование</th>
<th>Количество</th>
<th>Цена, руб.</th>
<th>Сумма, руб.</th></tr>
<?PHP
foreach ( $cart_array as $row ) { ?>
<tr><td align="center"><?PHP echo $row [ 'product_articul' ] ; ?> </td> <td><?PHP echo $row [ 'product_title' ] ; ?> </td>
<form action="update_cart.php" method="GET">
<input type="hidden" name="cartid" value="<?PHP echo $row [ 'cart_id' ] ; ?> ">
<td align="center"><input type="integer" name="qty" value="<?PHP echo $row [ 'cart_qty' ] ; ?> " size=1></td>
<td align="center"><?PHP echo $row [ 'product_price' ] ; ?> </td>
<input type="hidden" name="urll" value="<?PHP echo $_SERVER [ 'REQUEST_URI' ] ; ?> ">
<td align="center"><?PHP echo $row [ 'cart_qty' ] * $row [ 'product_price' ] ;
$sum = $sum + $row [ 'cart_qty' ] * $row [ 'product_price' ] ;
$totalqty = $totalqty + $row [ 'cart_qty' ] ;
$this -> totalqty = $totalqty ;
?> </td></tr>
<?PHP } ?>
<tr><td colspan="5"> </td></tr>
<tr><td colspan="4"> <b>Итоговая сумма заказа без учёта доставки:</b></td>
<td align="center"><b><?PHP echo $sum ; ?> руб.</b></td></tr>
<tr align="right"><td colspan="5"><input type="submit" value="Пересчитать"></TD></form></td></tr></table><br><br><br>
<center><a href="index.php">Вернуться к выбору товара</a></center><?PHP
}
$this -> sum = $sum ;
return $sum ;
return $totalqty ; }
function update_cart( $cartid , $qty )
{
$sql = "UPDATE cart SET cart_qty='" . $qty . "'WHERE cart_id=" . $cartid ;
$res = $this -> conn -> query ( $sql ) ;
if ( $res )
echo "Корзина обновлена" ;
else { echo 'Корзина необновлена' ; } }
...
?>
В итоге появляется корзина заказа в иде таблицы, напрмер:
Артикул Наименование Количество Цена, руб. Сумма, руб.
2242 Дополнительные кубики 10 496.15 3969.2
2734 6 прямых рельсов для поезда 2 376.83 12435.39
Итоговая сумма заказа без учёта доставки: 16404.59 руб.
Пересчитать
причем количество можно менять. Задумка, чтобы после нажатия на "Пересчитать" количество в таблице cart менялось. Вот код:
update_cart.php
PHP:
скопировать код в буфер обмена
<?PHP
include ( 'class.eshop.php' ) ;
$eshop = new EshopDB( ) ;
@ $cartid = $_GET [ 'cartid' ] ;
@ $qty = $_GET [ 'qty' ] ;
@ $url = $_GET [ 'urll' ] ;
$eshop -> update_cart ( $cartid , $qty ) ;
?>
В итоге меняетсяколичество только последнего товара: если товаров в корзине 5, то пятого товара, если 10 - то десятого и т.д. То есть корректно корзина работает только, если в корзине 1 товар.
В действии можете посмотреть на http://magazinigrushek.ru.
Andrey
Отправлено: 03 Августа, 2007 - 23:40:33 • Тема: Получить данные из таблицы MySQL • Форум: SQL и Архитектура БД
Ответов: 1 Просмотров: 32
Корзину магазина представил в виде таблицы:
cart_id
cart_customer
product_id
cart_qty
datetime.
Допустим, клиент походил по магазину, накидал товара в корзину. Хочу вывести то, что он заказал, то есть в самом простом виде табличку, где cart_customer=session_id.
PHP:
скопировать код в буфер обмена
<?PHP
include ( 'class.eshop.php' ) ;
$eshop = new EshopDB( ) ;
$cart_array = $eshop -> get_cart ( $customer ) ;
$eshop -> display_cart ( $cart_array ) ;
?>
class.eshop.php
PHP:
скопировать код в буфер обмена
<?
function __construct( ) {
include ( 'config.inc.php' ) ;
$this -> conn = new mysqli( $DB_HOST , $DB_LOGIN , $DB_PASSW , $DB_DATABASE ) ;
$this -> conn -> query ( "set character_set_client='cp1251'" ) ;
$this -> conn -> query ( "set character_set_results='cp1251'" ) ;
$this -> conn -> query ( "set collation_connection='cp1251_general_ci'" ) ;
}
function get_cart( $customer )
{
$sql = "select * from cart where cart_customer=" . $customer ;
$res = $this -> conn -> query ( $sql ) ;
if ( ! $res )
return false ;
$num_cats = $res -> num_rows ;
if ( $num_cats == 0)
return false ;
$res = $this -> db_result_to_array ( $res ) ;
return $res ;
}
function db_result_to_array( $res )
{
for ( $count = 0 ; $row = $res -> fetch_assoc ( ) ; $count ++ )
$res_array [ $count ] = $row ;
return $res_array ;
}
function display_cart( $res_array ) {
echo 'Корзина пуста!<br>' ;
return ; }
foreach ( $cart_array as $row )
{
echo $row [ 'cart_id' ] . "<br>" ;
echo $row [ 'product_id' ] . "<br>" ;
echo $row [ 'cart_qty' ] . "<br>" ;
}
}
?>
Результат этих скриптов - пустая страница.
Страниц (4): « 1 [2] 3 4 »
Powered by ExBB FM 1.0 RC1. InvisionExBB