Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Классы, не знаю как назвать)) 
:(
    Опции темы
Opik
Дата 30.4.2005, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 3
Всего: 55



Вообщем есть класс для работы с SQL
Код

<?
   class mysql
  {
     function query($query)
    {
       return mysql_query($query);
     }
    function fetchRow()
   {
       return mysql_fetch_row($hz) // вот тут не знаю как быть
    }

}
    $db = new mysql;
   $query = $db->query("select...");
   $result = $query->fetchRow(); // Нужно что бы именно такой вызов был.
 
?>

Как такое сделать?
PM MAIL Skype   Вверх
Opik
Дата 30.4.2005, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 3
Всего: 55



Ориентировочно набросал так:
Код
<?
  class mysql
  {
     function connect($host, $user, $pass, $dbname)
     {
          $this->lnk = mysql_connect($host, $user, $pass);
          mysql_select_db($dbname, $this->lnk);
     }
     function query($query)
     {
         $query = mysql_query($query, $this->lnk);
         return new result($query);
     }
  }
  class result
  {
     var $last;
     function result($query)
     {

        $this->last = $query;
     }
     function fetchRow()
     {
         return mysql_fetch_assoc($this->last); // вот тут не знаю как быть
     }
  }
    $db = new mysql;
    $db->connect('localhost', 'root', '', 'chat');
    $query = $db->query("select * from members");
    while($row = $query->fetchRow())
    {
       print $row['Login'];
    }

?>

У кого нить есть замечания?
Добавлено @ 19:46
Нужного эффекта всё равно не добилсяsmile(
PM MAIL Skype   Вверх
Mal Hack
Дата 30.4.2005, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Opr
Я делал так.
Свойство - массив, которое хранит массывы с данными. Каждый итый элемент - массив ячеек от итого запроса.
PM ICQ   Вверх
Opik
Дата 30.4.2005, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 3
Всего: 55



Mal Hack
можно примером?
PM MAIL Skype   Вверх
Mal Hack
Дата 30.4.2005, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Зы, класс не оптимизирован и не дописан... Но ядро есть.

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  driver.php
PM ICQ   Вверх
AntonioBanderaz
Дата 30.4.2005, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Чувак!!! Попробуй объявить классовую переменную, к которой Ты будешь обращаться

Код

<?    
   class mysql    
 var $HZ
  {    
     function query($query)    
    {    
       $this->HZ = mysql_query($query);    
     }    
    function fetchRow()    
   {    
       return mysql_fetch_row($this->HZ) // вот тут не знаю как быть    
    }    
}    
    $db = new mysql;    
   $query = $db->query("select...");    
   $result = $query->fetchRow(); // Нужно что бы именно такой вызов был.    
    
?>


Теперь попоробуй!

Это сообщение отредактировал(а) AntonioBanderaz - 1.5.2005, 03:42


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
Opik
Дата 1.5.2005, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 3
Всего: 55



AntonioBanderaz
попробуй выборку сделать в цикле.
PM MAIL Skype   Вверх
AntonioBanderaz
Дата 1.5.2005, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Код

<?     
   class mysql  {    
       var $HZ;    
       var $row = array();
      
    function query($query)     
    {     
         $this->HZ = mysql_query($query);     
     }     
    function fetchRow()     
   {     
      while($r = mysql_fetch_row($this->HZ))
          array_push($this->row,$r); // вот тут не знаю как быть 
       return $this->row;    
    }     
}     
    $db = new mysql;     
   $query = $db->query("select...");     
   $result = $query->fetchRow(); // Нужно что бы именно такой вызов был.     
   
//размер массива sozeof($result);
    
?>




Добавлено @ 16:23
Код

<?      
   class mysql  {     
       var $HZ;     
       var $row = array();    
       
    function mysql($query)      
    {      
         $this->HZ = mysql_query($query);      
     }      
    function fetchRow()      
   {      
      while($r = mysql_fetch_row($this->HZ))    
          array_push($this->row,$r); // вот тут не знаю как быть    
       return $this->row;     
    }      
}     
//я бы даже вот так сделал    
   $db = new mysql("select...");      
   $result = $query->fetchRow(); // Нужно что бы именно такой вызов был.      
    
//размер массива sozeof($result);    
     
?>



--------------------
ГЫ... 
PM MAIL ICQ   Вверх
<Spawn>
Дата 6.5.2005, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 2
Всего: 64



Цитата
Нужного эффекта всё равно не добился(


А какой эффект требуется - я проверил его работоспособность и все работало, хотя написание класса, обычно, сводится к формированию какой то внутренней логики, чего я тут не вижу - тут имеется лишь обертка над функциями и не более тогоsmile Какая цель преследовалась при создании класса? Или это только начальная заготовка?


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Opik
Дата 6.5.2005, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 3
Всего: 55



<Spawn>
Попробуй через класс сделать это:
Код

$query = mysql_query("select..") 
while($row = mysql_fetch_assoc($query)) 
{ 
     $query = mysql_query("select... where .... = '".$row['id']."'") 
     $result = mysql_fetch_assoc($query); 
     var_dump($result);     
}  

PM MAIL Skype   Вверх
IZ@TOP
Дата 7.5.2005, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Opr, у тебя возникли проблемы с выполнением нескольких результов?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 7.5.2005, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 3
Всего: 55



IZ@TOP
именно.
PM MAIL Skype   Вверх
IZ@TOP
Дата 7.5.2005, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Opr, я эту проблему пока не решал. Решал немного по другому. У меня есть метод который возвращает все записи в массив, вот ей и пользуюсь в этом случае, а потом гоняю запросы сколько нужно. Можно кстати продумать вариант с тем, чтобы можно было в метод получения записи передавать ссылку на результ.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
<Spawn>
Дата 12.5.2005, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 2
Всего: 64



Цитата(Opr @ 6.5.2005, 16:52)
<Spawn>
Попробуй через класс сделать это:
Код

$query = mysql_query("select..") 
while($row = mysql_fetch_assoc($query)) 
{ 
     $query = mysql_query("select... where .... = '".$row['id']."'") 
     $result = mysql_fetch_assoc($query); 
     var_dump($result);     
}  

Имхо, такой код не выполнить без предварительного сохранения результатат первого селекта, так как он будет утерян результатом второгоsmile Хотя если создать второй коннект к базе... но думаю тут достаточно сначала все сохранить, а потом уже второй селект делать(и опять же чем вызвана такая необходимость? Может все можно решить путем внутренних обьединений в запросах?). У меня на этот случай 2 класса - один осуществляет выборку сохраняя данные в классе-обретке массива(с небольшим рашсирением функционала smile ), а другой ни чего не сохраняетsmile Но они написаны на ПХП 5:)


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
IZ@TOP
Дата 15.5.2005, 06:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



<Spawn>, думаю данную проблему можно решить подставлением нужных ресурсов выбоки в метод получения результата (иначе на кой они нужны?).


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0650 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.