2016-07-29 22 views
0

Ich möchte zwei verschiedene mysql-Abfragen ausführen und Ergebnisse in zwei verschiedene HTML-Tabellen ausgeben. Ich öffne eine DB-Verbindung und erhalte zwei völlig unterschiedliche Ergebnismengen.mysql zwei verschiedene Abfragen in zwei verschiedene HTML-Tabellen

Ich habe eine Seite, die ich zwei verschiedene 's auf der Seite anzeigen möchte, jede Tabelle ist die Ergebnisse von verschiedenen Abfrage.

echo "<table class='table table-striped table-bordered table-hover table-condensed'>";     
echo "<thead><tr>"; 
echo "<th>Last</th><th>First</th><th>MDC</th><th>RADIO</th><th>EPCR</th><th>FH</th>"; 
echo "</tr></thead></table>"; 

while ($rowA = mysql_fetch_array($result)) { 
    echo "<tbody><tr>"; 
    echo "<td>".$rowA['LAST']."</td>"; 
    echo "<td>".$rowA['FIRST']."</td>"; 
    echo "<td>".$rowA['MDC']."</td>"; 
    echo "<td>".$rowA['RADIO']."</td>"; 
    echo "<td>".$rowA['ePCR']."</td>"; 
    echo "<td>".$rowA['Firehouse']."</td>"; 
} 
echo "</tr></tbody></table>";      

echo "<table class='table table-striped table-bordered table-condensed'>";     
echo "<thead><tr>"; 
echo "<th>USERNAME</th><th>CLASSNAME</th><th>DATE COMPLETED</th>"; 
echo "</tr></thead></table>"; 


while ($rowB = mysql_fetch_array($sql)) { 
    echo "<tbody><tr>"; 
    echo "<td>".$rowB['UserName']."</td>"; 
    echo "<td>".$rowB['ClassName']."</td>"; 
    echo "<td>".$rowB['DateCompleted']."</td>"; 
} 
echo "</tr></tbody></table>"; 

mysql_close($dbhandle); 

hier ist meine Frage:

$dbhandle = mysql_connect($hostname, $username, $password) 
or die("Unable to connect to MySQL"); 



$selected = mysql_select_db("tech_training",$dbhandle) 
or die("Could not select examples"); 


$result = mysql_query("SELECT LastName AS LAST, FirstName AS FIRST, 
MAX(IF(`ClassName`='MDC (Intro)', DATE_FORMAT(`DateCompleted`, '%m/%d/%Y'), NULL)) AS 'MDC', 
MAX(IF(`ClassName`='800 MHz Radio (Intro)', DATE_FORMAT(`DateCompleted`, '%m/%d/%Y'), NULL)) AS 'RADIO', 
MAX(IF(`ClassName`='ePCR (Intro)', DATE_FORMAT(`DateCompleted`, '%m/%d/%Y'), NULL)) AS 'ePCR', 
MAX(IF(`ClassName`='Firehouse (Incident)', DATE_FORMAT(`DateCompleted`, '%m/%d/%Y'), NULL)) AS 'Firehouse' 
FROM EnrollmentsTbl INNER JOIN UsersDataTbl ON EnrollmentsTbl.UserName = UsersDataTbl.UserName 
GROUP BY EnrollmentsTbl.UserName 
ORDER BY LastName 
LIMIT 20;"); 


//execute the second SQL query and return records 
$sql = mysql_query("SELECT UserName, ClassName, DateCompleted FROM EnrollmentsTbl LIMIT 10;"); 
+1

Und? Bitte bearbeiten Sie Ihren Beitrag und erklären Sie, was Ihr Problem ist, und stellen Sie eine Frage. –

+1

mysql_ * ist veraltet. Benutz es nicht mehr !! – Jeff

+0

Ich bekomme die Ergebnisse von beiden "mysql_fetch_array" Die erste ist korrekt formatiert, die zweite zeigt die Ergebnisse zusammen laufen keine Tabellenformatierung? – BarclayVision

Antwort

0

Irgendwo im oberen Bereich der Seite, oder vorzugsweise eine Erklärung enthalten verwenden, da nach PSR 1 Sie sollten nicht ausgegeben mit Funktionen/Klassen gemischt haben.

Verwenden Sie PDO und hier ist ein Beispiel.

$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'); 

$stmt = $db->query('SELECT * FROM table'); 
$rowA = $stmt->fetchAll(PDO::FETCH_ASSOC); 

$stmt = $db->query('SELECT * FROM table2'); 
$rowB = $stmt->fetchAll(PDO::FETCH_ASSOC); 

ANSWER

echo "<tbody>"; //this is outside 
while ($rowB = mysql_fetch_array($sql)) { 
    echo "<tr>"; 
    echo "<td>".$rowB['UserName']."</td>"; 
    echo "<td>".$rowB['ClassName']."</td>"; 
    echo "<td>".$rowB['DateCompleted']."</td>"; 
    echo "</tr>";// MOVE THIS INSIDE THE LOOP!!! 

} 
echo "</tbody></table>"; 

andere Schleife:

echo "<tbody>"; //outide 
while ($rowA = mysql_fetch_array($result)) { 
    echo "<tr>"; 
    echo "<td>".$rowA['LAST']."</td>"; 
    echo "<td>".$rowA['FIRST']."</td>"; 
    echo "<td>".$rowA['MDC']."</td>"; 
    echo "<td>".$rowA['RADIO']."</td>"; 
    echo "<td>".$rowA['ePCR']."</td>"; 
    echo "<td>".$rowA['Firehouse']."</td>"; 
    echo "</tr>"; //move end row here 
} 

echo "</tbody></table>";  

ERKLÄRUNG

//you have some array 
$result = []; 

echo "<table>" // you only want one of these 
foreach($results as $rows){ 
    echo "<tr>"; 
    echo "<td>data</td><td> mode data </td>"; 
    echo "</tr>"; close row each time 
} 
echo "</table>" //close it ONLY ONCE! 

Empfehlung

Korrekte und lesbare Formatierung würde Sie speichern. EX:

echo "<table class='table table-striped table-bordered table-hover table-condensed'> 
     <thead> 
      <tr> 
      <th>Last</th><th>First</th><th>MDC</th><th>RADIO</th><th>EPCR</th><th>FH</th></tr> 
     </thead> 
    </table>"; 

OR:

$table = <<<HTML 
<table class='table table-striped table-bordered table-hover table-condensed'> 
    <thead> 
     <tr> 
     <th>Last</th><th>First</th><th>MDC</th><th>RADIO</th><th>EPCR</th><th>FH</th></tr> 
    </thead> 
</table> 
HTML; 
echo $table; 
+2

Sie wissen jetzt, was die Frage ist? – Jeff

+0

danke, aber mein Problem scheint die Formatierung der Ergebnisse zu sein, die erste ist gut, die zweite hat keine ? – BarclayVision

+0

Ich bin mir nicht sicher, ob ich das verstehe? – BarclayVision

Verwandte Themen