私のデータベースから画像を表示しようとしていますが、ブラウザ "item_Details.php?itemID = 1"2つのテーブルからデータ(画像とテキスト)を表示しようとしてエラーが発生しました
私はどこに行って見ましたか?私は間違ったことを見ましたが、何も見つかりませんでした。ここで
はテーブルです:
classified.php
:ここ'CREATE TABLE `images` (
`imagesID` int(5) NOT NULL AUTO_INCREMENT,
`itemID` int(5) NOT NULL,
`categoryID` int(5) NOT NULL,
`name` varchar(30) NOT NULL,
`size` int(11) NOT NULL,
`type` varchar(30) NOT NULL,
`pix` blob NOT NULL,
PRIMARY KEY (`imagesID`),
KEY `categoryID` (`categoryID`),
KEY `images_ibfk_1` (`itemID`),
CONSTRAINT `images_ibfk_1` FOREIGN KEY (`itemID`) REFERENCES `items` (`itemID`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `images_ibfk_2` FOREIGN KEY (`categoryID`) REFERENCES `categories`
(`categoryID`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1'
'CREATE TABLE `items` (
`itemID` int(5) NOT NULL AUTO_INCREMENT,
`categoryID` int(5) NOT NULL,
`itemName` char(25) NOT NULL,
`item_Description` varchar(255) DEFAULT NULL,
`price` char(10) DEFAULT NULL,
`contactName` varchar(50) DEFAULT NULL,
`phone` char(15) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL,
`submitDate` date NOT NULL,
`expireDate` date NOT NULL,
`website` char(25) DEFAULT NULL,
PRIMARY KEY (`itemID`) USING BTREE,
KEY `submitDate` (`submitDate`),
KEY `categoryID` (`categoryID`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1'
は、私が新しいウィンドウで特定の項目の詳細を表示するために使用するコードです
//Table 3 Electrical Items
$query3 = "SELECT * FROM {$table} WHERE categoryID='3'";
$result = mysql_query($query3);
//let's get the number of rows in our result so we can use it in a for loop
$numofrows = mysql_num_rows($result);
if($numofrows == 0){
echo "<p class=spect>Electrical Items:</p><p>No entries yet</p> \n";
}
else{
echo"<table id=mytable cellspacing=0 summary=Items from almacen database>
<caption>Electricals: </caption>";
echo "<TR bgcolor=\"lightblue\"><TH>Item Name</TH><TH>Price</TH><TH>Posted On</TH></TR>\n";
for($i = 0; $i < $numofrows; $i++) {
$row = mysql_fetch_array($result); //get a row from our result set
$id=$row['itemID'];
if($i % 2) { //this means if there is a remainder
echo "<TR bgcolor=\"#F5FAFA\">\n";
} else { //if there isn't a remainder we will do the else
echo "<TR bgcolor=\"#FFFFFF\">\n";
}
echo "<TD><a href='item_Details.php?itemID=<?php=$id; ?>' target = '_blank'>{$row['itemName']}</a></TD>
<TD>£".number_format ($row['price'],2)."</TD><TD>".$row['submitDate']."</TD>\n";
echo "</TR>\n";
} }
echo "</table><br/>";
item_details.php
$query1 = "SELECT * FROM images, items WHERE (images.itemID='$id' && items.itemID='$id')";
$result = mysql_query($query1);
while ($row = mysql_fetch_array ($result))
{
header("Content-type: ".$row['type']."");
//header("Content-Disposition: attachment; filename=".$row['name']."");
echo"<table>";
echo"<tr>";
echo"<td colspan='2'>
<h2 style='font-size: large;'> ".$row['itemName']."</h2></td>\n";
echo "</tr>";
echo "<tr>";
echo"<td><img border='0' align='right' src='{$row['pix']}' alt='item Image' style='margin-left: 5px;'></td>\n";
echo"<tr>";
echo"<td colspan='2'>
<div>
<b>Price: </b>£" .number_format ($row['price'],2). "<br />
<b>Posted On: </b>" .$row['submitDate']. "<br />\n
</div><br>
<b>Description: </b><p>" .$row['item_Description']. "<p><br />
<div ;='' style=clear: both;>
<h4 style='font-size: medium;'>Contact details:</h4>
<b>Name: </b>" .$row['contactName']. "<br />
<b>E-mail: </b>".$row['email']." <br /><br />
</div></td>\n";
echo"</tr>\n";
}
echo "</table><br/>";
私はclassified.php <a href=item_Details.php?itemID=$id>
で書く場合は、ブラウザがItem_details.phpページの "item_Details.php?ITEMID = 1" を表示します。
ここで、<a href='item_Details.php? itemID=<?php=$id;?>
と書き込むと、ブラウザはItem_details.phpページに何も表示しません。
いずれにしても写真は見えません。
ありがとうございました。 Hernan
*道*あまりにも多くのコードを、少なくとも私の好みのために。特定の問題を特定できますか?生成されたHTMLの関連部分を(PHPソースコードではなく)表示できますか? –
あまりにも多くのコードと詳細。要約は便利です。 –
私はPekka'sとMcWafflestixのコメントを一歩遠くにして言います:* Way *私の好みのためにあまりにも多くのスパゲッティ。あなたのプレゼンテーションからあなたのロジックを分離することを検討したいかもしれません。デバッグ*をもっと簡単にするでしょう。 – Stephen