PHP.SU

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

Страниц (4): « 1 [2] 3 4 »

> Найдено сообщений: 58
aldan8 Отправлено: 06 Июля, 2009 - 00:16:52 • Тема: как правильнее реализовать проверку и обновление веб служб • Форум: Программирование на PHP

Ответов: 2
Просмотров: 208
valenok , спасибо.
aldan8 Отправлено: 05 Июля, 2009 - 16:32:41 • Тема: как правильнее реализовать проверку и обновление веб служб • Форум: Программирование на PHP

Ответов: 2
Просмотров: 208
Здравствуйте , у меня такая ситуация : надо подключить веб службы к сайту ( прогноз погоды, курс валют и т. д. ) . Технически я приблизительно знаю как сделать это - функция кот. проверяет на необходимость обновления, если "не надо" - загружает актуальные данные из БД , если "надо" - загружает xml файл с данными с нужного сайта, "разбирает" его simpleXML и сохраняет данные в БД и загружает эту инфу на сайт.
Проблема в том , что не знаю как правильнее/удобнее это сделать .
1. поместить эту функцию в "общий" сценарий , но тогда время загрузки сценария увеличиться . И еще проблема , а что будет если несколько пользователей одновременно попытаются войти на сайт .
2. создать какой то отдельный сценарий и заставить его обновлять , что бы во время открытия сайта страница долго не открывалась (ведь на обновление xml файла уйдет какое то время) , но тогда проблема как сделать так чтобы этот сценарий автоматический вызывался каждый раз в определённое время.
Примерно вот такие варианты есть , не знаю на сколько это правильно. И нигде не нашёл описание как это делается . Может кто подскажет , буду очень благодарен .
aldan8 Отправлено: 22 Июня, 2009 - 12:26:15 • Тема: длина строки и юникод • Форум: Программирование на PHP

Ответов: 6
Просмотров: 1271
У меня такой вопрос , когда используешь функцию SUBSTRING( string, 0 ,15) , например, в MySQL , она тоже символы возвращает или байты ?
Потому что у меня указана кодировка UTF8 в MySQL и когда PHP выводит их , то в конце текста иногда появляется какой то иероглиф или не понятный символ.
aldan8 Отправлено: 19 Июня, 2009 - 22:49:34 • Тема: Почему "не работает" SUBSTRING • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 45
RomAndry пишет:
1. Давно как то были траблы с SUBSTRING на разных серверах работало по разному.
2. попробуйте LEFT


Спасибо , ЛЕФТ вроде нормально работает .
Но проблема в том , что MySQL вместо строк , например :
row['id'] , row['tema'] , row['text'] ,
возвращает :
row['id'] , row['tema'] , row[' LEFT(text, 350) '] .
Если использую SUBSTRING , то соответственно возвращает его .
Я как понял , это ,наверное, так и должно быть , но почему в учебниках или даже в документациях ничего не написано что надо использовать и псевдонимы ? Но это уже не к вам Подмигивание
aldan8 Отправлено: 19 Июня, 2009 - 19:46:56 • Тема: Почему "не работает" SUBSTRING • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 45
Есть таблица с столбцами : id, tema, text. Где id - integer, tema - char , text -text.
Создал запрос :
CODE (text):
скопировать код в буфер обмена
  1. $query = 'SELECT id, tema , SUBSTRING(text,0,350) FROM database123'

Поля text выводятся пустыми.
Через MySQL-monitor(командной строке) тоже не работает , только если 0 изменить на 1 (SELECT id, tema , SUBSTRING(text,1,350) FROM database123),тогда выводит, но только когда в командной строке.
Где на сайте прочитал что эта функция применима только к столбцам у которых тип char . Но это кажется относилось только SQL классическому синтаксису. Интересно к MySQL это тоже относиться ?, ведь известно что в MySQL не такой строгий синтаксис как в классическом SQL. Если это так то не подскажите , пожалуйста, функцию на подобие SUBSTRING , что бы работала с столбцами у которых тип text ?
aldan8 Отправлено: 19 Июня, 2009 - 13:35:16 • Тема: Проблема с mysqli_free_result() • Форум: Программирование на PHP

Ответов: 24
Просмотров: 3224
JustUserR , в следующий раз буду по внимательнее Закатив глазки
В любом случае я понял что надо обращать внимание (особенно !) на мелочи .
aldan8 Отправлено: 19 Июня, 2009 - 13:24:11 • Тема: Помогите с созданием постраничного вывода данных из БД... • Форум: SQL и Архитектура БД

Ответов: 6
Просмотров: 71
webid13 пишет:
echo '<FORM ACTION="to_db.php" METHOD="post">';


