Jak wrzucic php do wyswietlania danych w HTML

0

Witam. Obsłużyłem sobie bazę danych w php, ale chcę aby była ona w moich klasach w html-u. Nie wiem jak zrobić, aby php wrzucał moje rekordy do klas, aby ładnie wyglądały, oraz nie wiem czy dobrze napisałem dotychczasowe wyniki.

Baza:

<?php 
   $dbhost = 'localhost';
   $dbuser = 'xyz';
   $dbpass = '123';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   
 $sql = 'SELECT id_towaru, id_producenta, cena, nazwa, ilosc FROM towary';
   mysql_select_db('serwis');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   
   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
	   

      echo "id_towaru :{$row['id_towaru']} <br> ".
         "id_producenta : {$row['id_producenta']} <br> ".
		 "nazwa : {$row['nazwa']} <br> ".
         "cena : {$row['cena']} <br> ".
		 "ilosc: {$row['ilosc']} <br> ".
         "--------------------------------<br>";
   }
   
   echo "Fetched data successfully\n";

   
?>

Oraz kod HTML- który chciałbym umieśćić przykładowy rekord:

 <div class="col-xs-12">
            <h2 class="item_name">Nazwa</h2>
            <img class="item_thumb" src="zdj" alt="" width="250px" height="400px">
          </div>
        <div class="row">
            <div class="col-xs-12">
              <h2 class="item_price">cena</h2>  
            </div>
        </div
        <div class="row">
          <div class="col-xs-4">
            
          </div>
          <div class="col-xs-3">
            <input type="text" value="1" class="item_Quantity form-control" placeholder="ilosc">
          </div>
          <div class="col-xs-5">
            <input type="button" class="item_add btn btn-primary" value="Do koszyka">
          </div>   
        </div>
      </div>

Chciałbym, aby ktoś mnie nakierował, lub dał jakiś sensowny przykład.

0

Umieść cały html wewnątrz echo i zmienne w odpowiednich miejscach

1
<?php
    while($row = mysql_fetch_assoc($retval)) 
    {
      echo '<div class="col-xs-12">
            <h2 class="item_name">' . $row['nazwa'] . '</h2>
            <img class="item_thumb" src="zdj" alt="" width="250px" height="400px">
          </div>
        <div class="row">
            <div class="col-xs-12">
              <h2 class="item_price">' . $row['cena'] . '</h2>  
            </div>
        </div
        <div class="row">
          <div class="col-xs-4">
 
          </div>
          <div class="col-xs-3">
            <input type="text" value="1" class="item_Quantity form-control" placeholder="' . $row['ilosc'] . '">
          </div>
          <div class="col-xs-5">
            <input type="button" class="item_add btn btn-primary" value="Do koszyka">
          </div>   
        </div>
      </div>';

   }
 
   echo "Fetched data successfully\n";
?>
3

Przede wszystkim - nie używaj funkcji mysql_ - to starocie, usunięte w najnowszej wersji PHP, używaj wbudowanej biblioteki PDO.

Ogólnie aby nie robić syfu zasada jest taka - oddzielaj kod widoku od logiki aplikacji. Nie bawiąc się w MVC i system szablonów (jak masz zamiar robić coś większego to powinieneś) można to zrobić mniej więcej tak (zaznaczam, że nie zajmuję sie php na codzień, kod pisany z palca):

  1. Główny plik index.php - połączenie z bazą, zapytanie i przekształcenie wyników na tablicę, następnie wczytanie layoutu z osobnego pliku:
<?php

try {
    $dbConfig = [
        'host' => 'localhost',
        'dbname' => 'abc',
        'user' => 'xyz',
        'pass' => '123'
    ];

    $pdo = new PDO(
        'mysql:host=' . $dbConfig['host'] . ';dbname=' . $dbConfig['dbname'],
        $dbConfig['user'],
        $dbConfig['pass']
    );
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $pdo->query('SELECT id_towaru, id_producenta, cena, nazwa, ilosc FROM towary');
    $products = $stmt->fetchAll();
}
catch(PDOException $e) {
    echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
}

include('layout.phtml');
  1. Plik layoutu layout.phtml - przejście w pętli po tablicy produktów i wyświetlenie potrzebnych pól (użyłem dla przykładu zwykłych list, bo Twój html jakiś skopany jest):
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Example</title>
</head>
<body>
    <?php foreach($products as $product) { ?>
        <ul>
            <li>Nazwa: <?= $product['nazwa'] ?></li>
            <li>Cena: <?= $product['cena'] ?></li>
            <li>Ilość: <?= $product['ilosc'] ?></li>
        </ul>
    <?php } ?>
</body>
</html>

Jeszcze raz podkreślam - to rozwiązanie tylko dla bardzo prostej stronki, aczkolwiek o wiele lepsze, niż pakowanie wszystkiego w echo i mieszanie z resztą.

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