简体   繁体   中英

Displaying Database values in HTML

I am trying to get the values from table and display the values in the html code.

I am working in 3 separate php files.

This is the Article.php file, which contains the Article class:

public static function getInfobar() {
  $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD ); //connecting to the db, the values are stored in config.php
  $sql = "SELECT 'title', 'subtitle', 'additional' FROM infobar WHERE id=1";
  $st = $conn->prepare ( $sql );
  $st->execute();
  $list = array();
  while ( $row = $st->fetch() ) { //storing the info inside the array.
    $infob = new Article( $row );
    $list[] = $infob;
}

  $conn = null;
    return ( array ( "results2" => $list));
}

After I pull these values from database, I'm trying to display them in the HTML. Firstly I declare a function inside the front-end handler: index.php EDIT: the method is being called by using the switch.

switch ( $action )
{
default:
homepage();
}

 function homepage() {
    $results = array();
    $results2 = array();

$data = Article::getList( HOMEPAGE_NUM_ARTICLES );
$data2 = Article::getInfobar();

$results['articles'] = $data['results'];
$results['totalRows'] = $data['totalRows'];
$results['pageTitle'] = "TITLE";
$results2['info'] = $data2['results2'];
require( TEMPLATE_PATH . "/homepage.php" );
}

After, I am trying to display the values in the webpage like this:

<div class="row_item1">
  <?php foreach ( $results2['info'] as $infob ) { ?>
  <h1><?php echo htmlspecialchars($infob->title)?></h1>
  <p><?php echo htmlspecialchars($infob->subtitle)?></p>
  <p><?php echo htmlspecialchars($infob->additional)?></p>
  <?php } ?>
  <img src="" alt="">
</div>

But all I get is this:

结果

I am kinda stuck here, trying to figure out what's wrong with the code for quite awhile now. Please help me out on this one. Much appreciated.

Change your query

$sql = "SELECT 'title', 'subtitle', 'additional' FROM infobar WHERE id=1";

to

$sql = "SELECT title, subtitle, additional FROM infobar WHERE id=1";

For User Requirement.

I'm not sure. But, it can be like this way. Since, i don't know the flow, i can suggest you to try like this way once.

public static function getFullInfobar() {
    .
    .
    $sql = "SELECT title, subtitle, additional FROM infobar";
    .
    .
}

$results3 = array();
$data3 = Article::getFullInfobar();

$results3['info'] = $data3['results3'];

<?php foreach ( $results3['info'] as $infob ) { ?>
<div class="row_item1">
  <h1><?php echo htmlspecialchars($infob->title)?></h1>
  <p><?php echo htmlspecialchars($infob->subtitle)?></p>
  <p><?php echo htmlspecialchars($infob->additional)?></p>
  <img src="" alt="">
</div>
<?php } ?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM