2016-07-21 10 views
1

私は自分のウェブサイトで作業しています。これは、さまざまなアイテムのショップです(これは私の最初のウェブサイトです)。私はちょうどウェブサイトのHTML/CSSの部分でやったが、私は一度に複数のページを変更することなく、より動的で簡単に編集できるようにしたい。私がこれを行うことができ、ウェブサイトの検索を実装しやすくする方法の1つは、データベース内のアイテムの名前と価格を持ち、PHPコードで名前と価格を取得し、アイテムのイメージの下に挿入することです。残念ながら、私はこれについてどうやって行くのか全く分かりません。私は似たような質問をしている他の人を探してみましたが、私が探しているものはまったく見当たりません。私は下にPHPコードを置いて、どこに情報を入れたいかを示すHTMLコードを書いておきます。MySQLデータベースからデータを取得してテキストに挿入する方法

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "testpw"; 
$dbname = "testdb"; 

$conn = new mysqli($servername, $username, $password, $dbname); 
if($conn->connect_error) { 
} 
$sql = "SELECT id, name, price FROM items"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
while($row = $result->fetch_assoc()) { 
echo " " .$row["id"]. " " .$row["name"]. " " .$row["price"]. "<br>"; 
} 
} else { 
echo "0 results"; 
} 
$conn->close(); 

?> 

これは、私が各項目の情報を取得するために使用するPHPコードです。しかし問題は、すべてのアイテムの情報を取得してすぐに表示することです。コードでアイテムのIDを確認し、それに関する統計情報を取得して表示するようにします。つまり、店内のアイテムを並べ替える場合は、IDを変更するだけで済みます。そのため、店やその中のアイテムを操作するのがはるかに簡単になります。以下は、アイテムのHTMLコードです。私は情報が行きたい場所を

<div id="images"> 
<figure> 
    <img class="gunimage" id="(THIS IS THE ID USED TO GET THE INFO)" src="idk.png" width="225" height="190" alt=""> 
    <figcaption><h3>Name: (INSERT NAME HERE USING PHP) </h3></figcaption> 
    <figcaption><h5>Price: (INSERT OTHER PRICE HERE)/month</h5></figcaption> 
    <figcaption><div id="tfbutton5"><form action="buy.html"><input type="submit" value="Rent" class="tfbutton5"></form></figcaption> 
</div> 
</figure> 
</div> 

は、私がラベルされた、と私はPHPコードはそれが何であるかの項目を知っているので、IDの事を持っていると思います。私は両方のコードを何度もテストしたので、両方のコードが別々に動作することは分かっています。申し訳ありませんが、私の質問が本当に長い場合、私はできるだけ具体的にしたいので、私の問題が何であるかはっきりしています。私のコードでは、私が記述している状況で適用できるように多くの変更が必要な場合は、私はすべての項目の情報を記載するものを作る方法を理解することができたので申し訳ありません。どんな助けもありがとう。ありがとうございました。あなたが
「connection.php」以上のわかりやすいという名前のファイルに入れることができますより多くの何かをしたい場合

+0

https://en.wikipedia.org/wiki/Where_(SQL) –

+0

アイテムの情報のみを取得するには、これを自分のコードに追加しますそのIDで設定されていますか? – Nathan

+0

'$ sql ="項目のWHERE ID = 'the_item_id' ";'アイテムの統計情報も必要とする場合、少なくとも1つのJOINが関与するのでクエリはより複雑ですが、これは依存しますあなたのデータベース構造上に – Gianluca

答えて

0

try { 
    $servername = 'localhost'; 
$username = 'root'; 
$password = 'testpw'; 
$dbname = 'testdb'; 
$db = new mysqli($servername, $username, $password, $dbname); 
} catch(Exception $e) { 
    echo $e->error_list; 
    exit; 
} 
function execute_query($con, $query, $variables) { 
$stmt = $con->prepare($query); 
$stmt->execute($variables); 
return $stmt; 
} 

あなたはしばらくconnection.phpでこれらの上部を分割することができ複数の関数がある場合は、function.phpファイル内の関数を使用します。

include ('connection.php'); 
$id_number = $_GET['id']; 
# !! NOTICE if grabbing | my understanding another page | 
// filter if grabbing from GLOBAL Variable $_GET 
$id = filter_var($id_number, FILTER_SANITIZE_NUMBER_INT); //take out 
if not grabbing from outside source. 
$con = $db; 
try { 
    $query = 'SELECT t.id as id , t.name as name, t.price as price 
    FROM items as t 
    WHERE t.id = :id'; 
$variables[':id'] = $id; 
    $items = execute_query($con, $query, $variables); 
}catch(mysqli_error_list $e) { 
    echo $e->getMessage(); 
} 
?> 
<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta http-equiv="X-UA-Compatible" content="ie=edge"> 
    <title>Document</title> 
</head> 
<body> 
<div id="images"><!-- i am guessing you want it within this div--> 
<?php if(isset($item)) { ?> 
<?php foreach ($items as $item) { ?> 
<figure> 
     <img class="gunimage" id="<?php echo $item['id']; ?>" 
src="idk.png" width="225" height="190" alt="<?php echo $item['name']; 
?>"> 
    <figcaption><h3>Name: <?php echo $item['name']; ?> </h3> 
</figcaption> 
    <figcaption><h5>Price: <?php echo $item['price']; ?> </h5> 
</figcaption> 
    <figcaption> 
    <!-- instead of a id tfbutton5 needs to be a class otherwise your 
    going to have an issue here when it loops, you will have an error--> 
    <div class="tfbutton5"><form action="buy.html"><input 
    type="submit" value="Rent" class="tfbutton5"></form> 
    <!--also, not sure why you have an Id and a class named exactly 
identical but it is bad practice. sorry do not do it. --> 
    </figcaption> 
    </div> 
    </figure> 
    <?php } ?> 
<?php } ?> 
</div> 
</body> 
</html> 

あなたがイメージソースを望んでいた場合は、データベースにそれを入力して、そのテーブルがsay..rowsのID、画像、アイテムIDを持つイメージ・テーブルにあなたのアイテムのテーブルを接続する必要があります。アイテムと画像の間のポイントとしてitem-idを使用してください。

関連する問題