PHP.SU

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

Страниц (19): В начало « ... 11 12 13 14 15 16 [17] 18 19 »

> Найдено сообщений: 285
Slavenin Отправлено: 07 Апреля, 2011 - 12:10:25 • Тема: Динамическое добавление свойств к объекту класса • Форум: Программирование на PHP

Ответов: 2
Просмотров: 1917
Всем доброго времени суток!

Сейчас разрабатываю небольшую программную систему, и возник вопрос, можно ли в php динамически добавлять/удалять поля объекту, т.е. есть объект $a с исходным набором полей $a, $b, $c можно ли прямо в процессе выполнения кода добавить данному объекту поле $d?. Полазил по интернетам, полезного ничего не нашел. Хм
Slavenin Отправлено: 18 Декабря, 2010 - 10:21:26 • Тема: Сложный запрос • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 42
избавляться от джоинов я не буду, так как альтернативы им я не знаю, большая таблица только одна, остальные вспомогательные и небольшого размера, запрос отрабатывает очень быстро.

$objParts->ConnectDb($sqlSearch); - это функция моего класса которая конектится к базе выполняет запрос, закрывает соединение и возвращает результат запроса, дело не в ней, так как в остальных местах кода она прекрасно отрабатывает.

вернуться должен результат селекта, как он возвращается если выполнять команду напрямую в базе.
(Добавление)
проблему пока решил разбив запрос на две части, в первой создается таблица, во второй из нее выбираются данные, и потом она уничтожается. но хотелось бы понять почему нельзя действовать в рамках одного запроса?
Slavenin Отправлено: 18 Декабря, 2010 - 01:28:29 • Тема: Сложный запрос • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 42
Всем доброго времени суток!
Пишу поиск по бд, принцип следующий: сначала собираю нужную информацию из нескольких таблиц, а потом по получившейся таблице делаю поиск, хотел пойти через создание временной таблицы, но mysql не разрешает делать к ней более одного запроса одновременно, поэтому приходится работать с динамически создаваемой и удаляемой таблицей. написал следующий запрос:

PHP:
скопировать код в буфер обмена
  1. $charR = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'V', 'X', 'Y', 'Z');
  2.   $nameTMd = $charR[rand(0, 24)];
  3.   $nameTMd .=rand(1, 9999999);
  4.   $nameTMd .= $charR[rand(0, 24)];
  5.  
  6. CREATE TABLE " .$nameTMd ." SELECT b.ID, b.part_name, b.part_original_number, b.part_vendor_number, c.vendor_name, d.type_name, g.model_name, f.name_mark, e.i_name, e.i_width, e.i_height, c.vendor_link, b.price_1
  7.   FROM t_model_part AS a
  8.   LEFT JOIN t_parts AS b
  9.   ON b.ID = a.ID_part
  10.   LEFT JOIN t_vendor_firms AS c
  11.   ON c.ID = b.ID_vendor_firms
  12.   LEFT JOIN t_type_parts AS d
  13.   ON d.ID = b.ID_type_parts
  14.   LEFT JOIN t_image AS e
  15.   ON e.ID = b.part_foto
  16.   left join t_models as g
  17.   ON a.ID_model = g.ID
  18.   left join t_marks as f
  19.   ON g.ID_mark = f.ID;
  20.  
  21.   SELECT * FROM " .$nameTMd ." WHERE part_name like '%" .$_POST['search'] ."%'
  22.   UNION
  23.   SELECT * FROM " .$nameTMd ." WHERE part_original_number like '%" .$_POST['search'] ."%'
  24.   UNION
  25.   SELECT * FROM " .$nameTMd ." WHERE part_vendor_number like '%" .$_POST['search'] ."%'
  26.   UNION
  27.   SELECT * FROM " .$nameTMd ." WHERE vendor_name like '%" .$_POST['search'] ."%'
  28.   UNION
  29.   SELECT * FROM " .$nameTMd ." WHERE type_name like '%" .$_POST['search'] ."%'
  30.   UNION
  31.   SELECT * FROM " .$nameTMd ." WHERE model_name like '%" .$_POST['search'] ."%'
  32.   UNION
  33.   SELECT * FROM " .$nameTMd ." WHERE name_mark like '%" .$_POST['search'] ."%'";
  34.  
  35.  $result_Serch = $objParts->ConnectDb($sqlSearch);
  36.  if(!$result_Serch)
  37.  {
  38.    echo "Поисковый запрос не удался... Код ошибки: " .mysql_errno() ." содержание: " .mysql_error();
  39.    exit();
  40.  }


