Stranice: [1]   Idi dole
  Štampaj  
Autor Tema: MySQL vs. txt files?!  (Pročitano 2958 puta)
Markominus
Gost
« poslato: Utorak, 01. April 2003. 23:11:11 »

Problem je sledeci:
napisao sam jednu php skriptu za rad sa anketama (razne vrste glasanja).
Prva verzija je koristila samo txt fajlove medjutim odlucio sam da neke stvari prebacim u bazu, konkretno MySQL.
E tada su poceli problemi koje bas ne mogu da razjasnim a i nisam nasao objasnjenje u uputstvima za php i mysql (iako priznajem nisam imao zivaca da sve iscitam) kao ni na forumima da neko spominje isto pa sam odlucio da pitam licno.
Dakle stos je u tome da sad kako stvari stoje moja php skripta bi trebalo da radi i sa bazom i sa txt fajlovima, sad ne znam da li jedno drugo iskljucuje ali mi je problem oko toga.
U konkretnom php fajlu imam blok koji se tice rada s bazom.
Bazi pristupam s najobicnijim:
$dblink=@mysql_connect($host,$user,$pass)
a posle obavljenih poslova s tabelama zatvaram je sa:
@mysql_close($dblink)
Medjutim nakon toga ako uradim komandu tipa:
$fp=fopen("anketa/rezultati.txt","r+");
skripta mi vraca moju poruku greske to jest poruku koju sam ja postavio u slucaju da je $fp=0 (sto znaci da ne moze otvoriti fajl za citanje i pisanje) da ne moze otvoriti taj fajl.
Napominjem da nisam nigde ranije u bloku za rad s bazom koristio promenljivu $fp dakle ne vidim nacin da bi ista imala neki pogresan sadrzaj (svejedno sadrzaj se svakako azurira pri izvrsavanju naredbe fopen).

Kada komentarisem blok za rad s bazom u skripti onda sve s fajlovima radi potpuno normalno!!!

Dakle u cemu je problem?
Da li je uopste moguce raditi u jednom delu programa s bazama a u nekom drugom s fajlovima? (Ja ne vidim razloge zasto tako nesto ne bi bilo moguce)
Da li bi pomoglo da izdvojim rad sa bazom u poseban php fajl ili funkciju?
Sačuvana
dinke
Gost
« Odgovor #1 poslato: Sreda, 02. April 2003. 11:36:32 »

Naravno da je moguce da koristis fajlove i pristup MySQL-u istovremeno. Proveri kod jos jednom, proveri da li fajl  koji otvaras uopste postoji pa ako nista ne nadjes pastuj kod ovde kako bi ga pogledali.

Pozdrav
D
Sačuvana
deyan
Gost
« Odgovor #2 poslato: Sreda, 02. April 2003. 13:59:05 »

Postoji vi
Sačuvana
Markominus
Gost
« Odgovor #3 poslato: Sreda, 02. April 2003. 21:11:09 »

Prvo svima puno hvala na odgovorima.
Inace resio sam problem pre par minuta i bili ste u pravu greska je bila u PHP kodu.
Stvar je bila u sledecem.

Kod komande:
$fp=fopen ("anketa/rezultati.txt","r+");
posle toga sam radio jedan if oblika
if ($fp==2)
   {  blabla }
else   { greska }

kad sam uradio echo $fp pre tog if-a video sam da se resource id promenio tj. vrednost same promenljive.
Ne znam kako i zasto je do toga doslo (verovatno to ima veze sa blokom u kojem se radi s bazom a koji sam ubacio na pocetak php skripte).
Promenio sam if u prosto:
if($fp) {bla bla}
else {greska}
i sad sve radi ok.

Ali usput sam naisao na jos jedno pitanje u vezi MySQL-a.
Kako da proverim da li tabela u bazi vec postoji?
Iz razloga provere svakog query-a nekako mi ne odgovara CREATE IF NOT EXISTS pa sam koristio SHOW COLUMNS FROM $table, ali da li postoji jos neki nacin?
Sačuvana
dinke
Gost
« Odgovor #4 poslato: Sreda, 02. April 2003. 21:24:56 »

Citat
Kako da proverim da li tabela u bazi vec postoji?
Iz razloga provere svakog query-a nekako mi ne odgovara CREATE IF NOT EXISTS pa sam koristio SHOW COLUMNS FROM $table, ali da li postoji jos neki nacin?


Mozes koristiti show tables query koji ce ti prikazati sve tabele u tekucoj bazi. Ako nemas neku bazu sa mnooogo tabela, mislim da je ovo najelegantnije resenje.


Pozdrav
D
Sačuvana
deyan
Gost
« Odgovor #5 poslato: Četvrtak, 03. April 2003. 13:47:43 »

Ovo je jos samo jedan dokaz kako ljudi ne zele da bar malo pogledaju PHP manual :(

Evo izvoda iz PHP manual-a:

Kod:

<?php 
   $dbname 
'mysql_dbname'

   if &
#40;!mysql_connect&#40;'mysql_host', 'mysql_user', 'mysql_password'&#41;&#41; &#123; 
       
print 'Could not connect to mysql'
       exit; 
   &
#125; 

   
$result mysql_list_tables&#40;$dbname&#41;; 
    
   
if &#40;!$result&#41; &#123; 
       
print "DB Error, could not list tables\n"
       print 
'MySQL Error&#58; ' mysql_error&#40;&#41;; 
       
exit; 
   &
#125; 
    
   
while &#40;$row = mysql_fetch_row&#40;$result&#41;&#41; &#123; 
       
print "Table&#58; $row[0&#93;\n"
   &
#125; 

   
mysql_free_result&#40;$result&#41;; 
?>



Primer je valjda dovoljan da objasni kako da resis problem?
Sačuvana
Stranice: [1]   Idi gore
  Štampaj  
 
Prebaci se na:  

?>