2016-04-05 1 views
1

MySQLユーザーテーブルの内容を出力しようとしていますが、管理者がテーブル内の行を追加、編集、削除できるようにコードを設定しています。しかし、もう少し問題を調査した結果、htmlコードが値を厄介な形で出力していることが判明しました。これは、列の最初の単語を有効な値として数えているため、他の単語は無視されます。これを修正するにはどうすればいいですか?htmlコードの出力に有効な方法でデータを出力させるにはどうすればよいですか?

たとえば、Skullsというアルバムを出力しようとしているとします。&骨の出力はSkullsになります。

Admin_Album_Page.php

<!DOCTYPE HTML> 
<html> 
<head> 
<title>View Album Table</title> 
</head> 
<body> 

<?php 

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

session_start(); 
require_once 'ConnectorCode.php'; 

//mysql_query command is used to select data from Albums table 
$result = mysqli_query($conn, "SELECT * FROM tbl_Albums"); 

//Echos setting established onto the main table 
echo "<table border='1'>"; 
echo "<tr> <th>Album ID</th> <th>Album Name</th> <th>Number Of Tracks</th>   
<th> Genre </th> <th>Track ID</th> </tr>"; 

//Results are looped and then displayed in tables while($row =  mysqli_fetch_array($result)) { 
echo "<form action=Admin_Album_Page.php method=post>"; 
echo "<tr>"; 
echo "<td>" . "<input type=number name=albumid value=" . $row['Album_id'] . " </td>"; 
echo "<td>" . "<input type=text name=albumname value=" . $row['Album_Name'] . " </td>"; 
echo "<td>" . "<input type=number name=numberoftracks value=" . $row['Number_Of_Tracks'] . " </td>"; 
echo "<td>" . "<input type=text name=genre value=" . $row['Genre'] . " </td>" ; 
echo "<td>" . "<input type=number name=artistid value=" . $row['Artist_id'] . " </td>"; 
echo "<td>" . "<input type=hidden name=hidden value=" . $row['Album_id'] . " </td>"; 
echo "<td>" . "<input type=submit name=update value=Update" . " </td>"; 
echo "<td>" . "<input type=submit name=delete value=Delete" . " </td>"; 
echo "</form>"; 
} 

echo "<form action=Admin_Artist_Page.php method=post>"; 
echo "<tr>"; 
echo "<td></td>"; 
echo "<td><input type=text name=ualbumname></td>"; 
echo "<td><input type=text name=unumberoftracks></td>"; 
echo "<td><input type=text name=ugenre></td>"; 
echo "<td><input type=number name=uartistid></td>"; 
echo "<td>" . "<input type=submit name=add value=Add" ." </td>"; 
echo "</form>"; 
echo "</table>"; 

//Connection is closed 
mysqli_close($conn); 
?> 


<p><a href="Admin.php">Return to main page</a></p> 
</body> 
</html> 
+1

このスレッドをチェックする:http://stackoverflow.com/questions/9560490/mysql-テキストボックスの後にエコーすることはありません – daxro

答えて

2

問題は、あなたのHTMLレンダリングです。

あなたは、このようにコードを変更する必要があります。

echo "<form action=\"Admin_Album_Page.php\" method=\"post\">"; 
echo "<tr>"; 
echo "<td>" . "<input type=\"number\" name=\"albumid\" value=\"" . $row['Album_id'] . "\" </td>"; 
echo "<td>" . "<input type=\"text\" name=\"albumname\" value=\"" . $row['Album_Name'] . "\" </td>"; 
echo "<td>" . "<input type=\"number\" name=\"numberoftracks\" value=\"" . $row['Number_Of_Tracks'] . "\" </td>"; 
echo "<td>" . "<input type=\"text\" name=genre value=" . $row['Genre'] . " </td>" ; 
echo "<td>" . "<input type=\"number\" name=\"artistid\" value=\"" . $row['Artist_id'] . "\" </td>"; 
echo "<td>" . "<input type=\"hidden\" name=\"hidden\" value=\"" . $row['Album_id'] . "\" </td>"; 
echo "<td>" . "<input type=\"submit\" name=\"update\" value=\"Update" . "\" </td>"; 
echo "<td>" . "<input type=\"submit\" name=\"delete\" value=\"Delete" . "\" </td>"; 
echo "</form>" 

echo "<form action=\"Admin_Artist_Page.php\" method=\"post\">"; 
echo "<tr>"; 
echo "<td></td>"; 
echo "<td><input type=\"text\" name=\"ualbumname\"></td>"; 
echo "<td><input type=\"text\" name=\"unumberoftracks\"></td>"; 
echo "<td><input type=\"text\" name=\"ugenre\"></td>"; 
echo "<td><input type=\"number\" name=\"uartistid\"></td>"; 
echo "<td>" . "<input type=\"submit\" name=\"add\" value=\"Add" ."\" </td>"; 
echo "</form>"; 
echo "</table>"; 

は説明する:

<tag attribute="value"></tag> 

あなたは単に

ことによってそれを呼び出すことはできません。

HTMLは、次のように動作します

<tag attribute=value></tag> 

あなたが見せてくれたのは、"シンボルが文字列の一部であることを確認したいからです。\

+0

どうすればフィールドを使ってクエリを処理することができますか?次のようなものがあります: 'if(isset($ _ POST ['update'])){ $ UpdateQuery =" UPDATE tbl_Artist SET Artist_id = '$ _ POST [artistid]'、Artist_Name = '$ _ POST [artistname]' Where Artist_id = '$ _POST [hidden] '"; mysqli_query($ conn、$ UpdateQuery); }; ' –

+0

申し訳ありませんが、私はあなたが何を求めているのか理解していませんでした – rafaelcpalmeida

+0

私はフォーム内で宣言された名前を取得し、それらをクエリで使用しようとしています。しかし、私がしようとするたびに、プログラムの名前はupdate \またはartistid \が正しいと宣言し続けますか? –

関連する問題