Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> funkcje mysql kilka pytań, mysql_fetch_array & row
Apo
post
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
 
Start new topic
Odpowiedzi (1 - 8)
crash
post
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? (IMG:http://forum.php.pl/style_emoticons/default/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
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 (IMG:http://forum.php.pl/style_emoticons/default/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
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
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ć (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
SongoQ
post
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
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ć (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) ((((
Go to the top of the page
+Quote Post
SongoQ
post
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
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 12:32