Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Łączenie zmiennych?, Instrukcja mysql_fetch_assoc
eloZiomek
post 9.09.2009, 20:18:31
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 22.08.2009

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


Witam mam takie pytanie.
Mam taki skrypt:
  1. <?php
  2. require_once 'config.php';
  3. $wynik = mysql_query('select * from accounts');
  4. $wynikb = mysql_query('select * from players');
  5. while ($txt = mysql_fetch_assoc($wynik)){
  6. echo('-------------------------------'.'<br>'.'<b> '.'Numer konta: '.'</b>'.$txt['name'].'<b> '.'<br>'.'Haslo: '.'</b>'.$txt['password'].'<br>'.'-------------------------------'.'<br>');
  7. }
  8. ?>


I mam takie oto pytanie:
Posiadam 2 zmienne $wynik oraz $wynikb chiałbym połączyć w instrukcji mysql_fetch_assoc 2 tabele razem czyli ze zamiast tego
  1. while ($txt = mysql_fetch_assoc($wynik))

chialbym mieć cos takiego
  1. while ($txt = mysql_fetch_assoc($wynik, $wynikb))

Lecz oczywiscie nieda się tak zrobićbo wyskakuje error.
Czy mógłby ktos wytlumaczyć polaczyc te zmienne w jednej komendzie?
Go to the top of the page
+Quote Post
Void
post 9.09.2009, 20:36:39
Post #2





Grupa: Zarejestrowani
Postów: 112
Pomógł: 15
Dołączył: 2.02.2007

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


Musisz inaczej sformułować zapytanie. Te tabele są ze sobą w jakiejś relacji? pokaż ich strukturę.
Do samego łączenia tablicy służy funkcja array_merge, ale podejrzewam, że nie to chcesz osiągnąć.
Go to the top of the page
+Quote Post
Spawnm
post 9.09.2009, 20:40:05
Post #3





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




a nie lepiej w zapytaniu sql dać join niż kombinować?
Go to the top of the page
+Quote Post
eloZiomek
post 9.09.2009, 21:01:14
Post #4





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 22.08.2009

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


Struktura ich to tak:
W tabeli accounts znajduje się id gracza, numer konta ,haslo itd.. itd.. (Lecz ja wyciagam tylko Numer oraz haslo)
A znow w tabeli players Sa rozne dane dotyczace gracza np. jego nick (Wlasnie to chcem wyciagnac) czy ma bana

Dokladnie chodzi tu o tibie (Poprostu chcem się nauczyć na jej podstawie czegoś)

O laczenie chodzilo mi oto zeby wypisac jej dane z roznych pol bo jezeli dam to w 2 instrukcjach czyli np.
Podtym
  1. while ($txt = mysql_fetch_assoc($wynik)){
  2. echo('-------------------------------'.'<br>'.'<b> '.'Numer konta: '.'</b>'.$txt['name'].'<b> '.'<br>'.'Haslo: '.'</b>'.$txt['password'].'<br>'.'-------------------------------'.'<br>');
  3. }


Dam to

  1. while ($txt = mysql_fetch_assoc($wynikb)){
  2. echo('blabalbalbalblablab Costam costam wyciagam z tej tabeli');
  3. }


To bedzie chaotycznie wyswietlone czyli

  1. -------------------------------
  2. Nick:JasioNick:Bartek
  3. Numer konta: 1
  4. Haslo: 1
  5. -------------------------------
  6. -------------------------------
  7. Numer konta: 555666
  8. Haslo: ryba33355
  9. -------------------------------


Bo bedzie to w 2 roznych komendach.


Dodam ze w tych sprawach czyli laczenie php z mysql jestem jescze zielony ;P

Ten post edytował eloZiomek 9.09.2009, 21:02:48
Go to the top of the page
+Quote Post
Largo
post 10.09.2009, 09:18:52
Post #5





Grupa: Zarejestrowani
Postów: 203
Pomógł: 6
Dołączył: 11.09.2005

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


  1. <?php
  2. require_once 'config.php';
  3. $wynik = mysql_query('SELECT p.*, a.* FROM players p LEFT JOIN accounts a ON ( p.id_gracza=a.id_konta )');
  4.  
  5. while ($txt = mysql_fetch_assoc($wynik)){
  6. //Wylistuj wszystkie dane.
  7. }
  8. ?>


Oczywiście, id_gracza i id_konta muszą być relacją między tabelami, jeżeli jej nie masz to Ci zapytanie nie zadziała...

Pozdrawiam,
Largo

Ten post edytował Largo 10.09.2009, 09:19:11
Go to the top of the page
+Quote Post
pablo89pl
post 10.09.2009, 09:36:46
Post #6





Grupa: Zarejestrowani
Postów: 143
Pomógł: 19
Dołączył: 7.09.2009
Skąd: Rzeszów

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


no to dajesz zapytanie sql
  1. SELECT numer, haslo FROM accounts
  2. RIGHT JOIN players ON account_id = accounts.id
  3. WHERE warunek


@edit
Uprzedzony smile.gif

Ten post edytował pablo89pl 10.09.2009, 09:37:11
Go to the top of the page
+Quote Post
eloZiomek
post 10.09.2009, 13:38:51
Post #7





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 22.08.2009

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


Ok dziekuje skrypt powyzej dziala teraz mam jescze jedno pytanie ;P niewiem czy wykonalne.

Mam te dwie tabelki players i accounts. W tabeli accounts mam podpisany numer konta pod (name) ,lecz jest maly problem ,poneiwaz w tabeli players tez jest taka struktura z "name" odpowiadajaca wlasnie za nick! bo jezeli zrobilem tak:

  1. SELECT * FROM players p LEFT JOIN accounts a ON ( p.name=a.name );


To nie dziala a jezeli utworzylem nowa tabele z inna struktura o nazwie "nick" to wtedy to

  1. SELECT * FROM playzz p LEFT JOIN accounts a ON ( p.nick=a.name );


Dzialo bez problemow ;P

A zeby zmienic strukture tak aby "server" wczytywal strukture z nick musialbym ingerowac w caly program servera.

@Edit
Wlasnie moje oczy zauwazyly ze jednak niedziala to prawidlowo nawet z inna struktura bo wyswietlany jest tylko nick ,a reszta nie ;P
Bo nawet jak wpisze w phpmyadmin to zwraca nick a reszte NULL

Ten post edytował eloZiomek 10.09.2009, 13:55:13
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: 27.04.2024 - 14:14