[PHP][MySQL]MYSQL ŁĄCZENIE TABEL |
[PHP][MySQL]MYSQL ŁĄCZENIE TABEL |
23.03.2020, 13:09:28
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 9.07.2019 Ostrzeżenie: (10%) |
Witam, posiadam baze danych mysql i w niej 2 tabele klany oraz members. Chciałbym z tych dwóch tabeli wyciągnąć wszystkie dane poprzez SELECT ale zupełnie nie wiem jak to zrobić. Do czego mi to potrzebne?
A no chce zrobić skrypt który będzie pokazywał Nazwe klanu, Wlasciciela klanu, Zastępce klanu(wszystkich jacy są), użytkowników klanu, oraz punkty umiejętności klanu. Tutaj tabela klany A tutaj members Tutaj kolumna clan odwołuję się do id klanu w tabeli klany. Natomiast flag to flaga, 3 - Wlasciciel, 2 - Zastępca, 1 - Członek Ten post edytował Mientus0 23.03.2020, 13:10:04 |
|
|
23.03.2020, 13:29:07
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
-------------------- |
|
|
23.03.2020, 13:47:57
Post
#3
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 9.07.2019 Ostrzeżenie: (10%) |
Efekt jest słaby wyświetla wartość NULL gdzie powinny być dane z drugiej tabeli czyli clan_members.
SELECT id, clans.name as clan_name, clan_members.name as member_name, members, kills, level, wins, health, dmg, weapon, clan, flag FROM `clans` LEFT JOIN `clan_members` on `clans.id = clan_members.clan' |
|
|
23.03.2020, 13:57:19
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
Bo nie
on `clans.id = clan_members.clan' a on clans.id = clan_members.clan I nie KRZYCZ MYSQL ŁĄCZENIE TABEL Glusi nie jestesmy -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
23.03.2020, 14:20:26
Post
#5
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 9.07.2019 Ostrzeżenie: (10%) |
Przepraszam capslock.
Oki to działa tylko wpisy się dublują (nazwy klanu). |
|
|
23.03.2020, 14:31:26
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
Zgadza sie. Jak masz wielu czlonkow w klanie, to logiczne ze rekordy dla klanu sie zdubluja tyle razy ilu masz czlonkow. Zas dane kazdego czlonka masz juz swoje.
Teraz ladnie to w php obrabiasz i wyswietlasz sobie piknie bez duplikacji -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
24.03.2020, 16:22:00
Post
#7
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 9.07.2019 Ostrzeżenie: (10%) |
Czemu nie chce pobrać rekordów tzn nie wyświetla nic po wykonaniu result?
Kod <html>
<head> </head> <body> <style> body { background-image: url(cod_bo.jpg); background-repeat: no-repeat; background-position: center; background-attachment: fixed; color: white; font-family: Verdana; padding: 25px; font-size: 90%; } h1 { text-align: center; color: #339966; } h3 { text-align: center; width: 40%; margin-left: 30%; margin-right: 30%; border-bottom: 0.25px solid #33CC99; } p { text-align: center; color: #CCCC66; }</style> <center> <table bgcolor=""> <tr><td><h3>Nazwa_klanu</h3></td></tr> <tr><td><h3>Wlasciciel</h3></td></tr> <tr><td><h3>Zastepca</h3></td></tr> <tr><td><h3>Czlonkowie<h3></td></tr> </table> <?php // Create connection $conn = new mysqli("172.39.236.240", "manager69610", "password", "manager69610"); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT id, clans.name as clan_name, clan_members.name as member_name, members, kills, level, wins, health, dmg, weapon, clan, flag FROM `clans` LEFT JOIN `clan_members` on clans.id = clan_members.clan WHERE clans.id = 2"; $result = $conn->query($sql); if ($result) { $row = mysql_fetch_assoc($result, MYSQL_ASSOC); echo "<table><tr><td><p>" . $row["clan_name"]. "<p></td></tr></table>"; } if(!$result){ $conn->close(); exit; } ?> </body> </html> Ten post edytował Mientus0 24.03.2020, 16:23:05 |
|
|
24.03.2020, 16:28:25
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
sprawdziles co dokladnie zawiera $result? I jesli zawiera FALSE to sprawdziles blad jaki baza ci pluje?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
24.03.2020, 17:36:28
Post
#9
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 9.07.2019 Ostrzeżenie: (10%) |
Dodałem po ifie var_dump($result);
Oto wynik Kod object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(12) ["lengths"]=> NULL ["num_rows"]=> int(4) ["type"]=> int(0) } Warning: mysql_fetch_assoc() expects parameter 1 to be resource, object given in /web1/web1/home/socham/778723/index.php on line 62
|
|
|
24.03.2020, 17:41:09
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Na górze masz połączenie po rozszerzeniu mysqli zaraz potem przychodzisz sobie na mysql. masz przecież w dokumentacji całe przykłady.
-------------------- |
|
|
24.03.2020, 17:44:41
Post
#11
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 9.07.2019 Ostrzeżenie: (10%) |
Dzięki, poprawiłem i działa i chciałem żeby wyświetlało to bespośrednio pod Nazwa_Klanu, ale wyświetla się to tak:
|
|
|
24.03.2020, 18:09:20
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Skoro już otwierasz tabelę to trzymaj się wierszy i poprawnie zamykaj elementy. W kodzie masz dwa razy otwarcie p.
-------------------- |
|
|
24.03.2020, 18:11:45
Post
#13
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 9.07.2019 Ostrzeżenie: (10%) |
|
|
|
24.03.2020, 18:18:23
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Ale czego oczekujesz? Wrzuciłeś jedną tabelę, zamknąłeś ja. Wrzuciłeś kolejną. Logiczne że wyświetli się pod spodem.
-------------------- |
|
|
24.03.2020, 18:26:45
Post
#15
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 9.07.2019 Ostrzeżenie: (10%) |
to jak mam to zrobić. nie zamknie tabeli rozpoczętej przed znacznikiem <?PHP bo błąd wywali
|
|
|
24.03.2020, 18:30:19
Post
#16
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Zapewne chcesz wstawić pobrane rekordy jako wierze pierwszej tabeli. Zrób w pętli echo samego tr.
-------------------- |
|
|
24.03.2020, 18:43:36
Post
#17
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 9.07.2019 Ostrzeżenie: (10%) |
Super działa
Jeszcze jedno pytanie. Chce wybrać z tabeli wszystkich członków którzy mają flage = 2 jak to moge uczynić jakimś ifem się da ? Kod <?php
// Create connection $conn = new mysqli("172.39.236.240", "manager69610", "password", "manager69610"); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT id, jbgang.name as clan_name, jbgang_members.name as member_name, members, kills, level, wins, health, dmg, weapon, clan, flag FROM `jbgang` LEFT JOIN `jbgang_members` on jbgang.id = jbgang_members.clan WHERE jbgang.id = 4"; $result = $conn->query($sql); if ($result) { $row = mysqli_fetch_assoc($result); echo "<tr><td><br /><h1>" . $row["clan_name"]. "</h1></td></tr> <tr><td><h3>Wlasciciel gangu</h3><p>" . $row["member_name"]. "</p></td></tr> <tr><td><h3>Zastepca gangu</h3><p>" . $row["member_name"]. "</p></td></tr> <tr><td><h3>Czlonkowie gangu</h3><p>" . $row["member_name"]. "</p></td></tr>"; } $conn->close(); ?> |
|
|
24.03.2020, 18:47:35
Post
#18
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Ale na poziomie zapytania czy w kodzie? Jak zapytania to dodajesz kolejny warunek do where.
-------------------- |
|
|
24.03.2020, 18:49:28
Post
#19
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 9.07.2019 Ostrzeżenie: (10%) |
Wiesz w kodzie raczej bo muszę wypisać tak
Wlasciciel gangu: <- Flaga 3 Zastepcy gangu: <- Flaga 2 Czlonkowie gangu: <- Flaga 1 |
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 11:07 |