Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Szukanie w tekstowej bazie danych
Forum PHP.pl > Forum > Przedszkole
kiler129
Mam baze w takim formacie:

imie.txt
Jas
Krzysz
Lol

nazwisko.txt
Kowalski
Tatarski
Dziwak

mail.txt
jas@cos.pl
krzysiu111@xxx.pl
loler@lolowo.pl

no i jak w tym szukać questionmark.gif
Myślałem nad czyms takim ze biore plik np. imie.txt i szukam np. Krzys i skrypt odnajduje w 2 linijce, wiec pobiera dane z 2 lini pliku nazwisko.txt i mail.txt smile.gif

Tylko jest problem - nie znam funkcji która po odnalezieniu mowi gdzie wyraz wystapil tiredsmiley.gif

Ostatecznie moge zminic format bazy - sql nie wchodzi w gre.
strife
Cytat(kiler129 @ 1.06.2007, 22:14:19 ) *
Tylko jest problem - nie znam funkcji która po odnalezieniu mowi gdzie wyraz wystapil tiredsmiley.gif

Ostatecznie moge zminic format bazy - sql nie wchodzi w gre.


strpos" title="Zobacz w manualu PHP" target="_manual, albo file" title="Zobacz w manualu PHP" target="_manual + foreach i masz w którym wierszu znalazł się dany wyraz, ew. ereg" title="Zobacz w manualu PHP" target="_manual. Dasz sobie radę winksmiley.jpg

Pozdrawiam.

