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

Pobieranie wszystkich artykułów z bazy danych bloga do zmiennych

Aruba Cloud - Virtual Private Server VPS
0 głosów
396 wizyt
pytanie zadane 26 września 2023 w PHP przez Piotrek2713 Mądrala (5,520 p.)
<?php

    session_start();

    require_once 'connect.php';

    $connection = new mysqli($hostname, $db_user, $db_password, $db_name);

    if ($connection->connect_errno!=0)
    {
        echo "Błąd Połączenia";
    }
    else
    {
        if ($result = $connection->query("SELECT * FROM articles ORDER BY ID"))
        {
            $_SESSION['id'] = $row['ID'];
            $_SESSION['title'] = $row['Title'];
            $_SESSION['article'] = $row['content'];
            $result->free_result();
        }
    }
?>
<!DOCTYPE html>
<html lang="pl">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <header class="header-container">
      <div class="img-collage__left">
        <img src="img/books.jpg" />
      </div>
      <div class="img-collage__right-top">
        <img src="img/love" />
      </div>
      <div class="img-collage__right-down">
        <img src="img/to-learn.jpg" />
      </div>
      <div class="header-content">
        <h1 class="greeting-header">
          <span>Witaj na blogu</span>
          <span>La Palabra</span>
        </h1>
        <p class="greeting-paragraph">Znajdziesz tutaj wszystko na temat nauki języków obcych</p>
        <div class="day-of-week"></div>
        <div class="calendar-date"></div>
      </div>
    </header>
    <aside class="arrow-down"><img class="icon-arrow-down" src="icons/arrow-down.png" alt="" srcset=""></aside>
    <main class="main-content">
      <div class="article-card">
        <img src="img/to-learn.jpg" alt="" srcset="">
        <figcaption><a href="article1.php"><?php echo $_SESSION['title']; ?></a></figcaption>
      </div>
      <div class="article-card">
        <img src="img/to-learn.jpg" alt="" srcset="">
        <figcaption><a href="article1.php"><?php echo $_SESSION['title']; ?></a></figcaption>
      </div>
      <div class="article-card">
        <img src="img/to-learn.jpg" alt="" srcset="">
        <figcaption><a href="article1.php">Artykuł 1</a></figcaption>
      </div>
      <div class="article-card">
        <img src="img/to-learn.jpg" alt="" srcset="">
        <figcaption><a href="article1.php">Artykuł 1</a></figcaption>
      </div>
      <div class="article-card">
        <img src="img/to-learn.jpg" alt="" srcset="">
        <figcaption><a href="article1.php">Artykuł 1</a></figcaption>
      </div>
      <div class="article-card">
        <img src="img/to-learn.jpg" alt="" srcset="">
        <figcaption><a href="article1.php">Artykuł 1</a></figcaption>
      </div>
      <div class="article-card">
        <img src="img/to-learn.jpg" alt="" srcset="">
        <figcaption><a href="article1.php">Artykuł 1</a></figcaption>
      </div>
      <div class="article-card">
        <img src="img/to-learn.jpg" alt="" srcset="">
        <figcaption><a href="article1.php">Artykuł 1</a></figcaption>
      </div>
      <div class="article-card">
        <img src="img/to-learn.jpg" alt="" srcset="">
        <figcaption><a href="article1.php">Artykuł 1</a></figcaption>
      </div>
      <div class="article-card">
        <img src="img/to-learn.jpg" alt="" srcset="">
        <figcaption><a href="article1.php">Artykuł 1</a></figcaption>
      </div>
      <div class="article-card">
        <img src="img/to-learn.jpg" alt="" srcset="">
        <figcaption><a href="article1.php">Artykuł 1</a></figcaption>
      </div>
      <div class="article-card">
        <img src="img/to-learn.jpg" alt="" srcset="">
        <figcaption><a href="article1.php">Artykuł 1</a></figcaption>
      </div>
    </main>
    <script src="main.js"></script>
  </body>
</html>

