Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL]Klasa i jedno zapytanie do wszyskich funkcji
Forum PHP.pl > Forum > Przedszkole
DannyM
Pisze sobie pierwsza swoja klase i mam jedno zapytanie a chce je uzyc we wszyskich funkcjach bo roznia sie tylko wynikiem zapisu do pliku.
Jak mam w funkcji zapytanie to o.k a jak poza to nie.

  1. <?php
  2. // TU BYM CHCIAL DAC ZAPYTANIE DO BAZY DO WSZYSKICH FUNKCJI
  3.  
  4. class MOJAKLASA {
  5.   function wynik() {
  6.     echo "
  7. <id></id>
  8. ";
  9.   }
  10.  
  11. function wynik_inny() {
  12.     echo "
  13. <pix></pix>
  14. ";
  15.   }
  16. }
  17. ?>
golaod
Albo zrób klasę bazową którą potem dziedziczą inne klasy albo do konstruktora klasy dodaj wprowadzenie zapytania sql (lub np. $sql private i do tego funkcje która zmienia zapytanie sql)
DannyM
Zrobilem to przez zapytanie i mam bleda winksmiley.jpg
Notice: Use of undefined constant _ZAPYTANIE1 - assumed '_ZAPYTANIE1' in

Nad klasa:

  1. <?php
  2. define(_ZAPYTANIE1,"SELECT DISTINCT ....
  3.    ");
  4. ?>



w funkcji dalem
  1. <?php
  2. $sql = _ZAPYTANIE1;
  3.   $blad = mysql_query($sql) or trigger_error(mysql_error(),E_USER_ERROR);
  4. ?>
nospor
zobacz w manulu jak sie uzywa define i zrob tak jak pokazali

ps: dawanie zapytania do stalej to jakies nieporozumienie. Ty chyba czegos tu nie kumasz winksmiley.jpg
DannyM
Jak zwykle nospor nic na latwizne ale pomoglo dziekuje winksmiley.jpg
nospor
no nie zartuj ze odeslania do manuala by zobaczyc jak prawidłowo uzyc danej rzeczy to jest "nic na łatwizne". Sam powinienes od tego zaczac bez mojego przykazu.
DannyM
NIe stresuj sie czasami czlowek zapomina o tym i owym. Mam nadzieje, ze sie nie obrazasz smile.gif
nospor
Ja sie nie stresuje ani nie obrazam.
Zwracam ci jedynie uwage, ze zajrzenie do manuala w celu rozwiązania banalnego problemu to naprawde podstawowa sprawa jaką powinienes najpierw zrobic zanim napiszesz na forum. Nie wiem jak mozna o tym zapomniec winksmiley.jpg
mike
Cytat(nospor @ 24.09.2008, 12:14:22 ) *
Nie wiem jak mozna o tym zapomniec winksmiley.jpg
A znasz dowcip o blondynce co nosiła walkmana, w którym leciało cały czas: "Wdech, wydech, wdech, wydech, ..."?
Nie takich rzeczy ludzie "zapominają" tongue.gif
DannyM
Jeszcze jedno bo tyczy sie tej klasy wiec mysle, ze moge w tym watku.

Mam sobie config i wyciagam z niego a nie wyciaga tych $adres, $nazwa:

  1. <?php
  2. require_once( '../../config.php' );
  3. global $adres, $nazwa;
  4. ?>

Co zle robie? Zwyczajnie potrzebuje tych globalnych

Dodam, ze jak wyciagam z niego polaczenie to jest o.k

  1. <?php
  2. $baza = mysql_pconnect($host, $user, $password) or trigger_error(mysql_error(),E_USER_ERROR);
  3. $baza = mysql_select_db($db);
  4. ?>
golaod
Napisz gdzie one są w pliku config bo nie interesuje mnie zbytnio jak ty je wywołujesz w pliku który includuje ten config ze zmiennymi.
DannyM
Nic nadzwyczajnego:

  1. <?php
  2. $adres = 'Adres';
  3. $nazwa = 'Nazwa';
  4. ?>


O ile Cie dobrze rozumiem smile.gif
Includuje go w tej klasie na samej gorze przed jej utworzeniem.
Globalne dodaje i w funkcji ale nic nie daje.
golaod
Mam rozumieć, że masz pliki(załóżmy, że takie krótkie):
config.php
  1. <?php
  2. $adres = 'Adres';
  3. $nazwa = 'Nazwa';
  4. ?>

inny.php:
  1. <?php
  2. require_once('config.php');
  3. global $adres,$nazwa;
  4. echo $adres.'.'.$nazwa;
  5. ?>

I nie widzi Ci zmiennych ? Coś kręcisz.
DannyM
Dokladnie tak. Te inny.php to class.php plik z klasa wywolywany potem w innym pliku

No wiec mam tak config i jego zawartosc znasz.
class.php
  1. <?php
  2. require_once( '../../config.php' );
  3. global $nazwa;
  4.  
  5. class CLASA {
  6. function moje() {
  7.  
  8. global $nazwa;
  9.   echo "ssss >>> $nazwa <<< ssss";
  10. }
  11. }
  12. ?>


Wywoluje to w pliku wywolaj.php

  1. <?php
  2.  function __autoload($class) {
  3.    require_once("class.php");
  4.  }
  5.  
  6.  $obiekt = new CLASA();
  7.  $obiekt->moje();
  8. ?>
golaod
Nie wiem jak to możliwe, bo mi wyświetla normalnie, może pomyliłeś nazwy zmiennych ? Albo w ogóle Ci się całe echo nie wyświetla ? Czy tylko zanika wartość zmiennej ?
DannyM
Wynikiem mam
ssss >>> <<< ssss

Przelaczylem na php4 i dostalem
Fatal error: Cannot instantiate non-existent clasa:
golaod
Skoro wynik masz pusty to znaczy, że zmienne Ci się popier...
DannyM
Cala sprawa wyjasnila sie jak skasowalem

  1. <?php
  2. function __autoload($class) {
  3.   require_once("class.php");
  4. }
  5. ?>


teraz wszysko smiga smile.gif
Troche dziwne ale prawdziwe smile.gif

Jeszcze jedno co do klasy:

mam plik config.php a w nim:

  1. <?php
  2. class KLASA {
  3.    var $opis1 = 'XXX';
  4.    var $opis2 = 'YYY';
  5.    var $opis3 = 'ZZZ';
  6. }
  7. ?>


i wywalanie w pliku 2:
  1. <?php
  2. require_once( 'config.php' );
  3. $obiekt = new KLASA();
  4. global $opis1, $opis2, $opis3;
  5. echo " >>>> $opis1, $opis2, $opis3 <<<<<";
  6. ?>


Nie wiem czemu ale nie wyswietla nic sad.gif
Cos mi z tymi klasami nie wychodzi
melkorm
hm nie przypadkiem:

  1. <?php
  2. $obiekt->opis1
  3. ?>
? snitch.gif
DannyM
a jak to wyswietlic aby sprawdzic ?
melkorm
  1. <?php
  2. echo $obiekt->opis1
  3. ?>


o_O
DannyM
Super tego mi bylo trzeba winksmiley.jpg
Klikam pomogl smile.gif

jeszcze jedno wstydnis.gif jak wstawic to w zmienna smile.gif

  1. <?php
  2. $zmienna = $obiekt->opis1;
  3. ?>
nie dziala
nospor
kurcze....
opis czy opis1
questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif
DannyM
Cytat(nospor @ 1.10.2008, 20:48:56 ) *
kurcze....
opis czy opis1
questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif


Ty mnie ale lubisz biggrin.gif
nospor
moj stosunek do Ciebie jest obojętny. Moze conajwyzej mnie draznisz momentami. winksmiley.jpg Patrz co piszesz a nie zawalasz forum takimi problemami. Toz to jedna krotka linijka kodu....
DannyM
Wiesz jak mi sie wydaje ale to przedszkole tongue.gif
Zamiast sie tu przepychac pomogl bys i tyle.
nospor
przeciez ci pomoglem.
powiedzialem ze nie opis a opis1. czego jeszcze chcesz?

widze ze edytowales posta na prawidlową zmienną

skoro dziala ci:
  1. <?php
  2. echo $obiekt->opis1
  3. ?>

To musi rowniez ci dzialac:
  1. <?php
  2. $zm =  $obiekt->opis1;
  3. echo $zm;
  4. ?>

Nie ma bata
DannyM
No uwierz mi, ze nie chodzi o 1 w obiekcie.
Chyba cos pominelme bo nie wyswietlalo mi sie wiec napisalem na forum bo roznie bywa.
Zwyczajnie nie przekazywal opis1 wiec pomyslalem, ze zle ja przypisalem do zmienej. Poszperalem i nie znalazlem odpowiedzi wiec napisalem smile.gif
Nie zawsze wale ty z glupotami smile.gif
nospor
Cytat
No uwierz mi, ze nie chodzi o 1 w obiekcie.
No wybacz, ale jak w jednym poscie masz opis1 i mowisz ze dziala, a w drugim poscie masz opis bez 1 i mowisz ze nie dziala to co ja mam se pomyslec? No walnales taka literowe i lecisz na forum. dziwisz sie?

rozwiązanie co ci podalem w poprzednim poscie dziala?
DannyM
Tak dziala. Nie wklejalem tu mojego kodu tylko podalem przyklad.
Chodzi o to, ze jeden z obiektow z listy byl pusty i trafilem na niego w echo i nie wyswietlal.
Wszysko dziala i dziekuje za cierpliowsc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.