если его напрямую выполнять в базе, то все хорошо работает, если же действовать из скрипта, то ничего не возвращается, и таблица не создается, в чем я ошибся? функции ошибок также не возвращают какого-либо результата...
Slavenin Отправлено: 09 Декабря, 2010 - 14:04:42 • Тема: Function вывод... • Форум: Программирование на PHP

Ответов: 8
Просмотров: 610
переменную $agent надо инициализировать $_SERVER['HTTP_USER_AGENT']
Slavenin Отправлено: 09 Декабря, 2010 - 13:59:54 • Тема: Как использовать совместно разные классы? • Форум: Программирование на PHP

Ответов: 6
Просмотров: 349
если нужно чтобы объект одного класса создавался вместе с объектом другого, опишите конструктор для каждого класса, который будет создавать нужные объекты и инициализировать их нужными данными.
Slavenin Отправлено: 09 Декабря, 2010 - 10:32:46 • Тема: Заказ книг в библиотеке (выдача и возврат) • Форум: Программирование на PHP

Ответов: 48
Просмотров: 2752
[url]http://ru.wikipedia.org/wiki/Join_(SQL)[/url]
Slavenin Отправлено: 08 Декабря, 2010 - 13:08:20 • Тема: Загрузка файла без использования формы • Форум: Программирование на PHP

Ответов: 9
Просмотров: 1412
ясно, чето я совсем уже записался... Радость кто-нибудь подскажите как файл с русским именем загрузить на сервак? Хм
Slavenin Отправлено: 08 Декабря, 2010 - 11:20:31 • Тема: Загрузка файла без использования формы • Форум: Программирование на PHP

Ответов: 9
Просмотров: 1412
доработал функцию создания фрейма, теперь он должен отсылать нормальный заголовок

CODE (javascript):
скопировать код в буфер обмена
  1. function createIFrame(idForm)
  2. {
  3.   var IdPhoto = idForm.split("_");
  4.   m = parseInt(1);
  5.   n = parseInt(10000);
  6.   var masNframe = Math.floor( Math.random() * (n - m + 1) ) + m;
  7.   document.getElementById('photo_'+IdPhoto[1]).innerHTML = "<font color = \"red\"><b>Производится загрузка</b></font>";
  8.   var div = mas_CreateElem('div', (masNframe + '_'), '');
  9.   div.innerHTML = "<iframe id=\"" +masNframe + "_\" name=\"" + masNframe + "\" style=\"display: none\"></iframe>";
  10.   document.getElementById(idForm).getAttribute('target');
  11.   document.getElementById(idForm).target = masNframe;
  12. /////////////////    
  13.   var Iobj = document.getElementsByName(masNframe)[0];  
  14.   var Idiv = document.createElement('div');
  15.   Idiv.getAttribute('id');
  16.   Idiv.id = (masNframe + '_D');
  17.   Iobj.appendChild(Idiv);
  18.   Idiv.innerHTML = "<?php header(\'Content-type: text/html; charset=utf-8\');?>";
  19. }


опера dragonfly в добавленном диве выводит следующий текст: <?php header('content-type:=undefined text/html;=undefined charset=utf-8');?> может я неправильно заголовок передаю?

но имя файла по прежнему раскодируется неверно Огорчение
Slavenin Отправлено: 08 Декабря, 2010 - 07:00:01 • Тема: Проблема с кодировкой • Форум: Программирование на PHP

Ответов: 4
Просмотров: 598
сам недавно боролся с такой проблемой http://forum.php.su/topic.php?fo...8&topic=2014 , если запрос к скрипту шлется через ajax, то на всех страницах должен быть прописан заголовок
PHP:
скопировать код в буфер обмена
  1. header('Content-Type: text/html; charset=utf-8');
иначе ИЕ откажется выводить результаты работы
Slavenin Отправлено: 07 Декабря, 2010 - 21:21:44 • Тема: Загрузка файла без использования формы • Форум: Программирование на PHP

Ответов: 9
Просмотров: 1412
уважаемый, JustUserR, различные варианты контроля ограничения типов файлов и прочие элементы безопасности я еще не писал, да и реализовывать большую часть из них буду на стороне сервера, так как там возможности их контроля со стороны конечного пользователя крайне ограничены.

Не подскажете почему файл так криво загружается? точнее почему он так загружается я понимаю, проблема в том что сервер не может распознать кодировку имени файла на своей стороне, именно поэтому я включил в код функцию для транслитерации, но так как файл сначала загружается во временную папку на стороне сервера, то его нераспознанное имя меняется с набора кракозябр на цифру 1, вопрос, как моэно избежать подобной ситуации. Я так понимаю, что необходимо послать вместе с формой соответствующий заголовок,
PHP:
скопировать код в буфер обмена
  1. header('Content-Type: text/html; charset=utf-8');
