Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Problem SQL -> PHP


Rekomendowane odpowiedzi

Opublikowano

Siemka, chce wybrać pewne dane z baz danych ale muszę to zrobić z dwóch oddzielnych tabel (gildie i gracze) a chcę zrobić takie o coś: Przeglądam profil gracza widzę o nim dane (jego nick, punkty, ranking, gildię, lider gildii, TAG itp..) Ale tu mam problem, nie wybiera mi konkretnych dan na temat użytkownika np, przeglądam profil użytkownika Zbyszek, widzę jego nick oraz punkty (to jest poprawne) niżej mam podane info o gildii (gildia, lider gildii oraz TAG gildi) i tutaj bierze mi złe dane iż lider (liderID) powinien być wyświetlany z tabeli jako liderID który = graczID tzn liderID = graczID (niżej dam ss'a) i ten liderID to jest graczID ale jeżeli .... Dobra nie ważne xD dam ss'a kodu jak i strony i sami zobaczycie:

 

xcq59f.jpg

 

h87tl8.jpg

 

Kolejny problem jest z tym że powtarzają się gildie oraz TAG a lider wgl się nie wyświetla (przed chwilą trochę zmieniłem dla tego).

Wiem że problem tkwi w SQL q tym w jaki sposób wywołuję dane z tabel.

 

KOD:

$usr = $_GET['graczID'];
$query  = "SELECT * FROM gracze where graczID= '$usr'";
$result = mysql_query($query) or die("Query failed");
while ($row = mysql_fetch_array($result)) {
echo 'Gracz: ' . $row["nick"] . '<br>Punkty: ' . $row["ranking"];
}
$usr = $_GET['graczID'];
$query  = "SELECT gracze.graczID, gracze.gildia, gildie.gildiaID, gildie.nazwa, gildie.tag FROM gildie, gracze WHERE gracze.gildia = gildie.gildiaID";
$result = mysql_query($query) or die("Query failed");
while ($row = mysql_fetch_array($result)) {
echo '<br>Gildia: ' . $row["nazwa"];
echo '<br>TAG: ' . $row["tag"];
}
$usr = $_GET['graczID'];
$query  = "SELECT gildie.liderID, gildie.gildiaID, gracze.graczID, gracze.nick FROM gracze, gildie WHERE gracze.graczID = gildie.gildiaID = gildie.liderID";
$result = mysql_query($query) or die("Query failed");
while ($row = mysql_fetch_array($result)) {
echo '<br>Lider: ' . $row["nick"];
 
}

 

 

BTW, wiem że nie robię także wszystkiego w jakby jednym qurery (nie wiem czemu ale YOLO) :D

 

 

Za pomoc jak zawsze lajki od mnie! :D :D

Opublikowano

1) Lepiej by było jakbyś skrypt skopiował do tagu

.

2) Gildie powtarzają się dlatego, że pobierasz i wyświetlasz informacje w pętli.

3) Z tym liderID ni uja Cię nie rozumiem. xD

Ostatnio brak czasu i utrudnienia...

...+ Java liżę xD

Opublikowano

1) Lepiej by było jakbyś skrypt skopiował do tagu

.

2) Gildie powtarzają się dlatego, że pobierasz i wyświetlasz informacje w pętli.

3) Z tym liderID ni uja Cię nie rozumiem. xD

 

Co do liderów to chcę aby na czyimś profilu tzn tak:

Profil użytkownika:

Nick:

Punkty:

Gildia: test

TAG:

Lider Gildi:

 

I chcę aby w "Lider gildi:" wyświetlał się lider gildii testowa.

A jak już wejdę na inny profil i ta osoba jest w innej gildii to żeby wyświetliło ta inna gildię jak i lider gildi do której należy ten gracz.

 

//EDIT

I o co chodzi z ta pętlą? 

Opublikowano

Skopiuj skrypt to Ci poprawię. Nie chce mi się o tej porze tłumaczyć, ani przepisywać ze screena.

Ostatnio brak czasu i utrudnienia...

...+ Java liżę xD

Opublikowano

<?php
$usr = $_GET['graczID'];
$query  = "SELECT * FROM gracze where graczID= '$usr'";
$result = mysql_query($query) or die("Query failed");
while ($row = mysql_fetch_array($result)) {
echo 'Gracz: ' . $row["nick"] . '<br>Punkty: ' . $row["ranking"];
}
$usr = $_GET['graczID'];
$query  = "SELECT gracze.gildiaID, gildie.gildiaID FROM gracze INNER JOIN gildie ON gracze.gildiaID=gildie.gildiaID";
$result = mysql_query($query) or die("Query failed");
while ($row = mysql_fetch_array($result)) {
echo '<br>Gildia: ' . $row["gildiaID"];
}
?>

SS jak teraz wygląda:

 

 

Tabela gildie: http://screenshu.com/static/uploads/temporary/cs/gk/vy/vs8scz.jpg

tabela gracze: http://screenshu.com/static/uploads/temporary/9s/wi/gd/0hm2c4.jpg (nicki są testowe :D)

 

Nie mam pojęcia co źle robię :( (btw kod juz miałeś w temacie wyżej podany).

Chce zrobić aby wyświtlało gildię do której należy graczID, tag tej gildi

Opublikowano

użyj JOIN do wybierania informacji z obu tabel będzie to łatwiejsze i praktyczne (wpisz w google JOIN mysql)//br nie zauważyłem ,że użyłeś

945be9e2a6c17df7med.jpg

Opublikowano

<?php

$usr = addslashes($_GET['graczID']);

$query = "SELECT * FROM gracze where graczID= '$usr'";

$result = mysql_query($query) or die("Query failed");

$urow = mysql_fetch_array($result);

echo 'Gracz: ' . $urow["nick"] . '<br>Punkty: ' . $urow["ranking"];

 

$query = "SELECT gildiaID, tag, liderID FROM gildie WHERE gildiaID=".$urow['gildiaID'];

$result = mysql_query($query) or die("Query failed");

$grow = mysql_fetch_array($result);

 

$query = "SELECT nick FROM gracze WHERE graczID=".$grow['liderID'];

$result = mysql_query($query) or die("Query failed");

$lrow = mysql_fetch_array($result);

 

echo '<br>Gildia: ' . $grow["gildiaID"].'<br />Tag: '.$grow['tag'].'<br />Lider:'.$lrow['nick'];

?>

Ostatnio brak czasu i utrudnienia...

...+ Java liżę xD

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...