Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> funkcje mysql kilka pytań, mysql_fetch_array & row
Apo
post 25.01.2006, 18:29:16
Post #1





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


Witam
Mam taki problem z wyszukiwarką na bloga. Zapytanie wygląda następująco:
  1. <?php
  2.  
  3. "SELECT id, tytul, id_newsa FROM newsy WHERE id_newsa='' AND tytul LIKE '%$fraza%' OR wpis LIKE '%$fraza%' OR wpis_long LIKE '%$fraza%'"
  4.  
  5. ?>

No i mam sobie tabele w bazie, a wnie pole id_newsa. Domyślnie jest puste a jeśli nie jest to przechowuje id newsa który został skomentowany. No i przy wyszukiwaniu chciałem zrobić tak żeby przeszukiwał tylko pola gdzie id_newsa=''.
Ale mi to nie chodzi. Druga sprawa jak sie pozbyć tych Or-ów.

No i pytanie. Jaka jest różnica między mysql_fech_row a mysql_fetch_array :?:
Go to the top of the page
+Quote Post
crash
post 25.01.2006, 18:54:30
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


  1. id_newsa IS NULL


Cytat(Apo)
Druga sprawa jak sie pozbyć tych Or-ów.

Usunąć je po prostu? tongue.gif

Cytat(Apo)
Jaka jest różnica między mysql_fech_row a mysql_fetch_array

mysql_fech_row mysql_fetch_array


--------------------
Go to the top of the page
+Quote Post
Apo
post 25.01.2006, 18:56:37
Post #3





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


Cytat
QUOTE (Apo)
Druga sprawa jak sie pozbyć tych Or-ów.

Usunąć je po prostu?


No nie moge tongue.gif
Chce przeszukać podane tam pola ale żeby nie było tych or tylko jakis nawias albo coś ale mi to nie wychodzi.

\\\EDIT
crash:
To co podałes z tym IS NULL też mi nie działa.
Podam tu moje informacje dotyczące tabeli:

  1. <?php
  2. +-----------+-------------+------+-----+------------+----------------+
  3. | Field  | Type | Null | Key | Default | Extra |
  4. +-----------+-------------+------+-----+------------+----------------+
  5. | id | int(11)  | | PRI | NULL  | auto_increment |
  6. | data | varchar(10) | YES |  | 1137416873 | |
  7. | tytul  | varchar(70) | YES |  | NULL  | |
  8. | wpis | blob | YES |  | NULL  | |
  9. | wpis_long | blob | YES |  | NULL  | |
  10. | id_newsa | int(11)  | YES |  | NULL  | |
  11. | ip | int(11)  | YES |  | NULL  | |
  12. +-----------+-------------+------+-----+------------+----------------+
  13. ?>


Ten post edytował Apo 25.01.2006, 19:11:17
Go to the top of the page
+Quote Post
track
post 26.01.2006, 11:35:56
Post #4





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 17.07.2003
Skąd: Łódź

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


OR jest wymagane, bo ustala alternatywe dla zapytania. Pobiera rekordy gdzie cos rowna sie xxx lub cos_innego = yyy. Dlatego OR jest wymagane jesli ma przeszukiwac kilka pol.
Go to the top of the page
+Quote Post
Apo
post 26.01.2006, 13:42:37
Post #5





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


A nie wiecie czemu mi to is null dalej nie chodzi :?
Może przez to że jest zła konstrukcja zapytania albo cos. Bardzo mi na tym zależy a nie moge sobie z tym poradzić sad.gif
Go to the top of the page
+Quote Post
SongoQ
post 26.01.2006, 14:06:07
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
A nie wiecie czemu mi to is null dalej nie chodzi :?


tabela
id | pole
1 NULL - NULL
2 '' - pusty string

  1. SELECT *
  2. FROM tabela
  3. WHERE pole IS NULL

zwraca rekord o id 2

  1. SELECT *
  2. FROM tabela
  3. WHERE pole = ''

zwraca rekord o id 1


--------------------
Go to the top of the page
+Quote Post
Apo
post 26.01.2006, 14:17:49
Post #7





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


No nadal nie chodzi, ake wiem co jest przyczyną. Gdy robie tak:
  1. <?php
  2. "SELECT id, tytul, id_newsa, wpis, wpis_long FROM newsy WHERE id_newsa='' "
  3. ?>

wszystko jest ok. Wyswietlane są tylko newsy.
Ale gdy zrobie tak:
  1. <?php
  2. "SELECT id, tytul, id_newsa, wpis, wpis_long FROM newsy WHERE id_newsa='' AND tytul LIKE '%$fraza%' OR wpis LIKE '%$fraza%' OR wpis_long LIKE '%$fraza%'"
  3. ?>

No to sa wyświetlane newsy i komentarze których ma nie być sad.gif((((
Go to the top of the page
+Quote Post
SongoQ
post 26.01.2006, 14:21:19
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
No to sa wyświetlane newsy i komentarze których ma nie być sad.gif((((

Przeciez w tym zapytaniu nie ma komentarzy.


--------------------
Go to the top of the page
+Quote Post
Apo
post 26.01.2006, 14:33:01
Post #9





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


SongoQ:
pole id - to pole id wpisu do bazy czyli np newsa bądź komentarza.
pola id_newsa - jest puste gdy wpis to news a jeśli jest to komentarz to te pole przechowuje id newsa. Czyli np:
News ma id = 10 i skomentujemy go to komentarz ma tam swoje unikalne id i ma jeszcze id_newsa = 10.
No i potem przy wywołaniu długiej treści newsa robie zapytanie żeby wyświetlić komentarze:
SELECT * FROM newsy WHERE id_newsa='.$id.'
itd
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: 29.06.2025 - 00:59