но как это реализовать не знаю, в коде исходной страницы присутсвует тег
CODE (html):
скопировать код в буфер обмена
  1. <meta http-equiv=\"content-type\" content=\"text/html; utf-8\">
логика подсказывает что имя должно расшифровываться правильно, но этого не происходит. скорее всего потому что форма отправляется через iframe, есть ли возможность отослать заголовок из iframe?
Slavenin Отправлено: 07 Декабря, 2010 - 19:34:46 • Тема: Загрузка файла без использования формы • Форум: Программирование на PHP

Ответов: 9
Просмотров: 1412
возникла новая странность, есть скрипт которым гружу файлы на сервер:

PHP:
скопировать код в буфер обмена
  1. <?PHP  
  2.  header('Content-type: text/html; charset=utf-8');
  3.  
  4.  $dir = 'img/';  
  5.  $name = rus2translit(basename($_FILES['loadfile']['name']));
  6.    
  7.  $file = $dir .$name;
  8.  if($success = move_uploaded_file($_FILES['loadfile']['tmp_name'], $file))
  9.  {  
  10.   echo "loaded";
  11.  }
  12.  else
  13.  {
  14.   echo "notloaded";
  15.  }
  16.  
  17.  
  18. function rus2translit($string)
  19. {
  20.     $converter = array(
  21.         'а' => 'a',   'б' => 'b',   'в' => 'v',
  22.         'г' => 'g',   'д' => 'd',   'е' => 'e',
  23.         'ё' => 'e',   'ж' => 'zh',  'з' => 'z',
  24.         'и' => 'i',   'й' => 'y',   'к' => 'k',
  25.         'л' => 'l',   'м' => 'm',   'н' => 'n',
  26.         'о' => 'o',   'п' => 'p',   'р' => 'r',
  27.         'с' => 's',   'т' => 't',   'у' => 'u',
  28.         'ф' => 'f',   'х' => 'h',   'ц' => 'c',
  29.         'ч' => 'ch',  'ш' => 'sh',  'щ' => 'sch',
  30.         'ь' => '',    'ы' => 'y',   'ъ' => '',
  31.         'э' => 'e',   'ю' => 'yu',  'я' => 'ya',
  32.        
  33.         'А' => 'A',   'Б' => 'B',   'В' => 'V',
  34.         'Г' => 'G',   'Д' => 'D',   'Е' => 'E',
  35.         'Ё' => 'E',   'Ж' => 'Zh',  'З' => 'Z',
  36.         'И' => 'I',   'Й' => 'Y',   'К' => 'K',
  37.         'Л' => 'L',   'М' => 'M',   'Н' => 'N',
  38.         'О' => 'O',   'П' => 'P',   'Р' => 'R',
  39.         'С' => 'S',   'Т' => 'T',   'У' => 'U',
  40.         'Ф' => 'F',   'Х' => 'H',   'Ц' => 'C',
  41.         'Ч' => 'Ch',  'Ш' => 'Sh',  'Щ' => 'Sch',
  42.         'Ь' => '',    'Ы' => 'Y',   'Ъ' => '',
  43.         'Э' => 'E',   'Ю' => 'Yu',  'Я' => 'Ya',
  44.     );
  45.     return strtr($string, $converter);
  46. }  
  47.  
  48. ?>


после загрузки файла с русским именем тест.jpg вижу вместо test.jpg который показывал денвер при тестировании, 1.jpg в чем проблема понять не могу...
Slavenin Отправлено: 06 Декабря, 2010 - 11:59:10 • Тема: Загрузка файла без использования формы • Форум: Программирование на PHP

Ответов: 9
Просмотров: 1412
ALEN пишет:
В любом случае формы + учите html + php и потом javascript - и уже на его основе AJAX

все это я знаю в необходимых пределах.

организовал загрузку через iframe, в ie все работает нормально, а opera отказывается загружать файл.
код формы:
PHP:
скопировать код в буфер обмена
  1. echo "
  2. <form id = \"formLoad\" action=\"test.php\" method=\"POST\" enctype=\"multipart/form-data\">
  3. <td align = \"center\">
  4. Фото:<br/>
  5. <input name=\"loadfile\" type=\"file\" size = \"10\">
  6. <input type=\"submit\" onClick = \"createIFrame()\" value=\"загрузить\">
  7. <input name=\"curId\" type=\"hidden\" value = \"photo_" .$i ."\">
  8. </form>
  9. </td>";