CODE (text):
скопировать код в буфер обмена
  1. echo '<FORM ACTION="to_db.php?id='.$_GET['id']+1.'" METHOD="post">';


если сейчас загрузился вопрос № 3 , то адрес этой страницы будет тогда to_db.php?id=3 и в форме должен быть указан адрес уже след вопоса to_db.php?id=4 , т.е. ответ будет посылаться по адресу tto_db.php?id='.$_GET['id']+1 .
А через POST так должно быть:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. echo '<FORM ACTION="to_db.php" METHOD="post">';
  3. echo '<input type="hidden" neme="id" value="'.$_POST['id']+1.'">'; // тут id номер след. вопроса.
  4.  

Соответственно, сценарии который будет загружаться в первую очередь должен проверить ответ на предыдущий вопрос ( он будет в $_POST['id'] и $_POST['gr'] и за ответами он должен обратиться к БД с ответами ) и если всё ОК , тогда он подключается к БД за следующим вопросом и выводит его в виде формы.


Neirol пишет:
При заходе на страницу теста, создавалась бы сессия, которая содержала в себе счетчик

да конечно , с сессиями безопаснее ( например, у тестируемого не будет желания "пошалить" - перескочить на несколько вопросов вперёд) , но думаю если проверять посылаемые $_POST-данные(или же $_GET-данные) то навредить особо и не получиться , максимум что сценарий не сможет проследить это ответил ли тестируемый на предыдущий вопрос , хотя и это можно как то исправить. В любом случае , это уже вопрос безопасности , а тут как я понял главное принцип по которому должен работать тест.
aldan8 Отправлено: 19 Июня, 2009 - 01:36:06 • Тема: Проблема с mysqli_free_result() • Форум: Программирование на PHP

Ответов: 24
Просмотров: 3224
Только сейчас понял в чём проблема .
Stierus , могли бы и объяснить по понятнее, это сейчас я понял что вы имели ввиду !
Но с другой стороны , хорошо что я сам понял в чём была ошибка .
(Добавление)
аж приятно стало Улыбка
aldan8 Отправлено: 18 Июня, 2009 - 21:04:59 • Тема: Помогите с созданием постраничного вывода данных из БД... • Форум: SQL и Архитектура БД

Ответов: 6
Просмотров: 71
как я понял , сам запрос не очень то сложный, там надо работать в основном в PHP . примерно уже представил как он должен выглядеть - 2 сценария : один выводит форму(опрос или тест, не знаю что у тебя в данном случае) , а другой обробатывает рез-тат и переходит редиректом на первый сценарий .

запрос:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. if(empty($_GET['id'])) $id = 1;
  3. else $id = $_GET['id'];
  4. $query = 'SELECT Q-id, question FROM questions WHERE Q-id=$id';
  5.  


Но так трудно тебе чем то помочь , когда ничего нет . Ты хоть набросок предоставь и объясни что не получается , а то весь сценарий вместо тебя составлять как то ...
aldan8 Отправлено: 18 Июня, 2009 - 16:52:16 • Тема: Проблема с mysqli_free_result() • Форум: Программирование на PHP

Ответов: 24
Просмотров: 3224
Stierus пишет:
функция $db->query возвращает экземпляр класса, в котором есть метод free ?


Если вы нашли в чём проблема , буду рад услышать .
aldan8 Отправлено: 17 Июня, 2009 - 20:47:37 • Тема: Проблеба с установкой кодировок • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 24
как я решил эту проблему:
1. Убрал "лишние" not null (хотя не в этом была ошибка)
2.Проверил синтаксис , типа типу blob нельзя указывать кол-во символов (blob(350)) и всё такое
3.(САМОЕ ГЛАВНОЕ) для всех я использовал кодировку UTF8 . Для многоязычного сайта идеальное решение, не смотря на то , что для не стандартных кодировок (как греческая или вьетнамская ) выделяется уже от 2-х до 4-х байтов на символ .
И выглядит сейчас примерно так :
CODE (text):
скопировать код в буфер обмена
  1.  
  2. use alex_cn;
  3.  
  4. create table `internet`
  5. (
  6. `id` int unsigned not null auto_increment primary key,
  7. `addedid` tinyint unsigned not null,
  8. `author` char(20),
  9. `data` datetime,
  10.  
  11. `title_eng` char(30),
  12. `text_eng` text,
  13.  
  14. `title_rus` char(30),
  15. `text_rus` text ,
  16.  
  17. `title_gr` char(30),
  18. `text_gr` text,
  19. ) DEFAULT CHARACTER SET UTF8;
  20.  
aldan8 Отправлено: 17 Июня, 2009 - 19:34:16 • Тема: Проблема с mysqli_free_result() • Форум: Программирование на PHP

