Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

PDO - Ambil Assoc dalam loop 'sementara'

Jadi membuat asumsi bahwa satu-satunya elemen yang pernah terlihat adalah elemen terakhir karena apa yang Anda kembalikan sedang ditimpa setiap loop. Ada beberapa opsi untuk menyelesaikan ini. Yang paling sederhana adalah:

$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;

Namun ini tidak akan berfungsi dengan baik dengan html bootstrap Anda yang sebenarnya. Anda perlu memastikan bahwa jumlah kolomnya benar.

Anda akan membutuhkan sesuatu yang sedikit lebih intuitif

Menggunakan kode yang sebenarnya akan terlihat seperti

$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;

Sekarang dalam fungsi Anda, apa pun yang Anda dapat lakukan (ini bukan hal paling elegan yang pernah saya tulis tetapi harus menyelesaikan pekerjaan):

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat terhubung ke salah satu host MySQL yang ditentukan

  2. mysql ERROR 2002 (HY000):Tidak dapat terhubung ke server MySQL lokal melalui soket '/var/run/mysqld/mysqld.sock' (2)

  3. Cara Memeriksa Apakah Tabel Sudah Ada Sebelum Membuatnya di MySQL

  4. Dapatkan satu item dari string daftar di MySQL

  5. Perhitungan SQL untuk menemukan perbedaan waktu