• 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

Cloud VPS
+1 głos
194 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 (256,600 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 (90,110 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 255 wizyt
pytanie zadane 13 listopada 2021 w PHP przez IBIALYI Początkujący (250 p.)
+1 głos
1 odpowiedź 384 wizyt
0 głosów
1 odpowiedź 549 wizyt
pytanie zadane 23 lipca 2015 w PHP przez Mateusz Analityk Stary wyjadacz (13,740 p.)

93,460 zapytań

142,454 odpowiedzi

322,724 komentarzy

62,838 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

Kursy INF.02 i INF.03
...