Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: bład przy tekstowej bazie danych
Forum PHP.pl > Forum > PHP
xblant
utchnolem na klasie vievRec, editRec, i dropRec.
takie zapytanie do viev rec ygladalo by tak:
  1. <?php
  2.  
  3. $query = new vievRec('nazwa tebeli', array('kolumny', 'ktore', 'maja', 'byc', 'pobrane'), ' "gdzie" np. "kolumna" (operatory - "<=", "==", ">=") "wartosc" "id" == "5" albo "id" >= "5" ');
  4.  
  5. ?>

to byl przyklad wykozystania ale nie wiem jak to zrobic siedze i siedze i wymyslile cos takiego: (ale i tak nie bedzie dzialac bo utknolem i nie ykonuje swojej pracy)
  1. <?php
  2.  
  3. class vievRec extends query
  4. {
  5. var $check = '0';
  6. var $tableName;
  7. var $tableFile;
  8. var $structFile;
  9. var $what;
  10. var $where;
  11. function vievRec($tableName, $what, $where)
  12. {
  13. $this -> tableName = $tableName;
  14. $this -> what = $what;
  15. $this -> where = $where;
  16. }
  17.  
  18. function execute($db)
  19. {
  20. $where[0] = preg_replace('#'(.*?)' = '(.*?)'#si', '//1', $this -> where);
  21. $where[1] = preg_replace('#'(.*?)' = '(.*?)'#si', '//2', $this -> where);
  22. $line = file($structFile);
  23. $coll = unserialize($line[0]);
  24. if(is_array($this -> what))
  25. {
  26. for($i = '0'; $i < count($coll); $i++)
  27. {
  28. for($j = '0'; $j < count($this -> what; $j++))
  29. {
  30. if($coll[$i] == $this -> what[$j])
  31. {
  32. $nums .= $i.'|';
  33. }
  34. }
  35. }
  36. $coll_num = explode('|', $nums);
  37. }
  38. else
  39. {
  40. for($i = '0'; $i < count($coll); $i++)
  41. {
  42. if($coll[$i] == $this -> what)
  43. {
  44. $coll_num = $i;
  45. break;
  46. }
  47. }
  48. }
  49. $line = file($tableFile);
  50. for($i = '0'; $i < count($line); $i++)
  51. {
  52. $line[$i] = unserialize($line[$i]);
  53. }
  54. if(is_array($coll_num))
  55. {
  56.  
  57. }
  58. else
  59. {
  60. for($i = '0'; $i < count($line); $i++)
  61. {
  62. if($line[$i][$coll_num] == $where[1])
  63. {
  64. $
  65. }
  66. }
  67. }
  68. }
  69. }
  70.  
  71. ?>

moze ktos bedzie umial rozwiazac problemy z tymi 3 klasami
Hacker
  1. <?php
  2. [...]function execute($db)
  3. {
  4. mkdir($dataBaseDir.$db -> baseName.'/'.$this -> tableName); // to się by przydało
  5. $this -> tableFile = $dataBaseDir.''.$db -> baseName.'/'.$this -> tableName.''.$tableFileExt;
  6. $this -> structFile = $dataBaseDir.''.$db -> baseName.'/'.$this -> tableName.''.$structFileExt;
  7. if(is_file($this -> tableFile))
  8. {
  9. $db -> error('Plik danych tabeli('.$this -> tableName.') juz istnieje.');
  10. $this -> check = '1';
  11. return false;
  12. }
  13. if(is_file($this -> structFile))
  14. {
  15. $db -> error('Plik struktury tabeli('.$this -> tableName.') juz istnieje.');
  16. $this -> check = '1';
  17. return false;
  18. }
  19. [...]
  20. ?>
xblant
to mkdir jest w funkcji createBase i jest ona wywolywana smile.gif
Hacker
a czy w createBase tworzysz dira tabeli?? ciekawe...
a i wmoim kodzie dodaj if (!is_dir($dataBaseDir.$db -> baseName.'/'.$this -> tableName))
xblant
Cytat
a czy w createBase tworzysz dira tabeli?? ciekawe...

dira tabeli questionmark.gif?
tabela to dwa pliki .struc - struktura i .tab dane tabeli a baza to folder przecie to normalne przy bazach textowych
Hacker
mam global
prawie wszędzie przed funkcją
  1. <?php
  2.  
  3. global $dataBaseDir, $tableFileExt, $structFileExt;
  4. ?>
xblant
@Hacker jak mam to zrozumiec questionmark.gif?
Cytat
mam global
prawie wszędzie przed funkcją

--EDIT--
Moze opisze klasy i funkcje:
klasa db - klasa glowna
- funkcja conect - laczy sie z baza (ustawia nazwe bazy w $this -> baseName)
- funkcja query - wysyla zapytanie do bazy (wykonanie ktorejs z klas przedstawionych w ifie)
- funkcja createBase - twozy baze (tworzy folder w katalogu okreslanym przez $dataBaseDir)
- funkcja dropBase - usuwa baze (usuwa folder w foldeze okreslanym przez $dataBaseDir)
- funkcja error - raportuje blad (dodaje nowy rekord do tablicy z bledami)
- funkcja getLastError - zwraca ostatni blad
- funkcja getErrorLog - zwraca wszystkie blendy
klasa createTab - twozy tabele o okreslonych kolumnach i nazwie (tworzy dwa pliki .struct i .table)
klasa dropTab - usuwa tabele (usuwa dwa pliki: .struct i .table)
klasa insertRec - dodaje rekord (dodaje zserializowana linijke na koncu pliku .table)
klasa dropRec - usuwa rekord (usuwa linijke z pliku .table)
klasa vievRec - zwraca rekord
klasa editRec - edytuje rekord (zamieni linijki w pliku .table)
klasa query - jest to klasa bazowa dla pozostalych wywolywanych z funkcji query

MOZE TO WAM POMOZE biggrin.gif
--EDIT--
glowa mnie przestala bolec i zrobilem tak jak bylo w txtDB zamiast var przed klasa db dalem define() i zmieniem te zmienne co byly zdefinowane varem na zwykle bez znaku dolara i jest git smile.gif
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.