2017-04-22 128 views
1

PHPを使用してstaffIDとstaffNameのテーブルを表示するページを作成しています。クリック時にPHPがハイパーリンク文字列を変数に格納

<!DOCTYPE html> 

<html lang="en"> 

<head> 

<meta charset="utf-8"> 

<title>PHP Task 9</title> 

<link rel="stylesheet" href="styles.css"> 

</head> 

<body> 

<?php 

$sID= isset($_GET['staffID']) ? $_GET['staffID'] : ''; 

$conn = mysqli_connect('localhost', 'TWA', 'TWA_test', 'factory'); 

if (!$conn) { 

die("Connection failed: " . mysqli_connect_error()); 

} 

$sql = "SELECT s.staffID,s.staffName 
    FROM staff s"; 

$results = mysqli_query($conn, $sql) 

or die ('Problem with query' . mysqli_error($conn)); 

?> 

<h1> Staff Table </h1> 

<table> 
     <tr> 

     <th>Staff ID</th> 
    <th>Staff Name</th> 

    </tr> 

<?php while($row = mysqli_fetch_array($results)) { ?> 

    <tr> 

    <td> <a href = "task8.php"><?php echo $row[0] ?></a></td> 
    <td><?php echo $row[1] ?></td> 

    </tr> 

<?php } ?> 

<?php mysqli_close($conn); ?> 

</table> 

</body> 

</html> 

:ユーザーがstaffIDをクリックすると、それは、以下のtask9.phpファイル

などshippingDate、受注コード、としてそのstaffIDに関する追加詳細を別のファイルからのコードを使用して新しいテーブルが表示されますtask8.phpは、staffIDを入力するようにユーザーに求め、すべての詳細を表示します。staffIDが存在しない場合はエラーを表示します。このファイルは正常に動作し、すべてが正しく表示されます。以下task8.phpファイル:

<!DOCTYPE html> 

<html lang="en"> 

<head> 

<meta charset="utf-8"> 

<title>PHP Task 8</title> 

<link rel="stylesheet" href="styles.css"> 

</head> 

<body> 

<?php 

$conn = mysqli_connect('localhost', 'TWA', 'TWA_test', 'factory'); 

if (!$conn) { 

die("Connection failed: " . mysqli_connect_error()); 

} 

//obtain the staff ID input from the $_GET array 

$sID= isset($_GET['staffID']) ? $_GET['staffID'] : ''; 

$sql = "SELECT s.staffID, p.orderID, p.orderDate, p.shippingDate,s.staffName 
    FROM purchase p 
    INNER JOIN staff s 
    ON p.staffID = s.staffID 
    WHERE p.staffID = '$sID'"; 

$results = mysqli_query($conn, $sql) 

or die ('Problem with query' . mysqli_error($conn)); 

?> 

<h1> Order Details </h1> 

<?php $rows = mysqli_num_rows($results); ?> 
<?php if($rows <= 0){ ?> 
<p><?php echo "The staff ID entered is invalid"; ?></p> 
<?php } else { ?> 

<table> 
     <tr> 

     <th>Staff ID</th> 
    <th>Order ID</th> 
    <th>Order Date</th> 
    <th>Shipping Date</th> 
    <th>Staff Name</th> 

    </tr> 

<?php while ($row = mysqli_fetch_array($results)) { ?> 

    <tr> 

    <?php if($row[0] != ""): ?> 
    <td><?php echo $row[0]; ?></td> 
    <?php else: ?> 
    <td><?php echo "N/A"; ?></td> 
    <?php endif; ?> 

    <?php if($row[1] != ""): ?> 
    <td><?php echo $row[1]; ?></td> 
    <?php else: ?> 
    <td><?php echo "N/A"; ?></td> 
    <?php endif; ?> 

    <?php if($row[2] != ""): ?> 
    <td><?php echo $row[2]; ?></td> 
    <?php else: ?> 
    <td><?php echo "N/A"; ?></td> 
    <?php endif; ?> 

    <?php if($row[3] != ""): ?> 
    <td><?php echo $row[3]; ?></td> 
    <?php else: ?> 
    <td><?php echo "N/A"; ?></td> 
    <?php endif; ?> 

    <?php if($row[4] != ""): ?> 
    <td><?php echo $row[4]; ?></td> 
    <?php else: ?> 
    <td><?php echo "N/A"; ?></td> 
    <?php endif; ?> 

    </tr> 

<?php } ?> 

<?php } ?> 

<?php mysqli_close($conn); ?> 

</table> 

</body> 

</html> 

私が直面しています問題は、私はtask9.php上のテーブルからstaffIDをクリックすると、それだけでIDが入力されたスタッフが無効である」私はtask8.phpに含まれる誤差を示すことです"それはtask8.php

+0

印刷クエリ、および実行となり、この

function e($whatToConvert){ return htmlentities($whatToConvert); //or htmlspecialchars } 

ように私のPHPプロジェクトのすべての中で機能を維持すること毎回入力する退屈ですSQLクエリーを手動でチェックすると結果が表示されます –

答えて

0
あなたが正しくあなたのリンクを構築していなかった

のようにパラメータを渡す必要が知らない

<a href = "task8.php?staffID=<?php echo $row[0] ?>"><?php echo $row[0] ?></a> 

また、私は何とかhtmlentities()を持たないエコー出力が不快であると感じます。 はい、ので、私は通常ので、例えば、上記のコードは、

<a href = "task8.php?staffID=<?php e(echo $row[0]) ?>"><?php echo e($row[0]) ?></a> 
関連する問題