Autorius Tema: Neprisijungia prie mysql EXTENDINTA klase  (Skaityti 113 kartai)

ganjabest

  • HEROJUS
  • Žinutės: 695
  • Karma: +30/-0
  • Povilas Stankevičius

  • Aktyvumas per 30d.
    100%
Neprisijungia prie mysql EXTENDINTA klase
« : 2011-03-01 16:45:24 »
Kaip taisyklingai jungtis prie mysql pagal mano turima koda.

Yra taip:

index.php
<?php
include("config.php");   //cia yra visi prisijungimo duomenys ($DBHost, $DBDatabase, $DBUser, $DBPassword)

include("./includes/mysql.php");    //viskas kas susije su mysql darbu (klasiu failas)

$Db1 = new DB_sql;
$Db1->connect($DBHost$DBDatabase$DBUser$DBPassword);  //prisikonektina prie mysql

include('./forum/forum.class.php');     //Iterpiamas naujas klasiu failas 
$Fr = new Forum;

?>


Naujas klasiu failas sujungtas su mysql klase

<?php
class Forum extends DB_Sql {

}
?>


Forum klaseje yra sql uzklausu

<?php
$this
->fetch_array($this->query("SELECT * FROM users WHERE username='$this->name'"));  //taip kreipamasi i mysql klases funkcijas
?>

Taciau man tada negalioja prisijungimas ..O jeigu noriu kad veiktu man reikia rasyti taip:

<?php
$this
->connect("localhost""marv""root""");
$this->arr $this->fetch_array($this->query("SELECT * FROM user WHERE username='$this->name'"));
?>


Tai yra kaip noriu ivykdyti uzklausa man vis reikia parasyti prisijungima su duomenimis
Taigi kaip padaroma, kad nereiktu man rasineti kaskart sito ?  :-\
Visi žmonės kaip žmonės - tik aš vienas kaip dievas!

Macaque

  • HEROJUS
  • Žinutės: 806
  • Karma: +25/-0
  • makakuje.

  • Aktyvumas per 30d.
    21.18%
Re: Neprisijungia prie mysql EXTENDINTA klase
« Atsakyti #1 : 2011-03-01 18:13:18 »
Nebandei sukurti konstructoriaus klasėje? http://php.net/manual/en/language.oop5.decon.php
„Tik vienas dalykas gali svajonę padaryti neįgyvendinamą: tai baimė, kad nepasiseks. “ - Paulo Coelho

mano čiulbesiai

Lukas Liesis

  • Administratorius
  • Super HEROJUS
  • Žinutės: 3959
  • Karma: +117/-12

  • Aktyvumas per 30d.
    100%
Re: Neprisijungia prie mysql EXTENDINTA klase
« Atsakyti #2 : 2011-03-01 19:13:12 »
kodel pas tave includuose ./ o ne ../ ? gal to prisijungimo viduje klases nemato? tada gali bandyti taip:

<?php
include("config.php");   //cia yra visi prisijungimo duomenys ($DBHost, $DBDatabase, $DBUser, $DBPassword)

include("./includes/mysql.php");    //viskas kas susije su mysql darbu (klasiu failas)

$Db1 = new DB_sql;

include(
'./forum/forum.class.php');     //Iterpiamas naujas klasiu failas 
$Fr = new Forum;
$Fr->connect($DBHost$DBDatabase$DBUser$DBPassword);  //prisikonektina prie mysql

?>

Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
Jums patinka manualai.lt projektas?
serveriai.lt 50% nuolaida!

vitalikaz

  • Beveik HEROJUS
  • Žinutės: 322
  • Karma: +23/-0

  • Aktyvumas per 30d.
    18.82%
Re: Neprisijungia prie mysql EXTENDINTA klase
« Atsakyti #3 : 2011-03-01 20:13:15 »
Kaip jau pasiūlė, sukurk konstruktorių, ir jame iškviesk tą connect metodą. Kad naujai sukurtas klasės objektas jau turėtų connect'ą :)

ganjabest

  • HEROJUS
  • Žinutės: 695
  • Karma: +30/-0
  • Povilas Stankevičius

  • Aktyvumas per 30d.
    100%
Re: Neprisijungia prie mysql EXTENDINTA klase
« Atsakyti #4 : 2011-03-02 16:20:18 »
kodel pas tave includuose ./ o ne ../ ? gal to prisijungimo viduje klases nemato? tada gali bandyti taip:

<?php
include("config.php");   //cia yra visi prisijungimo duomenys ($DBHost, $DBDatabase, $DBUser, $DBPassword)

include("./includes/mysql.php");    //viskas kas susije su mysql darbu (klasiu failas)

$Db1 = new DB_sql;

include(
'./forum/forum.class.php');     //Iterpiamas naujas klasiu failas 
$Fr = new Forum;
$Fr->connect($DBHost$DBDatabase$DBUser$DBPassword);  //prisikonektina prie mysql

?>



Cia tiesiog pildau kita skripta ir parasyta ne mano tas includinimas.
Tik pirmai suklydau kad index.php faile tai randasi. Cia mano pardoytas kodas yra header.php faile. Stai patikslinu includinima:

index.php -> header.php -> mysql.php ir forum.class.php

sios eilutes :
 <?php
$Db1
->connect($DBHost$DBDatabase$DBUser$DBPassword); 
?>

negaliu isimti nes netik mano kurta klase naudoja prisijungima. O jeigu parasau tavo varianta man neveikia viso puslapio uzklausos iskyrus forum.class uzklausas..

Tad pameginau dabar abi atskirai prikonektinti stai taip ir gerai viskas:
<?php
include("config.php");   //cia yra visi prisijungimo duomenys ($DBHost, $DBDatabase, $DBUser, $DBPassword)

