2016-04-11 25 views
1

Lütfen bu sorunu nasıl ele alacağımı öneren bir kişi olabilir.Veri dizilerini php içinde tabloya döndürme

$query1 = "SELECT * FROM assessments WHERE pupil_id=288";

I (assessment_id sütuna tarafından işaretlendiği gibi) farklı zamanlarda 3 değerlendirmeleri yapılmış olan bir öğrenci için db gelen bir sayı satırlar var

Array ([assessment_id] => 47 [pupil_id] => 288 [assessblock_id] => 13 [Speaking] => P2ic [Listening] => P2ib... 


Array ([assessment_id] => 49 [pupil_id] => 288 [assessblock_id] => 14 [Speaking] => P9a [Listening] => P9a... 

Array ([assessment_id] => 171 [pupil_id] => 288 [assessblock_id] => 15 [Speaking] => H1b [Listening] => H1b... 
:

bu sorguyu kullanarak

Bunları böyle bir tabloya dönüştürmem gerekiyor. Her konu için verilen üç notu gösterir.

------------------------------ 
subject | assessment id | next assessment id| last assessment id | 
Speaking | P2ic   | P9a    | H1b    | 

Sorunu, veri satırlarımdan bu tabloya taşınmayla ilgili en iyi yolu nedir? Eğer sadece 1 satır varsa, o kadar kolay.

$query1 = "SELECT * FROM assessments WHERE pupil_id=288 AND assessblock_id='15'"; 
$result = $conn->query($query1); 
    if ($result->num_rows > 0) { 

     ?> 
     <table border="1" cellspacing="0" cellpadding="0"> 
      <tr><th>Subject</th><th>grade</th></tr> 
    <?php 
     while($row = $result->fetch_assoc()) { 
      foreach ($subjectListArray as $subject){ 
       $sub = str_replace(" ", "_", $subject); 
       echo '<tr><td>'.$subject.'</td><td>'.$row[$sub].'</tr>'; 
      } 
     }// endwhile 
     echo '</table>'; 
    }//endif 

Bu: Ben burada ben denedim kod bazı çünkü zaten </tr>

kullandık bu noktada (ikinci sonuçların set) üçüncü sütunda nasıl ekleneceğini göremiyorum konuların bir sütununu üretir ve ilk değerlendirme bloğu için bir saniye üretir.

Yukarıdaki sorguda assessblock_id = 15 var - bu yüzden sadece 1 satır aldım. Bunu üç satırı almak için kaldırırım - ama sonra tablom bozulur.

benim tabloya ikinci ve üçüncü değerlendirmeler almak nasıl

...

ben QY doğrudan ikinci ve üçüncü değerlendirmeler bloklar halinde nasıl ekleneceğini göremiyorum

+2

Ne denediniz? Yazdığınız kodu şu ana kadar gösterin. ATM, sizin için kodu yazmamızı istiyor gibi görünüyor, tabi ki bu site –

+0

için ne değildir? Neden P2ic 'bir değerlendirme id''? DB ilişkisini çıktı almıyorum .. – chris85

+0

Veritabanı dökümü ve şu ana kadar çalıştığınız php kodunu ekleyin. Sorununuzu daha iyi anlamamıza yardımcı olacaktır. –

cevap

0
<!DOCTYPE html> 
<html> 
<head> 
<style> 
table, th, td { 
    border: 1px solid black; 
} 
</style> 
</head> 
<body> 

<?php 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "myDB"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT * FROM assessments WHERE pupil_id=288"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    echo "<table><tr><th>subject</th><th>assessment id</th><th>next assessment id</th><th>last assessment id</th></tr>"; 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "<tr><td>" . $row['subject']. "</td><td>" . $row["assessment_id']"</td><td>" . $row['next_assessment_id']. "</td><td>" . $row['last_assessment_id']. "</td></tr>"; 
    } 
    echo "</table>"; 
} else { 
    echo "0 results"; 
} 

$conn->close(); 
?> 

</body> 
</html> 
+0

Bu nedir? Cevap, ne yaptığınızı ve neden yaptığınızı yazmalı. – chris85

+0

bu şekilde tabloyu –

+0

tablosunda gösterebilirsiniz. Sorum şu: Sorularım, veri satırlarımdan bu tablonun üzerine nasıl taşınacağımıza dair en iyi sorudur? Eğer ders sadece 1 satır varsa kolay. OP zaten çıktı verebilir; yeniden yapılandırmak için arıyor .. – chris85

0

yılında Sonunda buna farklı bir şekilde yaklaşmaya karar verdim. Soruyu açıklığa kavuşturmak için harcadım, açıkçası başarısız oldum. Sadece 1 sorguya bağlı kalmak istemiştim. Sonunda üç sütun almak için 3 sorgu vardı. Bu işe yaramış görünüyordu.