Powyższy kod php ma działać w ten sposób, że zapisze do zmiennych sesyjnych dane z bazy. Rzecz w tym, że chcę aby były one niejako w tablicy, tak abym mógł wydobyć dowolne id, tytuł, zawartość artykułu, za pomocą tych samych zmiennych. Próbowałem pętlą foreach oraz while, ale poległem na pewnym etapie pisania kodu.

Jak zrobić taką tablicę lub cokolwiek podobnego, aby nie tworzyć za każdym razem nowych zmiennych dla nowych artykułów?

1 odpowiedź

0 głosów
odpowiedź 26 września 2023 przez Visual Studio Kot Bywalec (2,550 p.)
edycja 26 września 2023 przez Arkadiusz Waluk
<?php
session_start();
require_once 'connect.php';

$connection = new mysqli($hostname, $db_user, $db_password, $db_name);

if ($connection->connect_errno != 0) {
    echo "Błąd Połączenia";
} else {
    $articles = array(); // Tworzymy pustą tablicę na artykuły

    $result = $connection->query("SELECT * FROM articles ORDER BY ID");

    if ($result) {
        while ($row = $result->fetch_assoc()) {
            $articles[] = $row; // Dodajemy każdy artykuł do tablicy
        }
        $result->free_result();
    } else {
        echo "Błąd zapytania: " . $connection->error;
    }

    // Zamykamy połączenie z bazą danych
    $connection->close();
}
?>

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <header class="header-container">
        <!-- Tu znajduje się zawartość nagłówka -->
    </header>
    <aside class="arrow-down"><img class="icon-arrow-down" src="icons/arrow-down.png" alt="" srcset=""></aside>
    <main class="main-content">
        <?php
        // Wyświetlenie artykułów
        foreach ($articles as $article) {
            echo '<div class="article-card">';
            echo '<img src="img/to-learn.jpg" alt="" srcset="">';
            echo '<figcaption><a href="article1.php">' . $article['Title'] . '</a></figcaption>';
            echo '</div>';
        }
        ?>
    </main>
    <script src="main.js"></script>
</body>
</html>
komentarz 26 września 2023 przez Piotrek2713 Mądrala (5,520 p.)
A jak wyciągnąć z tej tablicy np tytuł (kolumna o nazwie 'Title) drugiego artykułu?
komentarz 26 września 2023 przez VBService Ekspert (256,600 p.)
$articles[0]['Title']; // 1
$articles[1]['Title']; // 2, itd.

 

komentarz 26 września 2023 przez VBService Ekspert (256,600 p.)
edycja 26 września 2023 przez VBService

wink

<?php
// ...

$articles = []; // Tworzymy pustą tablicę na artykuły
$result = $connection->query("SELECT * FROM articles ORDER BY ID");

if ($result) {
    $articles = $result->fetch_all(MYSQLI_ASSOC); // Pobieramy wszystkie wiersze jako asocjacyjną tablice
    $result->free_result();
} else {
    echo "Błąd zapytania: " . $connection->error;
}    

// ...
?>


<main class="main-content">
  <?php foreach ($articles as $article): ?>
  <div class="article-card">
    <img src="img/to-learn.jpg" alt="" srcset="">
    <figcaption><a href="article1.php"><?=$article['Title']?></a></figcaption>
  </div>
  <?php endforeach; ?>
</main>

 

A jak wyciągnąć z tej tablicy ... drugiego artykułu?

$articles[0]['Title']; // 1
$articles[1]['Title']; // 2, itd.

 

Podobne pytania

0 głosów
1 odpowiedź 365 wizyt
pytanie zadane 25 września 2023 w PHP przez Piotrek2713 Mądrala (5,520 p.)
0 głosów
1 odpowiedź 827 wizyt
pytanie zadane 7 grudnia 2020 w PHP przez Bakkit Dyskutant (7,600 p.)
0 głosów
1 odpowiedź 534 wizyt
pytanie zadane 24 marca 2020 w PHP przez Hardwell Dyskutant (8,980 p.)

93,324 zapytań

142,323 odpowiedzi

322,390 komentarzy

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...