Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyszukiwarka zawartości pliku CSV
swider8814
post 15.10.2013, 13:52:41
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 29.03.2004

Ostrzeżenie: (0%)
-----


Witam, moja znajomość PHP jest bardzo niewielka. Próbuję stworzyć skrypt, który przeszukuje plik CSV wyeksportowany z programu magazynowego aby można było sprawdzić ilość danego towaru na magazynie.

Przykładowe dane w pliku CSV wyglądają tak:
  1. model1,opis1,1
  2. model2,opis2,2
  3. model3,opis3,3
  4. model4,opis4,4


Jak zrobić aby każda z kolumn była osobno wyświetlana? Aktualnie $line pokazuje mi całą linijkę (wiersz).

Jeszcze mam jeden problem. Nie wiem jak zrobić aby wyszukiwana fraza nie była zależna od wielkości znaku.

  1. <html>
  2. <form method="get" id="search-form">
  3. <input type="text" name="search" placeholder="Sprawdź dostępność">
  4. <input type="submit" value="Szukaj" />
  5. </form></html>
  6.  
  7. <?php
  8. if ( !empty ( $_GET['search'] ) ) {
  9. $search = $_GET['search'];
  10. $lines = file('plik.csv');
  11.  
  12. $found = false;
  13.  
  14. foreach($lines as $line)
  15. {
  16. if(strpos($line, $search) !== false)
  17. {
  18.  
  19. $found = true;
  20. echo "<div class='datagrid'><table><thead><tr><th>MODEL</th><th width='225px;'>OPIS</th><th width='100px;'>ILOŚĆ</th><th width='155px;'>ZAPYTANIE</th></tr></thead><tbody><tr>";
  21. echo "<td>" . $line; echo "</td>";
  22. echo "<td>" . $line; echo "</td>";
  23. echo "<td>" . $line; echo "</td>";
  24. echo "<td><a href='mailto:jakisadresmailowy?body=[zapytanie] $line' id='button'>Wyślij zapytanie</a></td>";
  25. echo "</tr>";
  26. echo "</tbody></table></div>";
  27. }
  28. }
  29.  
  30. if(!$found) {
  31. echo 'Nie znaleziono tego modelu w bazie danych';
  32. }
  33. }
  34. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Sephirus
post 15.10.2013, 14:04:08
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


zobacz przykłady wykorzystania funkcji fgetsv

link


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
swider8814
post 15.10.2013, 14:17:50
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 29.03.2004

Ostrzeżenie: (0%)
-----


Właśnie przeglądałem tą stronę i niestety nie umiem sobie z tym poradzić. Jak pisałem moja znajomość PHP nie jest najlepsza... Można prosić o jakąś większą podpowiedź? wink.gif
Go to the top of the page
+Quote Post
Helid
post 15.10.2013, 20:05:13
Post #4





Grupa: Zarejestrowani
Postów: 280
Pomógł: 20
Dołączył: 12.12.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Jak zrobić aby każda z kolumn była osobno wyświetlana? Aktualnie $line pokazuje mi całą linijkę (wiersz).

Jeszcze mam jeden problem. Nie wiem jak zrobić aby wyszukiwana fraza nie była zależna od wielkości znaku.

  1. <html>
  2. <form method="get" id="search-form">
  3. <input type="text" name="search" placeholder="Sprawdź dostępność">
  4. <input type="submit" value="Szukaj" />
  5. </form></html>
  6.  
  7. <?php
  8. if ( !empty ( $_GET['search'] ) ) {
  9. $search = mb_strtolower($_GET['search']);
  10. $lines = file('plik.csv');
  11.  
  12. $found = false;
  13.  
  14. foreach($lines as $line)
  15. {
  16. $line = mb_strtolower($line);
  17.  
  18. if(strpos($line, $search) !== false)
  19. {
  20. $line = explode(';', $line);
  21.  
  22. $found = true;
  23. echo "<div class='datagrid'><table><thead><tr><th>MODEL</th><th width='225px;'>OPIS</th><th width='100px;'>ILOŚĆ</th><th width='155px;'>ZAPYTANIE</th></tr></thead><tbody><tr>";
  24. echo "<td>" . $line[0]; echo "</td>";
  25. echo "<td>" . $line[1]; echo "</td>";
  26. echo "<td>" . $line[2]; echo "</td>";
  27. echo "<td><a href='mailto:jakisadresmailowy?body=[zapytanie] $line' id='button'>Wyślij zapytanie</a></td>";
  28. echo "</tr>";
  29. echo "</tbody></table></div>";
  30. }
  31. }
  32.  
  33. if(!$found) {
  34. echo 'Nie znaleziono tego modelu w bazie danych';
  35. }
  36. }
  37. ?>


Mniej więcej tak


--------------------
Go to the top of the page
+Quote Post
swider8814
post 16.10.2013, 07:43:15
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 29.03.2004

Ostrzeżenie: (0%)
-----


Dziękuję bardzo smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.06.2025 - 22:50