Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

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

Cabalerio

[PHP][MySQL] Wczytywanie rekordów z bazy danych do tablicy

Rekomendowane odpowiedzi

Mam problem z wczytaniem całej linijki z bazy do tablicy. Mam zapytanie:

$postac = $_SESSION['prawid_uzyt'];
$lacz = lacz_bd();
$dane = $lacz -> query("select Sex, Kolor, Wiek, Narodowosc from konta where Gracz = 'postac'");

 

W bazie mam komórki naprzyklad

 

`GraczID` int(3) NOT NULL PRIMARY KEY auto_increment,
`Gracz` varchar(24) UNIQUE NOT NULL,
`Haslo` char(40) NOT NULL,
`Email` varchar(100) NOT NULL,
`Sex` int(1) NOT NULL default '0',
`Kolor` int(1) NOT NULL default '1',

 

I chciałbym, żeby po wywołaniu zmiennej $dane[1] pokazał się numerek płci, $dane[2] kolor skóry itd.

Niestety przy wywołaniu tablicy wyskakuje error: Cannot use object of type mysqli_result as array.

 

Wie ktoś jak to zrobić poprawnie ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Kolego napisz w jaki sposób odczytujesz rezultat z bazy. Bo w tym przyczyna, a tego nie podałeś. Spróbuj to:

$postac = $_SESSION['prawid_uzyt'];
$lacz = lacz_bd();
$dane = $lacz -> query("select Sex, Kolor, Wiek, Narodowosc from konta where Gracz = 'postac'");
$res = $dane -> fetchColumn();
ech $res;

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie jestem pewien ale w ten sposob ktory to opisujesz nie da się tego zrobić (aczkolwiek glowy nie daje i poczekajmy na kogos bardziej doswiadczonego ) musial bys miec tablice dwuwymiarowa. Jesli chcesz miec $dane[1]=nr plci to zgadzalo by sie tylko dla pierwszego gracza wczytujac cala tabele do tablicy $dane[4]=plec (ale dla pierwszego gracza) dla drugiego bylo by to juz $dane[10]. Ja to widze w ten sposob jesli wprowadzam autora w blad to nie umyslnie :P

albo uzyj mysql_fetch_assoc ;p

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Heh, problem w tym, że zrobiłem zwykłe:

echo $dane[]

Ale teraz już wiem, że nie tędy droga.

 

Za to przy:

fetchColumn()

 

Wyskakuje mi błąd Call to undefined method mysqli_result::fetchColumn()

 

Prawdę mówiąc nie wiem jak zrobić to poprawnie. Szukałem w necie ale w sumie nie wiem jak to nazwać. Myślałem, że albo ktoś pokaże gotowe rozwiązanie albo chociaż poda link z wyjaśnieniem jak zamienić obiekt na array bo w tym tkwi sęk. Dopiero od niedawna zacząłem robić coś w php, a wolę uczyć się na przykładach, bo jak widzę 800 stron teorii to aż mnie skręca :P.

 

@Luk - Ja chciałem zrobić panel wyświetlający dane gracza zalogowanego.

 

Zrobiłem wczytywanie w ten sposób:

while ($row = mysql_fetch_assoc($dane)) {
   echo $row["Sex"];
   echo $row["Kolor"];
   echo $row["Wiek"];
}

 

to wyskakuje mi, że: mysql_fetch_assoc() expects parameter 1 to be resource, object given in.

 

Cholera nie myślałem, że takie to pokręcone :P.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Chciałbym jeszcze dodać, że z bazą łączę się w taki sposób

function lacz_bd() {
  $wynik = new mysqli('localhost', '****', '****', 'samp');
  if (!$wynik) {
     throw new Exception('Połączenie z serwerem bazy danych nie powiodło się');
  } else {
     return $wynik;
  }
}

 

Ze względów bezpieczeństwa wolałbym by połączenie z bazą i wykonywanie zapytań było zrobione obiektowo, o ile to jest możliwe.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ze względów bezpieczeństwa wolałbym by połączenie z bazą i wykonywanie zapytań było zrobione obiektowo, o ile to jest możliwe.

nie ma związku

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Poradziłem sobie z problemem. Luk naprowadził mnie bym użył fetch_assoc. Teraz wyglada to tak:

 

<?php
$postac = $_SESSION['prawid_uzyt'];
$lacz = lacz_bd();
$wynik = $lacz -> query("select * from konta where Gracz = '$postac'");

$dane = $wynik->fetch_assoc();
echo $dane["Sex"];
echo $dane["Narodowosc"];
?>

 

W [] podaje nazwę komórki w bazie, która chcę wczytać.

Teraz biorę się za dalsze pisanie. Dzięki wszystkim za pomoc i mam nadzieje, że komuś przyda się ten temat. :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

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

×
×
  • Dodaj nową pozycję...