0

これまでに受けた助けに、ここにいるすべての人に感謝したいと思います。次の質問はもう少し複雑です。

そのため、サーバーにデータベースを設定し、ウェブサイトにMYSQLデータベースにデータを送信するフォームがあります。

データを送信した後、データを検索し、可能な結果を​​表示し、それらの結果をハイパーリンクにして、ユーザーが探しているものについてもっと知ることができるようにするのに苦労しています。

私の「common.php」スクリプトは次のように設定されています。

<?php

$username = "XXX";
$password = "XXX";
$hostname = "XXX"; 
$database = "XXX";

mysql_connect($hostname, $username, $password, $database) or die

("Unable to connect to MySQL");

echo "Connected to MySQL<br>";

?>��

私の「insertdata.php」スクリプトは次のように設定されています。

<?php

require("common.php");

// connect with form

$name=$_POST['firstname'];
$lastname=$_POST['lastname'];
$city=$_POST['city'];
$state=$_POST['state'];
$zip=$_POST['zip'];
$phone=$_POST['phone'];
$email=$_POST['email'];
$various=$_POST['various'];
$other=$_POST['other'];


//  insert data into mysql

$query="INSERT INTO datatable
(
firstname, 
lastname, 
city, 
state, 
zip, 
phone,
email,
various, 
other, 
)
VALUES
(
'$firstname', 
'$lastname', 
'$city', 
'$state', 
'$zip', 
'$phone',
'$email', 
'$various', 
'$other', 
)";

$result=mysql_query($query);

// if successfull displays message "Data was successfully inserted into the database". 

if($result){
echo "Successful";
echo "<BR>";
echo "<a href='insert.php'>Back to main page</a>";
}

else {
echo "ERROR... data was not successfully insert into the database";
}

mysql_close();

?>��

そこから、挿入したデータを検索できるようにしたい。

私の問題は、検索が完了したときに、名と名前だけを2つの別々の列に表示したいということです。

そこから、3番目の別の列にリンクを表示し、各行に「レコードの詳細を表示」というリンクを表示します。

最後に、[レコードの詳細を表示]をクリックすると、正しいレコードが表示され、HTMLテーブルで再度フォーマットされます。

私が解決策に最も近いのは次のとおりです。

<?php
require("common.php");
$query="SELECT * FROM datatable";
$result=mysql_query($query);
$num=mysql_numrows($result);
$i=0;
while ($i < $num) {
$firstname=mysql_result($result,$i,"firstame");
$lastname=mysql_result($result,$i,"lastname");
$i++;}
?>

追加の質問として、PDOを使用すると、HTMLが変更されますか?

4

1 に答える 1

1

PDO に切り替えます。コードは次のようになります。

$conn = new PDO('mysql:host=db_host;dbname=test', $user, $pass);  
$sql = 'SELECT * FROM datatable';   
foreach ($conn->query($sql) as $row) {  
    print $row['firstname'] . "\t";  
    print $row['lastname'] . "\n";  

}  

編集: 詳細にリンクするには、2 番目の印刷の後に次の行を追加します。

print "<a href='somephp.php?idx=" . $row[ 'idx' ] . "'>link here</a>";

「somephp.php」という名前の別の php ファイルが必要になります。

$conn = new PDO('mysql:host=db_host;dbname=test', $user, $pass);  
$idx = $_REQUEST[ 'idx' ];

$sql = 'SELECT * FROM datatable where idx = ?';   
$stmt = $conn->prepare( $sql );
$stmt->bindParam( 1, $idx );
$stmt->execute();
$row = $stmt->fetch();

// now print all the values...
print $row['firstname'] . "\t";  
print $row['lastname'] . "\t";  
print $row['address'] . "\t";  

and so on...

注:これは、一意のキー「idx」を持つ各レコードに依存します。上記の値にはこれが表示されないため、このコードを使用する場合は、それを組み込む方法を見つける必要があります。

また、あなたは尋ねます-これはHTMLを変更し、これはテーブルのフォーマットを処理しますか-両方にいいえ。printステートメントを介してすべての HTML フォーマットを行います。すべての PHP は、ブラウザに行を出力します。

于 2013-03-13T01:55:39.633 に答える