sql >> Databáze >  >> RDS >> Mysql

PDO – Načtěte Assoc ve smyčce „zatímco“.

Vycházíme tedy z předpokladu, že jediný prvek, který jsme kdy viděli, je ten poslední, protože to, co vracíš, je přepsáno v každé smyčce. Existuje několik možností, jak to vyřešit. Nejjednodušší je:

$stmt = $this->conn->prepare('SELECT * FROM books');
$stmt->execute();

$text = "";
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
    $book_id = $row['id'];
    $book_title = $row['title'];
    $book_image = $row['image'];
    $book_amz = $row['amazon'];
    $book_desc = $row['description'];
    $book_rating = $row['rating'];
    $book_date = $row['date'];
    $book_author = $row['author'];
    $book_categorie = $row['categorie'];

    //String concatenation of text will 
    //give you one big string at the end to return.   
    $text .= "ID: '{$book_id}'";
}
return $text;

To však nebude dobře fungovat s vaším skutečným bootstrap html. Musíte se ujistit, že se sloupce sčítají správně.

Budete potřebovat něco trochu intuitivnějšího

Při použití skutečného kódu by to vypadalo něco jako

$stmt = $this->conn->prepare('SELECT * FROM books');
$stmt->execute();

$bookEcho = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
    $bookEcho[] = '<div class="col-md-3">
                   <div class="thumbnail">
                   <span>' . $book_title . '</span>
                   <img src="' . $book_image . '">
                   <div class="book-options">
                   <span>Bewertung</span><br/>
                   ' . $stars . '
                   <a href="books.php?id=' . $book_id . '" class="btn btn-read btn-block">Jetzt lesen</a>
                   </div>
                   </div>
                   </div>';
}
return $bookEcho;

Nyní ve své funkci, ať už je to cokoli, můžete udělat něco jako (toto není ta nejelegantnější věc, jakou jsem kdy napsal, ale měl byste to udělat):

$cols = 4;
$colCount = 1;
foreach ($bookEcho as $book){
    if($colCount == 0){//create a row}
    echo $book;
    $coolCount++;
    if($colCount == 0){end a row}
    if($colCount == 4){ $colCount = 0;}
}


  1. MySQL Řadit podle abecedy, ale ignorovat

  2. Jak seskupit spojité rozsahy pomocí MySQL

  3. Jak opravit „Konverze se nezdařila při převodu hodnoty na datový typ“ v SQL Server

  4. Seznam všech tabulek v postgresql information_schema