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>";
上面的代碼工作完全正常如果表中只有兩個條目。但是如果有兩個以上的條目,表格就不會顯示出來。它只顯示桌面。
我在做什麼錯?或者我錯過了什麼?
謝謝你,它的工作!你能解釋這種行爲嗎?爲什麼它與兩個工作而不是三個工作? –
我認爲在你的查詢中$ id的值只與表值的2行相匹配,這就是爲什麼它會給你兩行。如果你想檢查,打印你的查詢並檢查$ id的值,然後檢查你的表格。 – WisdmLabs
所以我的查詢看起來像這樣:'SELECT * FROM spieler WHERE mannschaft ='。'',新查詢看起來像'SELECT * FROM spieler WHERE mannschaft ='1''但表中的ID都是1 –