Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2011, 13:32   #1
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
Плохо Класс DB

Здравствуйте, возникли проблемы с классами в php
Код:
Код:
classes.php

class DB {
    private $HOST='localhost';
    private $USER='root';
    private $PASS='';
    private $Base='my';
    function connect() {
       
    mysql_connect($this->HOST,$this->USER,$this->PASS);
    mysql_select_db($this->Base);
    mysql_query("SET NAMES 'utf-8'");
    }
}
class Question extends DB{
      
    function __construct($num){
      $this->connect();
      ...
    }
}
Код:
new.php
include('classes.php');
 $sql = "SELECT * FROM table"; 
 $r=mysql_query($sql);
 if (mysql_num_rows($r)) {
 }
Однако пишет, что не выбрано ни одной строки
если же напрямую подключать файлик с mysql_connect без классов,просто 3 строки, выборка проходит, в чем я ошибся - заранее спасибо!
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 26.06.2011, 14:29   #2
graymaster
Форумчанин
 
Аватар для graymaster
 
Регистрация: 03.05.2011
Сообщений: 158
По умолчанию

С классами ()конекретно - вашими) надо делать как-то так:
classes.php

PHP код:
class DB {
    private 
$HOST 'localhost';
    private 
$USER 'root';
    private 
$PASS '';
    private 
$Base 'my';
    private 
$conn_id;
    
    function 
connect() {
        
        
$this->conn_id mysql_connect($this->HOST$this->USER$this->PASS);
        if (!
$this->conn_id) die("Can't connect to database");
        
mysql_select_db($this->Base);
        
mysql_query("SET NAMES 'utf-8'");
    }
}

class 
Question extends DB {

    function 
__construct($num) {
        
$this->connect();
    }

    function 
select($query) {
        
$ret mysql_query($query,$this->conn_id);
        if (!
$ret) {
            die(
'Error in connection');
        }
        
$ret_arr = array ();
        
$ra mysqli_fetch_array($ret);
        
        while (
$ra) {
            
array_push($ret_arr$ra);
            
$ra mysqli_fetch_array($ret);
        }
        return 
$ret_arr;
    }

new.php
PHP код:
include ('classes.php');
$conn = new Question();
$sql "SELECT * FROM table";
$ret $conn->select($sql);
if (
count($ret)) {


Я там понадоблял в классы немного своего, но не проверял. Но принцип будет именно таким, так что - разбирайтесь. (там стоило бы добавить корректый эррор хэндлинг, квери-функции и т.п., но это вы уж как-то сами...)

Последний раз редактировалось graymaster; 26.06.2011 в 14:31.
graymaster вне форума Ответить с цитированием
Старый 27.06.2011, 00:07   #3
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

файл при инклюдили а создать экземпляр класса забыли.

я раньше тоже класс для работы с БД написал и юзал, сейчас пешел на ADOdb - отличная весчь
Gorychev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс Мелия Помощь студентам 0 23.06.2011 14:37
Класс VIK_aka_TOR Общие вопросы C/C++ 2 27.03.2011 17:06
Описать класс-родитель и класс-потомок. Delphi 7 Andrew_M Помощь студентам 0 15.01.2011 14:42
КЛАСС 4ika Общие вопросы C/C++ 1 16.03.2010 21:32
C++ . Класс Ануар56 Помощь студентам 8 23.04.2009 19:41