Metoda odczytu wiadomosci prywatnych

0

Witam.

Stworzyłem mechanizm wysyłania wiadomości na SQL. Teraz chciałbym móc je odczytywać z innego konta. Jestem początkujący i nie chciałbym bardzo komplikować sobie kodu.

Problem mój polega na tym że jeżeli do gracza jest 5 wiadomości to jakim sposobem zrobić tabelkę która będzie je wyświetlała ? Jak odczytać po ID z bazy danych ze do gracza X jest 5 wiadomości i jaką komenda wprowadzić te 5 do zmiennej. Gdybym mógł to odczytać to stworzyłbym pętle która generuje mi tabelkę dynamiczną i przypisuje do niej dane. Pętla robiła by się 5 razy lecz nie wiem jakby wczytywał dane do tej tabeli ponieważ każda wiadomosc posiada inne ID.

Dane jakie mam w bazie danych: id wiadomosci, id gracza X, id gracza Y, Temat, Tresc, data, czy wiadomosc przeczytana.

Nie chcę tu gotowego kodu tylko opisane prostymi krokami i ewentualnie podanie paru komend przydatnych przy tworzeniu wczytywania.

0

WHERE id gracza Y = $id_zalogowanego_gracza

1

Zakładając że Gracz_Y to odbiorca. Najprostsze rozwiązanie na skrzynkę odbiorczą to

SELECT * FROM wiadomości WHERE IdGraczaY = $IdGracza

i otrzymujesz tablicę wiadomości. http://www.homeandlearn.co.uk/php/php13p2.html
Pamiętaj że polecenia z * nie są specjalnie wydajne, podobno lepiej wypisać wszystkie potrzebne pola. Staraj się korzystać z PDO, a nie starych funkcji typu mysql_query(). Jeżeli chcesz by poprawnie wyświetlała się nazwa nadawcy dodaj

JOIN gracze ON Gracz_x = Gracz_id

, dodając dodatkowo pole gracze.name, w miejscu gdzie teraz jest gwiazdka. http://www.w3schools.com/sql/sql_join.asp

0

Źle opisałem mój problem. ja umiem odczytywać wszystkie dane z mojej bazy. Problem mój polega na tym że jak mam zebrać te dane do tablicy i wyrzucić je do tabelki w html. Gdy próbuje je wyrzucić je przez 'echo' to wyskakuje mi "array". Po prostu nie umiem przypisac zmiennej zawartości mojej tabeli z SQL

1

W podanym przeze mnie linku był taki przykład:

$SQL = "SELECT * FROM tb_address_book";
$result = mysql_query($SQL);

while ( $db_field = mysql_fetch_assoc($result) ) {

print $db_field['ID'] . "<BR>";
print $db_field['First_Name'] . "<BR>";
print $db_field['Surname'] . "<BR>";
print $db_field['Address'] . "<BR>";

}

EDIT:
Oczywiście jest to stary przykład z mysql_fetch_assoc(), zamiast tego korzystaj z mysqli_fetch_assoc() albo odpowiednika z PDO:

$getUsers = $DBH->prepare("SELECT * FROM users ORDER BY id ASC");
$users = $getUsers->fetchAll();
foreach ($users as $user) {
    echo $user['username'] . '<br />';
}
0

Przepraszam miałem błędy w swoim indexie bo mam bardzo rozbudowany i dlatego coś mi nie pykało. Znalazłem błąd i już działa tak jak napisałeś. Dzięki wielkie !

0

Pytanie moje brzmi teraz jak zrobić aby wiadomości wczytywane z mysql były w kolejności od najmłodszej do najstarszej. Ponieważ wiadomości wyświetlane w skrzynce odbiorczej i nadawczej są od najstarszej ;/

1

W zapytaniu: ORDER BY id DESC

0

Dzieki wielkie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1