Ответов: 24
Просмотров: 3224
JustUserR пишет:
Так вот такое ощущение что вы смшиваете это два стиля и посему не работает

Я как раз знаю наоборот , что можно смешивать эти два стиля, но всё равно использую только один , что бы не путаться и предпочитаю ООП.
JustUserR пишет:
Что будет если сделать mysqli_free_result($result)

делал , правда всё остальное было в "ООП варианте", - ответ соответствующий (смотрите выше Подмигивание )

Тогда я , наверное, ограничусь только $db->close(); --- всё равно сценарий "скоро" кончается Улыбка .
aldan8 Отправлено: 17 Июня, 2009 - 18:59:41 • Тема: Проблема с mysqli_free_result() • Форум: Программирование на PHP

Ответов: 24
Просмотров: 3224
Viraban009 пишет:
обязательно прочитай эту очень хорошую статью о ООП в php
http://www.php.su/learnphp/phpoo/
именно "обязательно" потому что в классах есть такие нюансы которые интуитивно не понятны (можешь ждать одно а получается другое).

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

Viraban009 пишет:
тогда давай полностью код от объяления классов и самих классов с этими методами (функциями).

Выше этого обращения только проверки и редактирование вводимых данных, типа :
if(isset($_POST['name']) . . . ) . . . trim($_POST['name']) и всё такое.
JustUserR пишет:
$this->db_link=mysqli_connent(Параметры); - Это конструктор
$this->db_res=mysqli_query(SQL-запрос, $this->db_link);

Я обращаюсь к БД из сценария и не использую классы чтобы из них подключаться к БД и соххранять результат в своиствах типа $this->db_res и т.д. То есть , я подключаюсь к БД прямо из "основного" кода.

JustUserR пишет:
кто вам сказал что ресурс $result это экземпляр класса который поддержиавает свойство free() - и все равно класса mysqli я не вижу


Я уже начинаю сомневаться в "простых истинах" . Улыбка
класс mysqli разве не "встроенный класс", типа автоматически подключается к сценариям так же как и такие классы как : Exception, ReflectionClass и т.д. ?
И как я помню , оператор(не знаю как правильнее называется) - $db->query('insert . . . ' ) возвращает что то вроде объекта , в котором содержаться своиства с результатами выполненого запроса и методами которые позволяют их "использовать"(извлекать- fetch_assoc(), num_rows и т.д.) и всё это надо к чемуто присвоить , типа :
$result = $db->query('insert . . . ' );
После того как он ненужен , его "самоликвидуруют" спомощью внутреннего метода free() : "$result->free();" --- типа , удаляют возвращенный объект(из БД) - очистить память.

Если я не правильно задаю вопрос , то - извините , буду внимательнее.
Если я что то не так выучил - скажите и я начну заново изучать ООП (честно сказать так не хочется Хм ).
Да , кстати, не думаю что бы чем то координально отличались способы обращения к БД - объектный или с использованием функций.
aldan8 Отправлено: 17 Июня, 2009 - 17:40:14 • Тема: Проблема с mysqli_free_result() • Форум: Программирование на PHP

Ответов: 24
Просмотров: 3224
Viraban009
Спасибо за сылку. В том то и дело что проблему я понял , дело в том что я понятия не имею что нужно изменить/подправить в сценарии что бы исправить ошибку , потому что у меня там почти так же как и в той же сылке .
Вообщем , всё вроде по правилам и поэтому я не знаю где искать ошибку:

CODE (text):
скопировать код в буфер обмена
  1.  
  2.         $host = 'localhost';
  3.         $user = 'user123';
  4.         $pass = 'password123';
  5.         $db = 'database_123';
  6.         @ $db = new mysqli($host,$user,$pass,$db);
  7.         if(mysqli_connect_errno())
  8.         {
  9.          echo 'error !';
  10.         exit;
  11.         }
  12.         $result = $db->query($query);
  13.         if(!$result)
  14.         {
  15.         echo 'ERROR !';
  16.         exit;
  17.         }
  18.         $result->free();
  19.         $db->close();
  20.  
aldan8 Отправлено: 17 Июня, 2009 - 17:00:22 • Тема: Проблема с mysqli_free_result() • Форум: Программирование на PHP

Ответов: 24
Просмотров: 3224
Viraban009 пишет:
заголовок функции такой
void mysqli_free_result ( mysqli_result $result )

это говорит о том что функции нужно обязательно передать перемную $result и типа mysqli_result .


этот вариант тоже проверял и конечно с $result в качестве значения , но в таком случае выдает уже такую ошибку
CODE (text):
скопировать код в буфер обмена
  1. Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, boolean given in Z:\home\webpage.com\www\func_123.php on line 76

Страниц (4): « 1 [2] 3 4 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB