Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Zamienianie kolum
BuncolPL
post
Post #1





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


Nie bijcie bo dopiero się uczę php i mysql. Kombinuje sam ale nic mi nie wychodzi :/

Mam 3 tabele w bazie danych

--strona--//tabela
-adresid
-adres
----------

--fraza--//tabela
-frazaid
-slowo
----------

--pozycja--//tabela
-adresid
-frazaid
-pozycja
-data
----------

Kod wygląda tak:
Kod
   try
   {
      $pdo = new PDO('mysql:host=localhost;dbname=baza', 'user', 'pass);
      $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      
      $stmt = $pdo -> query('SELECT * FROM pozycja');
      echo '<ul>';
      foreach($stmt as $row)
      {
          echo '<li>Adres strony - '.$row['adresid'].' - '.$row['frazaid'].' - '.$row['miejsce'].'  - '.$row['data'].'</li>';
      }
      $stmt -> closeCursor();
      echo '</ul>';
   }
   catch(PDOException $e)
   {
      echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
   }


No i przy wyświetlaniu pojawia się problem, ponieważ tak gdzie jest adresid i frazaid pokazują mi się liczby ID z tabeli pozycja, a chciałbym żeby to było zamieniane na wartości, które są przypisane do ID w tableach stronach i fraza.

Kombinowałem różnie z JOIN, WHERE ale nic mi nie wychodzi :/

Ten post edytował BuncolPL 14.01.2009, 18:49:38


--------------------
:)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
magra
post
Post #2





Grupa: Zarejestrowani
Postów: 34
Pomógł: 8
Dołączył: 5.10.2004

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


  1. SELECT * FROM pozycja LEFT JOIN strona USING (adresid) LEFT JOIN fraza USING (frazaid)


  1. <?php
  2. foreach($stmt as $row)
  3.      {
  4.          echo '<li>Adres strony - '.$row['adres'].' - '.$row['slowo'].' - '.$row['miejsce'].'  - '.$row['data'].'</li>';
  5.      }
  6. ?>


--------------------
www.internetum.pl
Go to the top of the page
+Quote Post
BuncolPL
post
Post #3





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


magra wielkie dzięki. A ja męczyłem się już z tym 5 godzin :/

Jeszcze mam z tym problem, że mimo polskich znaków w bazie, takiego samego kodowania bazy i strony nie pojawiają się polskie znaki na stronie :/

Ten post edytował BuncolPL 14.01.2009, 19:33:17


--------------------
:)
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Wyszukiwarka: mysql kodowanie, było już setki razy...


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
BuncolPL
post
Post #5





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


A mam jeszcze jedno pytanie odnośnie tego (chodzi o tablę pozycja).

Nie wiem jak zbudować INSERT, żeby w wypadku gdy wcześniej został dodany rekord o takiej samej adresid, frazaid, data to nowy rekord nie będzie dopisany (lub ewentualnie zaktualizuje tylko kolumnę miejsce)


--------------------
:)
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
o takiej samej adresid, frazaid, data to nowy rekord nie będzie dopisany
Musisz zalozyc na te pola unikalny klucz (manual)

Cytat
(lub ewentualnie zaktualizuje tylko kolumnę miejsce

jak juz bedziesz mial ten klucz to
http://dev.mysql.com/doc/refman/5.1/en/ins...-duplicate.html


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
BuncolPL
post
Post #7





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


nospor wielkie dzięki za informacje.

Cytat
Musisz zalozyc na te pola unikalny klucz (manual)


Rozumię, że wszystkie kolumny adresid, frazaid, data z tabeli pozycja muszę mieć unikalny klucz. Chodzi o coś takiego ?

Kod
ALTER TABLE pozycje
ADD UNIQUE (adresid, frazaid, data);


Ten post edytował BuncolPL 15.01.2009, 15:33:28


--------------------
:)
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 Aktualny czas: 20.08.2025 - 19:17