include("./includes/mysql.php");    //viskas kas susije su mysql darbu (klasiu failas)

$Db1 = new DB_sql;
$Db1->connect($DBHost$DBDatabase$DBUser$DBPassword);  //prisikonektina prie mysql

include('./forum/forum.class.php');     //Iterpiamas naujas klasiu failas 
$Fr = new Forum;
$Fr->connect($DBHost$DBDatabase$DBUser$DBPassword);  //prisikonektina prie mysql

?>


Bet nezinau ar taip normalu.. Ta prasme ar patogesniu budu visko isprest ar neina? :) Na is esmes dabar ir gan patogu. Tik kaskart prijungus klase vis reiks rasyt klasei tokia eilute..
« Paskutinis taisymas: 2011-03-02 16:26:47 nuo ganjabest »
Visi žmonės kaip žmonės - tik aš vienas kaip dievas!

Lukas Liesis

  • Administratorius
  • Super HEROJUS
  • Žinutės: 3959
  • Karma: +117/-12

  • Aktyvumas per 30d.
    100%
Re: Neprisijungia prie mysql EXTENDINTA klase
« Atsakyti #5 : 2011-03-02 23:55:17 »
tikriausiai kazkur kertasi tavo objektu logika, private/public ar  pns. buna visiems tokiu dalyku, bet ka tiksliai blogai darai negaliu pasakyti. as pats darydamas kazka su oop nuolatos testuojuos, ziuriu ar matau tai ka reikia, ko tikiuosi. kiekvienoj klasej dazniausiai turiu pasirases testams skirta funkcija, kad tiesiog paziuret kaip veikia.. nes is tikro buna daznai sudetinga atsekti kas kur kaip turetu buti. siaip su mysql_connect() tai siulyciau link'a perdavineti bandyti + pasiziureti apie &$var israiskas + mysql_close(); naudoti, o nelaikyti nuolatos atvira prisijungima.
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
Jums patinka manualai.lt projektas?
serveriai.lt 50% nuolaida!

ganjabest

  • HEROJUS
  • Žinutės: 695
  • Karma: +30/-0
  • Povilas Stankevičius

  • Aktyvumas per 30d.
    100%
Re: Neprisijungia prie mysql EXTENDINTA klase
« Atsakyti #6 : Vakar at 18:10:59 »
siaip su mysql_connect() tai siulyciau link'a perdavineti bandyti + pasiziureti apie &$var israiskas + mysql_close(); naudoti, o nelaikyti nuolatos atvira prisijungima.


ta prasme link'a ? mysql yra uzdarinejamas laiku.. Cia tik ne visa failo turini parodziau ;)

Nu ta mysql klase visai be jokiu private public.. As ir sukau galva kodel taip padaryta. Bet reikes pasikoreguoti ja paciam kiek matau.
Visi žmonės kaip žmonės - tik aš vienas kaip dievas!

Lukas Liesis

  • Administratorius
  • Super HEROJUS
  • Žinutės: 3959
  • Karma: +117/-12

  • Aktyvumas per 30d.
    100%
Re: Neprisijungia prie mysql EXTENDINTA klase
« Atsakyti #7 : Vakar at 19:37:39 »
nereikia rasyti private/public php'as pats priskiria reiksmes pagal tai kokia kodo struktura. taip kaip ir kintamiesiems nenurodai kad tai yra int, sitas bool, o sitas char'as. viskas automatizuota :)
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
Jums patinka manualai.lt projektas?
serveriai.lt 50% nuolaida!

ganjabest

  • HEROJUS
  • Žinutės: 695
  • Karma: +30/-0
  • Povilas Stankevičius

  • Aktyvumas per 30d.
    100%
Re: Neprisijungia prie mysql EXTENDINTA klase
« Atsakyti #8 : Vakar at 20:52:30 »
Ai o as dazniausia rasydavau viska  ;D
Beje ka turejai omenyje ?

siaip su mysql_connect() tai siulyciau link'a perdavineti bandyti + pasiziureti apie &$var israiskas

Visi žmonės kaip žmonės - tik aš vienas kaip dievas!

Lukas Liesis

  • Administratorius
  • Super HEROJUS
  • Žinutės: 3959
  • Karma: +117/-12

  • Aktyvumas per 30d.
    100%
Re: Neprisijungia prie mysql EXTENDINTA klase
« Atsakyti #9 : Vakar at 21:01:35 »
nelaikyti tiesiog atviro connectiono prie sql, nes resursus metai kur nereikia, o &$var tai nezinau net kaip paaiskinti, as pats ne is pirmo karto isisavinau ta dalyka :) ypac su objektais, su jais ir dabar daznai klaidu padarau, reik kelis kartus testuotis kad teisingai butu..

Papildau:

nebloga radau psl su paaiskinimais su tuo &:

http://www.phpreferencebook.com/samples/php-pass-by-reference/
« Paskutinis taisymas: Vakar at 21:05:00 nuo Lukas Liesis »
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
Jums patinka manualai.lt projektas?
serveriai.lt 50% nuolaida!

ganjabest

  • HEROJUS
  • Žinutės: 695
  • Karma: +30/-0
  • Povilas Stankevičius

  • Aktyvumas per 30d.
    100%
Re: Neprisijungia prie mysql EXTENDINTA klase
« Atsakyti #10 : Vakar at 23:39:11 »
Dekui uz link'a nes pirmai googlinau nk neradau  :)

EDIT: Dabar prisiminiau kas cia per & . C++ jis taip pat naudojamas. Kaip mokinaus tai man jis LABAI nepatiko nes niekaip neperpratau ka jis daro ir kam reikalingas :D
« Paskutinis taisymas: Šiandien 00:13:47 nuo ganjabest »
Visi žmonės kaip žmonės - tik aš vienas kaip dievas!