2017-03-22 14 views
0

私のコースではこの作業に本当に苦労しています。基本的には、単純なJavascript XML Http Requestを作成して、htmlページのデータベースから基本情報(country_name & country_capitalフィールド)を表示しようとしています。私はちょうどガイドからの明らかな段階と、私が何をしたのかを説明します。データベースからデータを取得して表示する(JavaScriptのXML HTTPリクエスト)

まず、 'database.html'ページにはjavascript XHRコードが含まれていますが、これはほとんど正しいと思いますが、エラーが発生する可能性があります。正直言って、私は何とかgetcountries.phpファイルを参照している以外のことは100%確信していません。

2番目のgetcountries.phpファイルは、私がPHPでコード化したことがないので、本当に苦労しています。私はそれがローカルサーバー(私はXAMPPを実行している)からデータをフェッチし、Webページに結果をエコーすると思われると思います。 データベース名= countries_db 表名= countries_table テーブルのフィールド:

のphpMyAdmin上のデータベースには、以下の詳細を主キーID番号、国名、首都、通貨、などの国だけのテーブルとシンプルです。 COUNTRY_ID(主キー) COUNTRY_NAME country_capital country_currency 例エントリ:2、アメリカ、ワシントンDC、ドル

を要約すると、私の質問はこれです:どのように私は私が正しく取得するために何をやったか編集することができますデータベースからのデータをページに表示する?

ありがとうございます。本当にありがとうございました。

<!-- Code on Page 1 (database.html) --> 
 

 
<p id="txtHint"></p> 
 
<p id="hint"></p> 
 

 
<script> 
 
function showUser(str) { 
 
\t if (str=="") { 
 
\t \t document.getElementById("txtHint").innerHTML=""; 
 
\t \t return; 
 
\t } 
 
\t if (window.XMLHttpRequest) { // detects whether the browser has XMLHttpRequest functionality 
 
\t // code for modern browsers 
 
\t \t xmlhttp=new XMLHttpRequest(); // creates an XMLHttpRequest object 
 
\t } else { // code for old browsers 
 
\t \t xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
 
\t } 
 
\t xmlhttp.onreadystatechange=function() { // onreadystatechange defines the function to be called when the readyState property changes 
 
\t \t if (this.readyState==4 && this.status==200) { 
 
\t \t \t document.getElementById("hint").innerHTML=this.responseText; 
 
\t \t } 
 
\t } 
 
\t xmlhttp.open("GET","getcountries.php?q="+str,true); 
 
\t xmlhttp.send(); 
 
} 
 
</script> 
 

 
<!-- Code on Page 2 (getcountries.php) --> 
 

 
<?php 
 
$q = intval($_GET['q']); 
 

 
$con = mysqli_connect('localhost','root',''); 
 
if (!$con) { 
 
\t die('Could not connect: ' .mysqli_error($con)); 
 
} 
 

 
mysqli_select-db($con,"countries_db"); 
 
$sql="SELECT country_name AND country_capital FROM records"; 
 
$result = mysqli_query($con,$sql); 
 

 
echo "Results:" 
 

 
error_reporting(E_ERROR | E_PARSE); 
 

 
\t \ 
 
while($row = mysqli_fetch_array($result)) { 
 
\t echo $row['country_name'] . "<br>"; 
 
\t echo $row['country_capital'] . "<br>"; 
 
} 
 
mysqli_close($con); 
 
?>

答えて

0

代わりにgetcountries.phpでmysqli_select-dbの利用mysqli_select_db

mysqli_select_db($con,"countries_db"); 
1

これはあなたのデータベースの構造であると仮定すると:

Database name = countries_db 
Table name = countries_table 
Table fields: 
    country_ID (primary key) 
    country_name 
    country_capital 
    country_currency 

問題はそれですね

mysqli_select-db($con,"countries_db"); 
$sql="SELECT country_name AND country_capital FROM records"; 

オルタナティブ
mysqli_select_db($con,"countries_db"); 
$sql="SELECT country_name, country_capital FROM countries_table"; 

:uがあなたのコードの変更で、いくつかの構文エラーにこのラインを持っているPDOを使用して:

代わりにgetcountries.php実装のこれを試してみてください

<?php 
$driver = 'mysql'; 
$database = "dbname=countries_db"; 
$dsn = "$driver:host=localhost;unix_socket=/home/cg/mysql/mysql.sock;$database"; 

$username = 'root'; 
$password = 'root'; 

try { 
    $conn = new PDO($dsn, $username, $password); 
    echo "<h2>Database countries_db Connected<h2>"; 
}catch(PDOException $e){ 
    echo "<h1>" . $e->getMessage() . "</h1>"; 
} 
$sql = 'SELECT country_name, country_capital FROM countries_table'; 
$stmt = $conn->prepare($sql); 
$stmt->execute(); 

echo "Results:"; 
echo "<table style='width:100%'>"; 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ 
    echo "<tr>"; 
    foreach($row as $value) 
    { 
    echo sprintf("<td>%s</td>", $value); 
    } 
    echo "</tr>"; 
} 
echo "</table>"; 
?> 
関連する問題