• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

wyświetlanie konkretnego rekordu z bazy danych

Object Storage Arubacloud
+1 głos
144 wizyt
pytanie zadane 21 lipca 2020 w PHP przez Kacperhehe Bywalec (2,930 p.)

Mam taki skrypt ale chciałbym i wiem że fetch_assoc służy do wyświetlenia w tablicy. Aktualnie wyświetla mi się jeden wiersz aktualnego użytkownika tak jak chcę, Tylko chciałbym wyświetlić id, username, email etc wszystko oddzielnie aby dodać to do sesji. Abym mógł to w łatwy sposób wyświetlać.

 

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM username WHERE = '".$_SESSION['username']."'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["username"]. " " . $row["email"]. "<br>";
  }
} else {
  echo "0 results";
}
$conn->close();
?>

 

2 odpowiedzi

0 głosów
odpowiedź 22 lipca 2020 przez VBService Ekspert (252,740 p.)
wybrane 22 lipca 2020 przez Kacperhehe
 
Najlepsza

Moja propozycja jest następująca:

ten "kawałek" kodu, przenieś do osobnego pliku, o nazwie np.: connection.php

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
?>

reszta kodu, np.: index.php How can you check if a PHP session exists? ]

<?php
session_start();
$html = "";

if (isset($_COOKIE["PHPSESSID"])) {
    include_once('connection.php');

    $sql = "SELECT id AS 'id_user', username, email FROM users WHERE username = '".$_SESSION['username']."'";
    $result = $conn->query($sql);

    if ($result->num_rows == 0) {
        $html .= "Podana nazwa użytkownika jest nieprawidłowa lub"
                ." użytkownik o pdanej nazwie nie jest zapisany";
    } else {
        $row = $result->fetch_assoc();
        $_SESSION['id_user'] = $row['id_user'];
        $_SESSION['username'] = $row['username'];
        $_SESSION['email'] = $row['email'];

        // Można też jak poniżej
        //foreach ($row as $name => $value) {
        //    $_SESSION[$name] = $value;
        //}
        unset($row);
    }

    $result->free_result();
    $conn->close();
}

$html .= "id: ".$_SESSION['id_user']." - Name: ".$_SESSION['username']." ".$_SESSION['email']."<br>";
?>
<!DOCTYPE html>
<html lang="pl">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <pre>
<?php echo $html; ?>
        </pre>
    </body>
</html>

do usuwania sesji, np.: logout.php [ link ]

<?php

   ...  jakiś kod php

    session_unset();
    session_destroy();
    session_write_close();
    setcookie(session_name(),'',0,'/');
?>
<!DOCTYPE html>
<html lang="pl">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <pre>
           Zostałe(a)ś wylogowan(a)y.
        </pre>
    </body>
</html>

 

0 głosów
odpowiedź 21 lipca 2020 przez SzkolnyAdmin Szeryf (86,360 p.)
W zapytaniu masz błąd! Nie WHERE = '".$_SESSION['username']."  lecz WHERE username = '".$_SESSION['username']."

Metoda fetch_assoc wcale nie służy tylko do wyświetlania w tablicy, np.  w twoim kodzie wyświetlasz dane w jednym wierszu, a nie wierszu tablicy. Instrukcję echo możesz rozbić na kilka (wewnątrz jednego obrotu pętli while. Jak chcesz wykorzystać dane w sesji to po prostu przypisz je do zmiennych sesyjnych.

Podobne pytania

+1 głos
3 odpowiedzi 141 wizyt
pytanie zadane 13 listopada 2021 w PHP przez IBIALYI Początkujący (250 p.)
+1 głos
1 odpowiedź 186 wizyt
0 głosów
1 odpowiedź 339 wizyt
pytanie zadane 23 lipca 2015 w PHP przez Mateusz Analityk Stary wyjadacz (13,710 p.)

92,551 zapytań

141,393 odpowiedzi

319,524 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...