Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Opcja wyszukiwarki nie chce działać
Lethys
post 19.06.2012, 18:27:32
Post #1





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Witam,

Stworzyłem na potrzeby swojego nowego projektu bardzo prostą wyszukiwarke. Generalnie wyszukiwarka działa jak należy, problem stanowi jej jedna opcja która nie chce mi działać.

Opcja ta polega na dodaniu do bazy wyszukań przy których nic nie znalazło.

Kod:

  1. if ($action == "szukanie"){
  2.  
  3.  
  4. $query = "SELECT * FROM gwiazdy WHERE gwiazda = '".$szukaj."' or link = '".$szukaj."' or gwiazda LIKE '%".$szukaj."%'";
  5. $result = mysql_query($query);
  6. while ($record = mysql_fetch_array($result)) {
  7.  
  8.  
  9.  
  10. print "<div class=\"portfolio-item-first\">
  11.  
  12. <a href=\"http://www.wzrost-gwiazd.pl/$record[link]/\" title=\"Wzrost $record[gwiazda]\"><h3>Wzrost <b>$record[gwiazda]</b></h3></a>
  13. <a href=\"http://www.wzrost-gwiazd.pl/$record[link]/\" title=\"Wzrost $record[gwiazda]\"><img src=\"$record[picture]\" height=\"220\" width=\"280\" alt=\"Wzrost $record[gwiazda]\" /></a>
  14.  
  15. </div><!--end portfolio-item-->";
  16.  
  17.  
  18. }
  19.  
  20. //ta część kodu nie chce działać
  21. $query = "SELECT * FROM gwiazdy WHERE gwiazda = '".$szukaj."' or link = '".$szukaj."' or gwiazda LIKE '%".$szukaj."%'" or die(mysql_error());
  22. $liczenie = mysql_num_rows($query) or die(mysql_error());
  23. print "naliczono: $liczenie";
  24.  
  25. if($liczenie == 0){
  26. mysql_query("insert into do_dodania (nazwa) values('$szukaj')") or die(mysql_error());
  27.  
  28. }
  29.  
  30.  
  31. }


Nie działą mi zmienna $liczenie bo print nie pokazuje żadnego wyniku.


--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
sadistic_son
post 19.06.2012, 18:31:55
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Zabrakło Ci mysql_query:
  1. $query = "SELECT * FROM gwiazdy WHERE gwiazda = '".$szukaj."' or link = '".$szukaj."' or gwiazda LIKE '%".$szukaj."%'" or die(mysql_error());
  2. $sql=mysql_query($query);
  3. $liczenie = mysql_num_rows($sql) or die(mysql_error());


Ten post edytował sadistic_son 19.06.2012, 18:32:45


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Lethys
post 19.06.2012, 18:41:28
Post #3





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Zmieniłem kod i generalnie $liczenie teraz działa ale tylko w przypadku kiedy jest wieksze od 0.

W przypadku 0, ucina tak jakby resztę strony po tym kodzie.

  1. $sql= mysql_query($query);
  2. $liczenie = mysql_num_rows($sql) or die(mysql_error());
  3. print "liczenie: $liczenie";
  4.  
  5. if($liczenie < 1){
  6. print "Nie mamy takiej gwiazdy w bazie, $szukaj został dodany do kolejki oczekującej na dodanie.";
  7. mysql_query("insert into do_dodania (nazwa) values('$szukaj')") or die(mysql_error());


Nie wykrywa jak jest 0.


--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
sadistic_son
post 19.06.2012, 18:44:31
Post #4





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


A zrób to tak:
  1. $liczenie = mysql_num_rows($query);
  2. if($liczenie>0){
  3. print "naliczono: $liczenie";
  4. }else{
  5. mysql_query("insert into do_dodania (nazwa) values('$szukaj')") or die(mysql_error());
  6. // itd....


Ten post edytował sadistic_son 19.06.2012, 18:45:07


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Lethys
post 19.06.2012, 19:09:23
Post #5





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Nie działa, teraz jest jeszcze inaczej. Dodaje do bazy nawet jak jest >0

Jak wpisałem Michał nie ma takiego wyniku w bazie to wyskoczyły błędy:

Cytat
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /var/www/vhosts/wzrost-gwiazd.pl/httpdocs/szukaj.php on line 100

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /var/www/vhosts/wzrost-gwiazd.pl/httpdocs/szukaj.php on line 115
Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='


Ten post edytował Lethys 19.06.2012, 19:11:09


--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
eviance
post 19.06.2012, 21:04:24
Post #6





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 18.03.2011
Skąd: R do M / Sanniki

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


nie wiem czy nie skopałem znaczników iż na kolanie pisałem

robisz jedno zapytanie przed while i tego się trzymaj,kod powinien się wykonać jeżeli jest wynik większy niż 0,inaczej ma sprawdzić czy jest 0 i dodać


  1. if ($action == "szukanie"){
  2.  
  3.  
  4. $query = "SELECT * FROM gwiazdy WHERE gwiazda = '".$szukaj."' or link = '".$szukaj."' or gwiazda LIKE '%".$szukaj."%'";
  5. $result = mysql_query($query);
  6.  
  7.  
  8.  
  9. while ($record = mysql_fetch_array($result)) {
  10.  
  11. if (mysql_num_rows($query)>0){
  12.  
  13. print "<div class=\"portfolio-item-first\">
  14.  
  15. <a href=\"http://www.wzrost-gwiazd.pl/$record[link]/\" title=\"Wzrost $record[gwiazda]\"><h3>Wzrost <b>$record[gwiazda]</b></h3></a>
  16. <a href=\"http://www.wzrost-gwiazd.pl/$record[link]/\" title=\"Wzrost $record[gwiazda]\"><img src=\"$record[picture]\" height=\"220\" width=\"280\" alt=\"Wzrost $record[gwiazda]\" /></a>
  17.  
  18. </div><!--end portfolio-item-->";
  19.  
  20.  
  21. }else{
  22. if ((mysql_num_rows($query)<=0){
  23. $liczenie = mysql_num_rows($query) or die(mysql_error());
  24. print "naliczono: $liczenie";
  25.  
  26. if($liczenie == 0){
  27. mysql_query("insert into do_dodania (nazwa) values('$szukaj')") or die(mysql_error());
  28. //alert(dodano);
  29. }
  30.  
  31.  
  32. }
  33.  
  34.  


Ten post edytował eviance 19.06.2012, 21:09:07
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: 13.06.2025 - 01:28