Przenoszę na Przedszkole
kiler129
Moze jakis kodzik ?
strpos zwraca nie linie a chyba miejse w znakach ...
strife
Cytat(kiler129 @ 1.06.2007, 22:51:28 ) *
Moze jakis kodzik ?
strpos zwraca nie linie a chyba miejse w znakach ...


  1. <?php
  2. $file = file('file.txt');
  3.  
  4. $arrFind = array();
  5. $szukany_string = "Kasia";
  6.  
  7. foreach( $file as $key => $value ) {
  8. if ( ereg($szukany_string, $value ) ) {
  9. $arrFind[] = $key;
  10. }
  11. }
  12.  
  13. if ( ! empty( $arrFind ) ) {
  14. echo "Podany string = " . $szukany_string . " zostal znaleziony w liniach: ";
  15. foreach( $arrFind as $line ) {
  16. echo $line . ', ';
  17. }
  18. ?>


Pisane z palca, o coś takiego mniej więcej Ci chodzi ? smile.gif

Pozdrawiam.
kiler129
Dobra nie za wiele rozumiem tongue.gif
Sam wyskrobalem cost takiego:

  1. <?
  2. $dir = './data/';
  3.  
  4. $firma = 'firma.txt';
  5. $imie = 'imie.txt';
  6. $nazwisko = 'nazwisko.txt';
  7. $mail = 'mail.txt';
  8. $tel = 'telefon.txt';
  9.  
  10. if(!is_readable($dir.$firma) || !is_readable($dir.$imie) || !is_readable($dir.$nazwisko) || !is_readable($dir.$tel) || !is_readable($dir.$mail))
  11. {
  12. return(print "ERROR ! DATABASE ERROR !");
  13. }
  14.  
  15. echo 'Database connected !<br>You now can find any data :)<br><br>';
  16. echo '<form method="POST" action="">
  17. <p><input type="text" name="string" size="45"></p>
  18. <p>Search in <select size="1" name="si">
  19. <option value="firma">company</option>
  20. <option value="imie">name</option>
  21. <option value="nazwisko">surname</option>
  22. <option value="mail">email</option>
  23. <option value="telefon">telephone</option>
  24. </select></p>
  25. <p><input type="submit" value="Search !"></p>
  26. </form>';
  27.  
  28. $gdzie = './data/'.$_POST['si'].'.txt';
  29. $linie = file($gdzie);
  30. $ile = count($linie);
  31.  
  32. $i = 0;
  33. while($i <= $ile)
  34. {
  35.  $jcn = substr_count($linie[$i], $_POST['string']).'<br>';
  36.  if($jcn >= '1')
  37.  {
  38.  $znal .= '||'.$i;
  39.  }
  40.  unset($jcn);
  41.  
  42.  $i++;
  43. }
  44.  
  45. $wynik = explode('||', $znal);
  46.  
  47. $firma = file('./data/firma.txt');
  48. $imie = file('./data/imie.txt');
  49. $nazwisko = file('./data/nazwisko.txt');
  50. $mail = file('./data/mail.txt');
  51. $tel = file('./data/telefon.txt');
  52.  
  53. $irz = count($wynik);
  54. $irz--;
  55.  
  56. echo 'Finded '.$irz.' record:<br><br>';
  57.  
  58.  $i = 1;
  59. while($i <= $irz)
  60. {
  61. echo '<b>Company: </b>'.$firma[$wynik[$i]].'<br>';
  62. echo '<b>Name: </b>'.$imie[$wynik[$i]].'<br>'; 
  63. echo '<b>Surname: </b>'.$nazwisko[$wynik[$i]].'<br>'; 
  64. echo '<b>E-mail: </b>'.$mail[$wynik[$i]].'<br>';
  65. echo '<b>Telephone: </b>'.$tel[$wynik[$i]].'<br>';
  66. echo '<hr>';
  67. $i++;
  68. } 
  69.  
  70.  
  71. ?>


p.s. Nazwy po angielsku bo to dla ludzi umiacych tylko angielski smile.gif

Jak to sie zachowa na kilku tysiacach adresow ?

Skrypt do dodawania:

  1. <?
  2.  
  3. $dir = './data/';
  4.  
  5. $firma = 'firma.txt';
  6. $imie = 'imie.txt';
  7. $nazwisko = 'nazwisko.txt';
  8. $mail = 'mail.txt';
  9. $tel = 'telefon.txt';
  10.  
  11. if(!is_writable($dir.$firma) || !is_writable($dir.$imie) || !is_writable($dir.$nazwisko) || !is_writable($dir.$tel) || !is_writable($dir.$mail))
  12. {
  13. return(print "ERROR ! DATABASE ERROR !");
  14. }
  15.  
  16. echo 'Database connected !<br>You now can add any data :)<br><br>';
  17.  
  18.  
  19. echo '<form method="POST" action="">
  20. <p>Company: <input type="text" name="company" size="51"></p>
  21. <p>Name: <input type="text" name="name" size="31"></p>
  22. <p>Surname: <input type="text" name="surname" size="28"></p>
  23. <p>E-mail: <input type="text" name="mail" size="38"></p>
  24. <p>Telephone: <input type="text" name="tel" size="20"></p>
  25. <input type="hidden" name="ok" value="data_ok" size="20">
  26. <p><input type="submit" value="Add"></p>
  27. </form>';
  28.  
  29. if($_POST['ok'] == 'data_ok')
  30. {
  31. echo 'Data is now in database :)<br>Added data:<br><br>';
  32.  
  33. $firma_d = $_POST['company'];
  34. $imie_d = $_POST['name'];
  35. $nazwisko_d = $_POST['surname'];
  36. $mail_d = $_POST['mail'];
  37. $tel_d = $_POST['tel'];
  38.  
  39. echo '<b>Company:</b> '.$firma_d.'<br>';
  40. echo '<b>Nama:</b> '.$imie_d.'<br>';
  41. echo '<b>Surname:</b> '.$nazwisko_d.'<br>';
  42. echo '<b>E-mail:</b> '.$mail_d.'<br>';
  43. echo '<b>Telephone:</b> '.$tel_d.'<br>';
  44.  
  45. $fp = fopen($dir.$firma, "a");
  46. fwrite($fp, $firma_d."n");
  47. fclose($fp);
  48. unset($fp);
  49.  
  50. $fp = fopen($dir.$imie, "a");
  51. fwrite($fp, $imie_d."n");
  52. fclose($fp);
  53. unset($fp);
  54.  
  55. $fp = fopen($dir.$nazwisko, "a");
  56. fwrite($fp, $nazwisko_d."n");
  57. fclose($fp);
  58. unset($fp);
  59.  
  60. $fp = fopen($dir.$mail, "a");
  61. fwrite($fp, $mail_d."n");
  62. fclose($fp);
  63. unset($fp);
  64.  
  65. $fp = fopen($dir.$tel, "a");
  66. fwrite($fp, $tel_d."n");
  67. fclose($fp);
  68. unset($fp);
  69. }
  70. ?>
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.