Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne][MySQL]porównie $string z mysql do $string z pliku csv
Gularz_pl
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 3.03.2008

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


Witam ponownie (IMG:style_emoticons/default/smile.gif)

Potrzebyję pomocy z poniższym fragmentem kodu.
Mam bazę mysql i w niej "numer_klienta", potrzebuję porównać czy pobrany numer istnieje w pliku csv i odpowiedznie spreparowanie odpowiedzi.
W chcwili obecnej wyszukuje mi tylko ostatni numer pobrany z bazy/
Format pliku csv:
|12|
|123|
itd.

Z góry thx. (IMG:style_emoticons/default/biggrin.gif)

  1. $plik = fopen ("baza.csv","r");
  2. $ins=mysql_query("select * from klient");
  3. while($row=mysql_fetch_array($ins)){
  4. $numer_z_bazy=$row['numer_klienta'];
  5.  
  6. while (($data = fgetcsv($plik_pyxis, 1000, "|")) !==FALSE){
  7. $numer_klienta=explode("|",$data[1]);
  8. $numer_k=$numer_klienta[0];
  9.  
  10. if ($numer_z_bazy==$numer_k)
  11. {
  12. echo "Znaleziono klienta nr. " . $numer_k."</br>";
  13. break;
  14. }
  15. else
  16. {
  17. echo "Nie znaleziono</br>";
  18. }
  19. }
  20. }
  21.  


Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Raz pobierz zawartosc pliku http://php.net/file_get_contents
i czy podane słowo istnieje w pliku to sprawdzisz za pomoca http://php.net/strpos
Go to the top of the page
+Quote Post
Gularz_pl
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 3.03.2008

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


Cytat(wookieb @ 15.08.2009, 22:35:09 ) *
Raz pobierz zawartosc pliku http://php.net/file_get_contents
i czy podane słowo istnieje w pliku to sprawdzisz za pomoca http://php.net/strpos


Zrobiłem tak:

  1. $ins=mysql_query("select * from klient");
  2. while($row=mysql_fetch_array($ins))
  3. {
  4. $numer_z_bazy=$row['numer_klienta'];
  5.  
  6. $dane = file("baza.csv");
  7. for($i=0; $i<count($dane); $i++) {
  8. $dane[$i] = explode("|", $dane[$i]);
  9. if (strpos($dane[$i][1],$numer_z_bazy)!==False)
  10. {
  11. echo "Znaleziono ".$numer_z_bazy."</br>";
  12. break;
  13. }
  14. }
  15. }
  16. mysql_close($connection);


ale jak wylistować $numer_z_bazy w wypadku kiedy numer nie figuruje w pliku (IMG:style_emoticons/default/questionmark.gif) ? else na if(strpos nie załatwia sprawy

Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(wookieb @ 15.08.2009, 22:35:09 ) *
Raz pobierz zawartosc pliku http://php.net/file_get_contents

i na nim sprawdzaj czy uzytkownik jest. Jezeli nie ma to else i po sprawie. Po cholere pobierasz w petli za kazdym razem zawartosc pliku?(IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Gularz_pl
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 3.03.2008

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


ok a wiec tak (IMG:style_emoticons/default/smile.gif)
ale nadal cos jest nie tak.
w bazie mam wpis numer_klienta |200| w pliku nie ma wszystko ok pisze ze nie ma, ale po dodaniu klienta w pliku dalej skrypt twierdzi ze nie ma (IMG:style_emoticons/default/questionmark.gif) ?
oczyświcie odświeżałem przegladarkęe ,kasowałem cache i to samo (IMG:style_emoticons/default/questionmark.gif) ? jakiś pomysł (IMG:style_emoticons/default/questionmark.gif)


  1. $ins=mysql_query("select * from klient");
  2. $plik = file_get_contents("baza.csv");
  3.  
  4. while($row=mysql_fetch_array($ins))
  5. {
  6. $numer_z_bazy=$row['numer_klienta'];
  7. if (strpos($plik,$numer_z_bazy))
  8. {
  9. echo "jest ".$numer_z_bazy. "</br>";
  10. }
  11. else
  12. {
  13. echo "nie ma ".$numer_z_bazy."</br>";
  14. }
  15. }
  16. mysql_close($connection);


Ten post edytował Gularz_pl 16.08.2009, 10:21:14
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No a skoro usunales z pliku numer klienta i w pliku sprawdzasz czy istnieje a skoro mowi ci ze nie ma w pliku tzn ze nie ma w pliku. Odpowiedź wywnioskuj.
Go to the top of the page
+Quote Post
Gularz_pl
post
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 3.03.2008

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


Cytat(wookieb @ 16.08.2009, 00:36:20 ) *
No a skoro usunales z pliku numer klienta i w pliku sprawdzasz czy istnieje a skoro mowi ci ze nie ma w pliku tzn ze nie ma w pliku. Odpowiedź wywnioskuj.


nie zrozumiałeś:
w bazie mysql numer_klienta istnieje a w pliku nie ; ok skrypt twierdzi ze nie ma bo tak jest
dodaję klienta w pliku i uruchamiam skrypt więc istnieje i w bazie i pliku ; skrypt dalej twierdzi ze nie ma klienta w pliku.
Narazie zauwazyłem taką zależność z liczbą 200

no i pytanie co jak w pliku bedzie powiedzmy 2 klientów z nr.200 ;przypadkowo (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Dodałeś ten numer na początku pliku?
http://pl2.php.net/strpos -> ostrzeżenie
Go to the top of the page
+Quote Post
Gularz_pl
post
Post #9





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 3.03.2008

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


ok ostatecznie, prawie (IMG:style_emoticons/default/smile.gif) zgodnie z manualem (IMG:style_emoticons/default/smile.gif) porównywanie danych z mysql z plikiem csv.
Niestety skrypt mnie nie satysfakcjonuje ;/ ponieważ tak jak pisałem wcześniej
plik bedzie zawierał inne dane np.
|1|Kowalski|Jan|2|
|2|Kowalska|Iwona|234|

i w takim wypadku wszystko bedzie ok ale po usunięciu z pliku p.Iwony skrypt będzie dalej twierdził ze pani istnieje w pliku chodzi o numerek |2|.

Więc niestety pozostaje wczytanie pliku do tablicy jak w wcześniejszym [przykładzie i dopiero wyszukiwanie w konkretnej komórce, chyba ze jest obejście problemu ?

  1. $ins=mysql_query("select * from klient");
  2. $plik = file_get_contents(baza.csv);
  3.  
  4. while($row=mysql_fetch_array($ins))
  5. {
  6. $numer_z_bazy=$row['numer_klienta'];
  7. $pos=strpos($plik,$numer_z_bazy);
  8. if ($pos === false)
  9. {
  10. echo "Nie ma ".$numer_z_bazy."</br>" ;
  11. }
  12. else
  13. {
  14. echo "Jest ".$numer_z_bazy."</br>";
  15. }
  16. }


Go to the top of the page
+Quote Post
wookieb
post
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Ech nic nie myslisz. Jak ci ktoś każe wyszukac w ciagu tekstowy cyfry 2 to co bedziesz szukal? Znaku oznaczajacego cyfre 2. A jezeli usunimesz piękną iwonkę to czy w pliku są inne znaki z cyferką 2? oczywiście że tak.

  1. $pos=[url="http://www.php.net/strpos"]strpos[/url]($plik,'|'.$numer_z_bazy.'|');

Go to the top of the page
+Quote Post
Gularz_pl
post
Post #11





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 3.03.2008

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


Cytat(wookieb @ 16.08.2009, 11:43:19 ) *
Ech nic nie myslisz. Jak ci ktoś każe wyszukac w ciagu tekstowy cyfry 2 to co bedziesz szukal? Znaku oznaczajacego cyfre 2. A jezeli usunimesz piękną iwonkę to czy w pliku są inne znaki z cyferką 2? oczywiście że tak.


no teraz to juz zbaraniałem (IMG:style_emoticons/default/smile.gif) mozna coś bliżej ? problem pewnie lezy w tym ze struktura pliku dokładnie wyglada tak:
2009-08-03 22:19:57|200|martyna|884254|Kowalski Jan|||118|||
2009-08-03 22:19:57|383|broniewskiego22|1740243|Kowalska Iwona|||200|||

podbiję wyżej (IMG:style_emoticons/default/smile.gif)

zna ktoś rozwiązanie problemu ?

Ten post edytował Gularz_pl 16.08.2009, 14:52:04
Go to the top of the page
+Quote Post
wookieb
post
Post #12





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No i po co podbijasz?

Jak nie umiesz zrobic strpos to nauka php i logiki cie czeka.
Zrob skrypt ktory w petli stworzy ci tablice idków osób. http://php.net/explode , http://php.net/file

I potem http://php.net/in_array sprawdzisz czy klient istnieje.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 23:06