функции загрузки js
CODE (javascript):
скопировать код в буфер обмена
  1. function onResponse(d)
  2. {  
  3.  with(d)
  4.  {
  5.   eval('var obj = ' + d + ';');
  6.  }  
  7.   var obj2 = document.getElementById(obj.id);
  8.   var masFName = obj.filename;
  9.   obj2.innerHTML = masFName;
  10. }  
  11.  
  12. function createIFrame()
  13. {
  14.   var div = document.createElement('div');
  15.   div.getAttribute('id');
  16.   div.id = 'forFrame';
  17.   m = parseInt(1);
  18.   n = parseInt(10000);
  19.   var masNframe = Math.floor( Math.random() * (n - m + 1) ) + m;
  20.  
  21.   div.innerHTML = "<iframe id=\"rFrame\" name=\"" + masNframe + "\" style=\"display: none\"></iframe>";
  22.   document.body.appendChild(div);
  23.   document.getElementById('formLoad').getAttribute('target');
  24.   document.getElementById('formLoad').target = masNframe;
  25.  
  26. }


код на сервере:

PHP:
скопировать код в буфер обмена
  1. <?PHP  
  2.  function jsOnResponse($obj)  
  3.  {  
  4.  echo '
  5. <script type="text/javascript">
  6. window.parent.onResponse("'.$obj.'");
  7. </script>
  8. ';  
  9.  }  
  10.  $dir = 'img/';  
  11.  $name = basename($_FILES['loadfile']['name']);  
  12.  $file = $dir .$name;
  13.  if($success = move_uploaded_file($_FILES['loadfile']['tmp_name'], $file))
  14.  {  
  15.   echo "loaded";
  16.   jsOnResponse("{'filename':'" . $name . "', 'success':'" . $success . "', 'id':'" .$_POST['curId'] ."'}");
  17.  }
  18.  else
  19.  {
  20.   echo "notloaded";
  21.  }  
  22.  
  23. ?>  

(Добавление)
все победил, тег form был прописан до тега td, почему-то эксплорер это не смущало, а вот опера запротивилась, перенес его и все заработало
всем спасибо за помощь
Slavenin Отправлено: 05 Декабря, 2010 - 20:00:44 • Тема: Загрузка файла без использования формы • Форум: Программирование на PHP

Ответов: 9
Просмотров: 1412
Доброго времени суток всем!
Есть такая необходимость загрузить на сервер файл, но проблема в том что делать это надо не через форму. Пользователь вводит множество данных, в том числе выбирает путь к картинке которая должна быть загружена. Жмет кнопку, далее я джавой опрашиваю нужные поля форм и шлю все это ajax на сервер. Облазив интернет нашел технология с iframe, но динамическая загрузка файла мне не нужна, к тому же в каждой строке с данными может быть свой файл. Так вот, как осуществить загрузку этих файлов на сервак. В статье http://xmlhttprequest[dot]ru/#encoding есть интересная строчка:
Цитата:
Возможности XmlHttpRequest позволяют создать запрос с любым телом. Например, можно вручную сделать POST-запрос, загружающий на сервер файл. Функционал создания таких запросов есть, в частности, во фреймворке dojo. Но можно реализовать его и самому, прочитав о нужном формате тела POST и заголовках.
так вот подскажите как можно самостоятельно сформировать тело запроса? логика подсказывает что это можно сделать аналогично вложению в письмо, но для этого надо чтобы был доступ к файлу.
Slavenin Отправлено: 29 Ноября, 2010 - 15:03:53 • Тема: Проблема с кодировкой • Форум: SQL и Архитектура БД

Ответов: 6
Просмотров: 77
вот блин!!! послушался совета отсюда: http://www.phpfaq[dot]ru/charset поэтому и использовал mysql_set_charset('utf-8', $conn); заменил на mysql_query('SET NAMES utf8') и все заработало... всем спасибо! жаль нету кнопки сказать спасибо
Slavenin Отправлено: 29 Ноября, 2010 - 12:44:03 • Тема: Проблема с кодировкой • Форум: SQL и Архитектура БД

Ответов: 6
Просмотров: 77
Цитата:
1. Сами файлы скриптов в какой кодировке?


utf-8
DeepVarvar пишет:
2. В базе ENGINE = MYISAM ???


да, именно так

Страниц (19): В начало « ... 11 12 13 14 15 16 [17] 18 19 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB