PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (81): В начало « ... 68 69 70 71 [72] 73 74 75 76 ... » В конец

> Найдено сообщений: 1209
evgenijj Отправлено: 09 Марта, 2007 - 12:33:07 • Тема: upload данных на сервер... • Форум: Программирование на PHP

Ответов: 6
Просмотров: 711
Ничего удивительного. Что это такое:
$filename = $_FILES['filename']['$pic'];
Цитата:

# $_FILES['uploadfile']['name'] - имя файла до его отправки на сервер, например, pict.gif;
# $_FILES['uploadfile']['size'] - размер принятого файла в байтах;
# $_FILES['uploadfile']['type'] - MIME-тип принятого файла (если браузер смог его определить), например: image/gif, image/png, image/jpeg, text/html;
# $_FILES['uploadfile']['tmp_name'] (так мы назвали поле загрузки файла) - содержит имя файла во временном каталоге, например: /tmp/phpV3b3qY;
# $_FILES['uploadfile']['error'] - Код ошибки, которая может возникнуть при загрузке файла.

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $pic=$id1.".gif";
  4. $uploaddir = '/home2/djbeat/public_html/' ;
  5. $uploadfile = $uploaddir.$pic;
  6. ?>
  7.  

Полный вариант
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if($_FILES["filename"]["size"] > 1024*1*1024)
  4. {
  5.         echo ("размер файла больше 1 мб");
  6. }
  7. else
  8. {
  9.         if(substr($_FILES["filename"]["name"],-4)==".gif"))
  10.         {
  11.                 $uploaddir = '/home2/djbeat/public_html/images/';
  12.                 // Гораздо лучше использовать глобальные переменные
  13.                 // $uploaddir = $_SERVER["DOCUMENT_ROOT"].'/images/';
  14.                 $filename = $id1.".gif";
  15.                 $uploadfile = $uploaddir.$filename;
  16.                 if (@move_uploaded_file($_FILES['filename']['tmp_name'], $uploadfile))
  17.                         print "File was successfully uploaded.";
  18.                 else
  19.                         print "There some errors!";
  20.         }
  21.         else
  22.         {
  23.                 print "File is not valid."
  24.         }
  25. }
  26. ?>
  27.  
evgenijj Отправлено: 08 Марта, 2007 - 19:36:09 • Тема: Ошибка при запросе типа SELECT к базе mysql • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 51
Цитата:

К симптомам повреждения таблицы относятся неожиданные прерывания выполнения запросов и появление следующих ошибок:

