Skocz do zawartości
  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

Kusiu

Złożone zapytanie SQL i tablica asocjacyjna

Promowane odpowiedzi

Kusiu    5

Witam. Robię właśnie system kreacji postaci do mojej strony. I natrafiłem na problem podczas zapytania do SQL. Problem jest następujący:

Mam w bazie danych 2 tabele: character_clothes i character_stats.

Tabela character_clothes ma następujące kolumny: haird, braid, shirtid, downid, underid.

Tabela character_stats: hp, dmg, lv, exp.

Obie tabele wypełnione są przykładowymi wartościami.

Kiedy moje zapytanie wygląda następująco wszystko działa bez zarzutu. 

$zapytanie = "SELECT hairid,braid,shirtid,underid,downid FROM character_clothes WHERE userid='$id'";
if ($rezultat = $polaczenie->query(     
		sprintf($zapytanie)))
		{
			$ile = $rezultat->num_rows;
			if($ile>0)
			{
                $row = $rezultat->fetch_assoc();
                $hair = $row['hairid'];
                $bra = $row['braid'];
                $shirt = $row['shirtid'];
                $under = $row['underid'];
                $down = $row['downid'];
			}
			else
			{... jakis tam błąd...}
		}

Natomiast nie wiem jak zrobić zapytane i tablice z dwiema kolumnami. Może ktoś mi powiedzieć czy takie zapytanie jest dobre?

$zapytanie = "SELECT 
    cc.hairid,
    cc.braid,
    cc.shirtid,
    cc.underid,
    cc.downid,
    cs.hp,
    cs.dmg,
    cs.lv,
    cs.exp
    FROM character_clothes AS cc, 
    character_stats AS cs 
    WHERE userid='$id' AND character_clothes.userid = character_stats.userid";

Poza tym prosiłbym też o napisanie mi jak ma wyglądać kod tablicy asocjacyjnej.

Czy może być coś takiego?

$row = $rezultat->fetch_assoc();
                $hair = $row['hairid'];
                $bra = $row['braid'];
                $shirt = $row['shirtid'];
                $under = $row['underid'];
                $down = $row['downid'];
                $hp = $row['hp'];
                $dmg = $row['dmg'];
                $lv = $row['lv'];
                $exp = $row['exp'];
                

Z góry dziękuje za pomoc.

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Kusiu    5

To nie zadziała w tym wypadku. ponieważ polecenie JOIN stosuje się w przypadku, gdy chcemy wybrać wszystkie rekordów z jednej tabeli i tylko pasujące drugiej. 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.


×