Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql+php]Pobieranie nazw kategorii
gandziorz
post
Post #1





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 20.12.2006

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


Witam,
Mam 2 tabele (`kategorie`, `newsy`).

W `kategorie` mam 3 rekordy:
1 Ogolne
2 Motoryzacja
3 Sport

A w `newsy` mam 1 rekord.
Przy tabelce "kategorie" jest 1,3.

Teraz jak powinno wygląda zapytanie które mi pobiera nazwy tych kategorii czyli jak mam 1,3 pobierze mi nazwe Ogolne, Sport.

Pomocy,
Z gory dziekuje
Go to the top of the page
+Quote Post
dadexix
post
Post #2





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


hm?
  1. SELECT * FROM `kategorie` WHERE `id`='1' OR `id`='3'


http://webmade.org/kursy-online/kurs-mysql.php pocztyaj
Go to the top of the page
+Quote Post
gandziorz
post
Post #3





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 20.12.2006

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


Taki bystry to ja też jestem.
Bawie sie sporo czasu w sql i php.

Chodzi mi ze to ma byc za pomoca funkcji.

  1. <?php
  2. function kategoria ($zmienna) {
  3. $query = "SELECT * FROM `kategorie` WHERE `id` = '$zmienna'";
  4. $result = mysql_query($query);
  5. $kategoria = mysql_fetch_array($result);
  6. return $kategoria['nazwa'];
  7. }
  8. ?>

Funkcja w/w działa pod warunkiem ze mamy tylko jedna kategorie wpisana, nie dziala gdy mamy wiecej oddzielonych przecinkiem (1,2,3 itp.).

Ten post edytował gandziorz 6.01.2008, 14:34:38
Go to the top of the page
+Quote Post
dadexix
post
Post #4





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


  1. <?php
  2. function kategoria ($zmienna) {
  3. $arr = explode(",", $zmienna);
  4. $start = 0;
  5. foreach($arr as $a){
  6. if($start ==0){
  7. $query = "SELECT * FROM `kategorie` WHERE `id` = '$a' ";
  8. }else{
  9. $query .= " OR `id`='$a' ";
  10. }
  11. $start++
  12. }
  13. $result = mysql_query($query);
  14. $kategoria = mysql_fetch_array($result);
  15. return $kategoria['nazwa'];
  16. }
  17. ?>


Powinno chodzić... innego pomysłu nie mam
Go to the top of the page
+Quote Post
gandziorz
post
Post #5





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 20.12.2006

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


Cytat(dadexix @ 6.01.2008, 14:48:56 ) *
  1. <?php
  2. function kategoria ($zmienna) {
  3. $arr = explode(",", $zmienna);
  4. $start = 0;
  5. foreach($arr as $a){
  6. if($start ==0){
  7. $query = "SELECT * FROM `kategorie` WHERE `id` = '$a' ";
  8. }else{
  9. $query .= " OR `id`='$a' ";
  10. }
  11. $start++
  12. }
  13. $result = mysql_query($query);
  14. $kategoria = mysql_fetch_array($result);
  15. return $kategoria['nazwa'];
  16. }
  17. ?>


Powinno chodzić... innego pomysłu nie mam

Nie pomogło ale już sobie sam poradziłem.

Taki kod mi wyszedł:
  1. <?php
  2. function kategoria($a) {
  3. $arr = explode(",", $a);
  4. $txt = "";
  5. foreach($arr as $b){
  6. $query = "SELECT * FROM `kategorie` WHERE `id` = '$b'";
  7. $result = mysql_query($query);
  8. $kategoria = mysql_fetch_array($result);
  9. $txt .= $kategoria['nazwa'].", ";
  10. }
  11. return $txt;
  12. }
  13. ?>
Go to the top of the page
+Quote Post
dadexix
post
Post #6





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


nie wiedziałem jak Ty chcesz to hm... wykorzystać...
Troche dużo zapytań wykonuje...;/

  1. <?php
  2. function kategoria ($zmienna) {
  3. $arr = explode(",", $zmienna);
  4. $start = 0;
  5. $txt = '';
  6. foreach($arr as $a){
  7. if($start ==0){
  8. $query = "SELECT * FROM `kategorie` WHERE `id` = '$a' ";
  9. }else{
  10. $query .= " OR `id`='$a' ";
  11. }
  12. $start++
  13. }
  14. $result = mysql_query($query);
  15. while($kategoria = mysql_fetch_array($result)){
  16. $txt .= $kategoria['nazwa'].", "; 
  17. }
  18. return $txt;
  19. }
  20. ?>
Go to the top of the page
+Quote Post
gandziorz
post
Post #7





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 20.12.2006

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


Cytat(dadexix @ 6.01.2008, 15:26:19 ) *
nie wiedziałem jak Ty chcesz to hm... wykorzystać...
Troche dużo zapytań wykonuje...;/

  1. <?php
  2. function kategoria ($zmienna) {
  3. $arr = explode(",", $zmienna);
  4. $start = 0;
  5. $txt = '';
  6. foreach($arr as $a){
  7. if($start ==0){
  8. $query = "SELECT * FROM `kategorie` WHERE `id` = '$a' ";
  9. }else{
  10. $query .= " OR `id`='$a' ";
  11. }
  12. $start++
  13. }
  14. $result = mysql_query($query);
  15. while($kategoria = mysql_fetch_array($result)){
  16. $txt .= $kategoria['nazwa'].", "; 
  17. }
  18. return $txt;
  19. }
  20. ?>

Niczym się nie różni pod względem ilości zapytań.
Go to the top of the page
+Quote Post
dadexix
post
Post #8





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


u mnie wykonuje jedno zapytanie z kilkma OD `id`[..] u Ciebie na każde id jedno zapytanie - jak masz 3 id to 3 zapytania itd.
Go to the top of the page
+Quote Post
zimi
post
Post #9





Grupa: Zarejestrowani
Postów: 233
Pomógł: 9
Dołączył: 3.06.2007

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


sugeruje przeczytać o IN
Kod
SELECT (...) WHERE id IN (1,3)


Ten post edytował zimi 6.01.2008, 18:01:13
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 - 21:43