* `tbl_name.frm' is locked against change (Файл заблокирован для изменений)
* Can't find file `tbl_name.MYI' (Errcode: ###) (Не могу найти файл `tbl_name.MYI' (Ошибка: ###))
* Unexpected end of file (Неожиданно наступил конец)
* Record file is crashed (Файл записей испорчен)
* Got error ### from table handler (Получена ошибка ### от дескриптора таблицы). Для получения более подробной информации об ошибке можно выполнить perror ###. Чаще всего о проблемах с таблицей свидетельствуют следующие ошибки:

shell> perror 126 127 132 134 135 136 141 144 145
126 = Index file is crashed / Wrong file format
127 = Record-file is crashed
132 = Old database file
134 = Record was already deleted (or record file crashed)
135 = No more room in record file
136 = No more room in index file
141 = Duplicate unique key or constraint on write or update
144 = Table is crashed and last repair failed
145 = Table was marked as crashed and should be repaired


Придется тебе прочитать об администрировании БД и попробовать отремонтировать таблицу
http://www[dot]mysql[dot]ru/docs/man/Dis[dot][dot][dot]_Prevention[dot]html
evgenijj Отправлено: 07 Марта, 2007 - 15:30:31 • Тема: покупательская корзина • Форум: Программирование на PHP

Ответов: 28
Просмотров: 6391
В начале скрипта пишем
session_start();
И обращаемся к массиву $_SESSION, в котором и хранится информация о товарах в корзине.
evgenijj Отправлено: 07 Марта, 2007 - 13:27:00 • Тема: покупательская корзина • Форум: Программирование на PHP

Ответов: 28
Просмотров: 6391
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. // Добавляем товар в корзину
  4. if ( isset($_GET["id"]) )
  5. {
  6.         $idp = $_GET["id"];
  7.         include("mylp.php");
  8.         $link=mysql_connect($myhost,$mylogin,$mypwd) or die(mysql_error());
  9.         mysql_select_db("mydb");
  10.         $r=mysql_query("select name,header,price,imgsrc from products where id=".$idp);
  11.         if(!$r){
  12.         exit (mysql_error());
  13.         }
  14.         list($name,$header,$price,$imgsrc)=mysql_fetch_row($r);
  15.         $cartinfo["name"]=$name;
  16.         $cartinfo["header"]=$header;
  17.         $cartinfo["price"]=$price;
  18.         $cartinfo["imgsrc"]=$imgsrc;
  19.         $cartinfo["quantity"]=1;
  20.         $_SESSION["cart"][$idp]=$cartinfo;
  21.         print_r($_SESSION["cart"]);
  22. }
  23.  
  24. // Обновляем количество товара в корзине
  25. if ( isset( $_GET["update"] )
  26. {
  27.         // Получаем ID товаров в корзине
  28.         $ids = array_keys($_SESSION["cart"]);
  29.         foreach( $ids as $key )
  30.         {
  31.                 if ( $_POST["quantity_".$key] > 1 )
  32.                         $_SESSION["cart"][$key]["quantity"] = $_POST["quantity_".$key];
  33.                 else
  34.                         unset($_SESSION["cart"][$key]);
  35.         }
  36. }
  37.  
  38. // Выводим содержимое корзины
  39.  $total = 0;
  40.  echo "<form name='cart' action='".$_SERVER["PHP_SELF"]."' method='GET'>";
  41.  echo "<table>";
  42.  foreach( $_SESSION["cart"] as $key => $value )
  43.  {
  44.  
  45.         $name = $value["name"];
  46.         $header = $value["header"];
  47.         $price = $value["price"];
  48.         $imgsrc = $value["imgsrc"];
  49.         $quantity = $value["quantity"];
  50.         $totalprice = $price*$quantity;
  51.         $total = $total + $totalprice;
  52.         echo "<tr><td align='center'><img src='".$imgsrc."' width='50' height='50' /></td>
  53.                  <td align='left' valign='top' title='names'><b>".$name."</b><br />".$header."</td>
  54.                  <td title='price' width='15%'>".$price."<span style='color:#990000;'> y.e.</span></td>
  55.               <td width='15%'><input type='text' value='".$quantity."' name='quantity_".$key."' style='background-color:#333333;color:white' size='3' /></td>
  56.               <td align='center'>".$totalprice."<span style='color:#990000;'> y.e.</span></td>
  57.               <td align='center'><a href='del_o.php?key=".$key."'><span style='font-size: 13px;'><b>Удалить</b></span></a></td>
  58.          </tr>";
  59.  }
  60.  echo "</table>";
  61.  echo "<p >ИТОГО: ".$total." у.е.</p>";
  62.  echo "<input type='submit' name='update' value='Обновить' />";
  63.  echo "</form>";
  64. ?>
  65.  
evgenijj Отправлено: 07 Марта, 2007 - 09:35:56 • Тема: Duplicate entry... как избавиться ? • Форум: SQL и Архитектура БД

Ответов: 12
Просмотров: 189
Viper пишет:
собстно ещё поправил запрос было SELECT *
указал названия столбцов и время сократилось до 0,5 секунд Улыбка

Совершенно случайно сегодня наткнулся в журнале LINUX FORMAT за ноябрь 2005 г.
Цитата:

При работе с MySQL ... старайтесь избегать использования шаблона (*) в операторе select (например, select * from mytable). Это кажется очень удобным, но запрос будет выполняться намного медленнее и создавать дополнительный сетевой трафик. Вместо этого указывайте только те поля, которые вам действительно нужны, например: select email from customers where surname=’jones’.

evgenijj Отправлено: 06 Марта, 2007 - 20:03:28 • Тема: покупательская корзина • Форум: Программирование на PHP

Ответов: 28
Просмотров: 6391
alfred пишет:

<?php
$idp=$_GET["id"];
$q=1;
$totalprice=0;
include("mylp.php");
$link=mysql_connect($myhost,$mylogin,$mypwd) or die(mysql_error());
mysql_select_db("mydb");
$r=mysql_query("select name,header,price,imgsrc from products where id={$idp}");

$cartinfo = array();
list($name,$header,$price,$imgsrc)=mysql_fetch_row($r);
$cartinfo["name"]=$name;
$cartinfo["header"]=$header;
$cartinfo["price"]=$price;
$cartinfo["imgsrc"]=$imgsrc;
$cartinfo["quantity"]=$q;
$_SESSION["cart"][$idp]=$cartinfo;

header("Location: into_cart.php");

?>
в этот файл попадают выбранные пользователем товары... а отсюда в файл ниже
<?php while(list($key,$value)=each($_SESSION["cart"]))
{
if($value["quantity"]<0){
$value["quantity"]=1;
}

$value["q"] = $_POST["quantity_".$key];
$totalprice = 0;
$total = 0;

$name = $value["name"];
$header = $value["header"];
$price = $value["price"];
$imgsrc = $value["imgsrc"];
$q = $value["q"];
$_SESSION["cart"][$idp]=$cartinfo;
$totalprice = $price*$q;
$total+=$totalprice;

Понимаешь, в чем проблема? Я зашел на твой сайт, и увидел, что про нажатии на ссылку "Заказать" происходит переход на строницу http://djbeat.com.ua/into_cart.php?id=30. Тут все понятно. Но что это за кусок кода?!
Цитата:

$idp=$_GET["id"];
$q=1;
$totalprice=0;
include("mylp.php");
$link=mysql_connect($myhost,$mylogin,$mypwd) or die(mysql_error());
mysql_select_db("mydb");
$r=mysql_query("select name,header,price,imgsrc from products where id={$idp}");

$cartinfo = array();
list($name,$header,$price,$imgsrc)=mysql_fetch_row($r);
$cartinfo["name"]=$name;
$cartinfo["header"]=$header;
$cartinfo["price"]=$price;
$cartinfo["imgsrc"]=$imgsrc;
$cartinfo["quantity"]=$q;
$_SESSION["cart"][$idp]=$cartinfo;

header("Location: into_cart.php");

Зачем идет преренаправление header("Location: into_cart.php") ?!
Файл into_cart.php обращается к себе? И что означает загадочная фраза "в этот файл попадают выбранные пользователем товары... а отсюда в файл ниже" ? Так это один файл или два?

Ты произвольно "выдираешь" куски кода из разных файлов - и просишь тебе помочь. Хуже того - ты еще пытаешься эти куски кода комментировать... Я бы и рад тебе помочь - да не могу. Исходников нет - только отдельные кусочки (которые, как ты считаешь, работают неправильно).

Подводя итог. Нужен исходник (ПОЛНОСТЬЮ, а не то, что ты считаешь достаточным) скрипта, который отвечает за вывод товарных позиций, и исходник скрипта корзины - опять же полностью. Тогда можно будет сказать, что и где не так.
evgenijj Отправлено: 06 Марта, 2007 - 17:12:55 • Тема: покупательская корзина • Форум: Программирование на PHP

Ответов: 28
Просмотров: 6391
alfred пишет:

я не сильна в пхп.... я не совсем понимаю...
переменную idp я получаю методом гет в начале скрипта...

Тяжело с тобой. Раз у нас есть Интернет-магазин, логично предположить, что есть и какой-то каталог продукции для продажи. Ссылка "Добавить в корзину" вероятнее всего расположена на странице "Карточка товара".

Эта ссылка имеет примерно такой вид <a href="basket.php?action=addtocart&id_prd=5">Добавить в корзину</a> При нажатии на ссылку происходит переход на страницу "Корзина". При формировании этой страницы мы должны обновить и массив $_SESSION. Возможны и варианты - мы перезагружаем страницу "Карточка товара", но не забываем опять-таки обновить массив $_SESSION.

Главное, что ссылка содержит переменную id_prd=5, передаваемую методом $_GET.

Это может быть и форма на странице "Карточка товара":

<form action="basket.php" method="GET" name="add">
<input type="hidden" name="action" value="addtocart" />
<input type="hidden" name="id_prd" value="5" />
<input type="submit" value="Добавить в корзину" />
</form>

В этом случае можно быть уверенным, что в скрипте basket.php будет доступна переменная $_GET["id_prd"]=5
evgenijj Отправлено: 06 Марта, 2007 - 16:02:06 • Тема: покупательская корзина • Форум: Программирование на PHP

Ответов: 28
Просмотров: 6391
alfred пишет:
но ведь запрос написа правильно. может дело в переменной idp?

Запрос
$r=mysql_query("select name,header,price,imgsrc from products where id=".$idp);
написан верно. Дело именно в переменной $idp. Я поэтому и спрашивал - всегда ли она определена, не равна ли пустой строке и т.п.
evgenijj Отправлено: 06 Марта, 2007 - 14:48:06 • Тема: покупательская корзина • Форум: Программирование на PHP

Ответов: 28
Просмотров: 6391
alfred пишет:
почему некоректный?

Потому что
Цитата:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource

Это ты считаешь, что запрос возвращает имя, заголовок, цену выбранного товара. А на самом деле этот запрос просто не выполняется. Поэтому результат запроса - переменная $r - просто не определена (или равна FALSE - точно не знаю, надо посмотреть в справочнике функций). И попытка обработать этот результат с помощью функции mysql_fetch_row( $r ) вызывает предупреждение (warning): переданный аргумент НЕ ЯВЛЯЕТСЯ корректным результатом запроса к БД MySQL
evgenijj Отправлено: 06 Марта, 2007 - 13:18:34 • Тема: покупательская корзина • Форум: Программирование на PHP

Ответов: 28
Просмотров: 6391
alfred пишет:
Спасабо огромное! Все получилось... только плюется Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource
на эту строку

list($name,$header,$price,$imgsrc)=mysql_fetch_row($r);
как попросить пхп не ругаться?

PS мне просто надоело искать ошибки... вроде все работает... только ругается!
Еще интересно, почему ето все на сервере не работает!!!!
корзина пустая.... подскажите, может чего-то я не знаю

Запрос к БД возвращает некорректный результат:
$r=mysql_query("select name,header,price,imgsrc from products where id={$idp}");

Надо просматривать результаты запроса - он вообще что-нибудь возвращает?

Кстати, а зачем там фигурные скобки - какую функциональную нагрузку они несут?

$r=mysql_query("select name,header,price,imgsrc from products where id=".$idp);


P.S. Переменная $idp = $_GET["id"] А $_GET["id"] всегда определена, она не равна пустой строке? Это точно число, а не строка?
evgenijj Отправлено: 06 Марта, 2007 - 11:38:11 • Тема: покупательская корзина • Форум: Программирование на PHP

Ответов: 28
Просмотров: 6391
alfred пишет:
Ругается на эту строку

foreach( $ids as $id )
parse error, unexpected T_FOREACH

В предыдущей строке пропустил закрывающую ";"
evgenijj Отправлено: 06 Марта, 2007 - 10:02:30 • Тема: Взаимодействие скрипта и базы • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 49
Запрос
SELECT * FROM mytable WHERE DATE_FORMAT(NOW(), '%d.%m') = DATE_FORMAT(date_birth, '%d.%m');
вернет информацию о пользователях, у которых сегодня день рождения (или не вернет ничего, если сегодня ни у кого нет дня рождения). Можно вывести сообщение об этом - поздравить пользователя, "подсветить" красным этот день в календаре и т.п.
evgenijj Отправлено: 05 Марта, 2007 - 17:10:18 • Тема: покупательская корзина • Форум: Программирование на PHP

Ответов: 28
Просмотров: 6391
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. // Получаем ID товаров в корзине
  4. $ids = array_keys($_SESSION["cart"])
  5. // Обновляем количество товара в корзине
  6. foreach( $ids as $id )
  7. {
  8.         if ( $_GET["quantity_".$id] > 0 )
  9.                 $_SESSION["cart"][$id]["quantity"] = $_GET["quantity_".$id];
  10.         else
  11.                 unset($_SESSION["cart"][$id]);
  12. }
  13. echo "<form name='cart' action='".$_SERVER["PHP_SELF"]."' method='GET'>";
  14. echo "<table>";
  15. $total = 0;
  16. foreach( $_SESSION["cart"] as $key => $value )
  17. {
  18.         $name = $value["name"];
  19.         $header = $value["header"];
  20.         $price = $value["price"];
  21.         $imgsrc = $value["imgsrc"];
  22.         $quantity = $value["quantity"];
  23.         $totalprice = $price*$quantity;
  24.         $total+=$totalprice;
  25.        echo "<tr><td align='center'><img src='".$imgsrc."' width='50' height='50' /></td>
  26.              <td align='left' valign='top' title='names'><b>".$name."</b><br />".$header."</td>
  27.              <td title='price' width='15%'>".$price."<span style='color:#990000;'> y.e.</span></td>
  28.              <td width='15%'><input type='text' value='".$quantity."' name='quantity_".$key."' style='background-color:#333333;color:white' size='3' /></td>
  29.              <td align='center'>".$totalprice."<span style='color:#990000;'> y.e.</span></td>
  30.              <td align='center'><a href='del_o.php?key=".$key."'><span style='font-size: 13px;'><b>Удалить</b></span></a></td>
  31.         </tr>";
  32. }
  33. echo "</table>";
  34. echo "<input type='submit' name='update' value='Обновить' />";
  35. echo "</form>";
  36. ?>
  37.  
evgenijj Отправлено: 05 Марта, 2007 - 14:52:06 • Тема: покупательская корзина • Форум: Программирование на PHP

Ответов: 28
Просмотров: 6391
alfred пишет:
а чтотакое if (strstr($key, "count_")) ?

strstr -- Находит первое вхождение подстроки; в случае успеха возвращает TRUE

У нас в форме для каждой товарной позиции из покупательской корзины определено поле
<input type='text' value='3' name='count_57' />
где 3 - количество товара в корзине
57 - ID этого товара

Ведь если пользователь изменил количество товара в корзине и нажал кнопку обновить - мы пересылаем эти данные на сервер, читаем массив $_POST и обновляем массив $_SESSION. Но из массива $_POST мы отбираем только "наши" значения (содержащие подстроку "count_"), относящиеся к изменению количества товара в корзине.
evgenijj Отправлено: 05 Марта, 2007 - 14:36:36 • Тема: покупательская корзина • Форум: Программирование на PHP

Ответов: 28
Просмотров: 6391
Примерно так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. // $_SESSION["ids"][$i] содержит ID i-го товара в корзине
  5. // $_SESSION["counts"][$i] содержит количество товара в корзине
  6. // $_SESSION["names"][$i] содержит наименование товара в корзине
  7. // $_SESSION["prices"][$i] содержит цену товара в корзине
  8. // $_SESSION["ids"][$i] == 0 означает, что элемент $i пустой
  9.  
  10. if ( isset($_POST["update"]) ) // Обновить содержимое корзины
  11. {
  12.     foreach ($_POST as $key => $value)
  13.     {
  14.         if (strstr($key, "count_"))
  15.         {
  16.             if ($value >= 1)
  17.             {
  18.                 for ($i=0; $i<count($_SESSION["ids"]); $i++)
  19.                 {
  20.                     if ($_SESSION["ids"][$i] == str_replace("count_","",$key))
  21.                     {
  22.                         $_SESSION["counts"][$i] = floor($value);
  23.                         if( !$_SESSION["counts"][$i] ) $_SESSION["counts"][$i] = 0;
  24.                     }
  25.                 }
  26.             }
  27.             else // удаляем товар из корзины, количество которого в корзине - ноль
  28.             {
  29.                 $i=0;
  30.                 while ($_SESSION["ids"][$i] != str_replace("count_","",$key) && $i<count($_SESSION["ids"])) $i++;
  31.                 $_SESSION["ids"][$i] = 0;
  32.                 $_SESSION["counts"][$i] = 0;
  33.             }
  34.         }
  35.     }
  36. }
  37.  
  38. echo "<form name='cart' action='".$_SERVER["PHP_SELF"]."' method='POST'>"
  39. echo "<table>";
  40. echo "<tr><th>ID</th><th>Наименование</th><th>Количество</th><th>Цена</th></tr>";
  41. for ( $i=0; $i < count($_SESSION["ids"]); $i++ )
  42. {
  43.     if ($_SESSION["ids"][$i])
  44.     {
  45.         echo "<tr>";
  46.         echo "<td>".$_SESSION["ids"][$i]."</td>";
  47.         echo "<td>".$_SESSION["names"][$i]."</td>";
  48.         echo "<td><input type='text' value='".$_SESSION["counts"][$i]."' name='count_".$_SESSION["ids"][$i]."' /></td>";
  49.         echo "<td>".$_SESSION["prices"][$i]."</td>";
  50.         echo "</tr>";
  51.     }
  52. }
  53. echo "</table>";
  54. echo "<input type='submit' name='update' value='Обновить' />"
  55. echo "</form>";
  56. ?>
  57.  

Страниц (81): В начало « ... 68 69 70 71 [72] 73 74 75 76 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB