2016-03-11 47 views
1

兩個條目,我有以下MySQL表:PHP只顯示分貝

CREATE TABLE IF NOT EXISTS `spieler` (
`spielerID` int(11) NOT NULL, 
`name` varchar(50) COLLATE latin1_german1_ci NOT NULL, 
`vorname` varchar(50) COLLATE latin1_german1_ci NOT NULL, 
`jahrgang` varchar(10) COLLATE latin1_german1_ci NOT NULL, 
`bemerkung` varchar(300) COLLATE latin1_german1_ci NOT NULL, 
`mannschaft` int(11) DEFAULT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci; 

ALTER TABLE `spieler` 
ADD PRIMARY KEY (`spielerID`), 
ADD KEY `mannschaft` (`mannschaft`); 
ALTER TABLE `spieler` 
MODIFY `spielerID` int(11) NOT NULL AUTO_INCREMENT; 
ALTER TABLE `spieler` 
ADD CONSTRAINT `spieler_ibfk_1` FOREIGN KEY (`mannschaft`) REFERENCES `mannschaft` (`mannschaftID`); 

和PHP代碼來獲取數據從數據庫中:

$id = $_GET['id']; 
//echo "ID ist".$id; 
$sql = "SELECT * FROM spieler WHERE mannschaft = '.$id.'"; 
if (!$result = $db->query($sql)) { 
die("Fehler: ['.$db->error.']"); 
} 
echo "<table class='table table-striped'>"; 
echo "<tr><td><b>ID</b></td><td><b>Name</b></td><td><b>Vorname</b></td><td><b>Jahrgang</b></td><td><b>Bemerkung</b></td><td><b>Bearbeiten</b></td><td><b>Löschen</b></td></tr>"; 
while ($row = $result->fetch_assoc()) { 
    echo '<tr><td>'.$row['spielerID'] . '</td><td>'.$row['name'].'</td><td>'.$row['vorname'].'</td><td>'.$row['jahrgang'].'</td><td>'.$row['bemerkung'].'</td><td><a href="bearbeiten.php?spielerID='.$row['spielerID'].'"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a></td><td><a href="delete.php?spielerID='.$row['spielerID'].'"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a></td></tr>'; 
} 
echo "</table>"; 

上面的代碼工作完全正常如果表中只有兩個條目。但是如果有兩個以上的條目,表格就不會顯示出來。它只顯示桌面。

我在做什麼錯?或者我錯過了什麼?

回答

2

更改您的SQL查詢,如下所示。

$sql = "SELECT * FROM spieler WHERE mannschaft = '".$id."'"; 
+0

謝謝你,它的工作!你能解釋這種行爲嗎?爲什麼它與兩個工作而不是三個工作? –

+0

我認爲在你的查詢中$ id的值只與表值的2行相匹配,這就是爲什麼它會給你兩行。如果你想檢查,打印你的查詢並檢查$ id的值,然後檢查你的表格。 – WisdmLabs

+0

所以我的查詢看起來像這樣:'SELECT * FROM spieler WHERE mannschaft ='。'',新查詢看起來像'SELECT * FROM spieler WHERE mannschaft ='1''但表中的ID都是1 –