ホームページ >バックエンド開発 >PHPチュートリアル >PHP について - AJAX と MySQL 間の対話

PHP について - AJAX と MySQL 間の対話

jacklove
jackloveオリジナル
2018-05-07 14:56:421920ブラウズ

AJAX はデータベースと対話的に通信するために使用できます。これは PHP にとって非常に重要です。この記事ではそれについて説明します。

AJAX データベースの例

次の例は、Web ページが AJAX を介してデータベースから情報を読み取る方法を示します。

このチュートリアルで使用される Websites テーブル SQL ファイル: Websites.sql。

ウェブサイトを選択してください: Google Taabao Rookie Tutorial Weibo Facebook

対応するオプションを選択すると、ユーザー情報がここに表示されます...



例の説明 - MySQL データベース

上記の例では、使用するデータベース テーブルは次のとおりです:

mysql> select * from websites;+----+--------------+---------------------------+-------+---------+| id | name         | url                       | alexa | country |+----+--------------+---------------------------+-------+---------+| 1  | Google       | https://www.google.cm/    | 1     | USA     || 2  | 淘宝       | https://www.taobao.com/   | 13    | CN      || 3  | 菜鸟教程 | http://www.runoob.com/    | 4689  | CN      || 4  | 微博       | http://weibo.com/         | 20    | CN      || 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |+----+--------------+---------------------------+-------+---------+5 rows in set (0.01 sec)

例の説明 - HTML ページ

ユーザーが上記のドロップダウン リストでユーザーを選択すると、「showSite()」という名前の関数が表示されます。実行されました。この関数は、「onchange」イベントによってトリガーされます:

test.html ファイル コード:

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <script>
function showSite(str){
    if (str=="")
    {
        document.getElementById("txtHint").innerHTML="";        return;    } 
    if (window.XMLHttpRequest)
    {
        // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
        xmlhttp=new XMLHttpRequest();    }
    else
    {
        // IE6, IE5 浏览器执行代码
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("txtHint").innerHTML=xmlhttp.responseText;        }
    }
    xmlhttp.open("GET","getsite_mysql.php?q="+str,true);    xmlhttp.send();}
</script></head><body>
 <form><select name="users" onchange="showSite(this.value)"><option value="">选择一个网站:</option><option value="1">Google</option><option value="2">淘宝</option><option value="3">菜鸟教程</option><option value="4">微博</option><option value="5">Facebook</option></select></form><br><div id="txtHint"><b>网站信息显示在这里……</b></div>
 </body></html>

showSite() 関数は次の手順を実行します:

Web サイトが選択されているかどうかを確認する

XMLHttpRequest オブジェクトを作成する

いつ作成されるサーバー応答の準備ができています 実行された関数

はサーバー上のファイルにリクエストを送信します

URL (ドロップダウンリストの内容を含む) の末尾に追加されたパラメーター (q) に注意してください

PHP ファイル

上記でJavaScriptを通じて呼び出されたサーバーページは、「getsite_mysql.php」というPHPファイル名になります。

"getsite_mysql.php" のソース コードは、MySQL データベースに対してクエリを実行し、結果を HTML テーブルに返します:

getsite_mysql.php ファイル コード:

<?php$q = isset($_GET["q"]) ? intval($_GET["q"]) : &#39;&#39;; 
if(empty($q)) {
    echo &#39;请选择一个网站&#39;;    exit;}
 $con = mysqli_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;123456&#39;);if (!$con){
    die(&#39;Could not connect: &#39; . mysqli_error($con));}// 选择数据库mysqli_select_db($con,"test");// 设置编码,防止中文乱码mysqli_set_charset($con, "utf8"); 
$sql="SELECT * FROM Websites WHERE id = &#39;".$q."&#39;"; 
$result = mysqli_query($con,$sql); 
echo "<table border=&#39;1&#39;>
<tr>
<th>ID</th>
<th>网站名</th>
<th>网站 URL</th>
<th>Alexa 排名</th>
<th>国家</th>
</tr>"; 
while($row = mysqli_fetch_array($result)){
    echo "<tr>";    echo "<td>" . $row[&#39;id&#39;] . "</td>";    echo "<td>" . $row[&#39;name&#39;] . "</td>";    echo "<td>" . $row[&#39;url&#39;] . "</td>";    echo "<td>" . $row[&#39;alexa&#39;] . "</td>";    echo "<td>" . $row[&#39;country&#39;] . "</td>";    echo "</tr>";}echo "</table>"; 
mysqli_close($con);?>

説明: クエリが JavaScript から PHP に送信されるときファイル , 次のことが起こります:

PHP は MySQL データベースへの接続を開きます

選択したユーザーを検索します

HTML テーブルを作成し、データを入力し、「txtHint」プレースホルダーを送り返します

この記事は PHP に関するものです。 AJAX と MySQL の相互作用について詳しく説明されています。詳細については、php 中国語 Web サイトを参照してください。

関連する推奨事項:

PHP について - AJAX と PHP の関係

PHP Simple XML に関する関連知識

PHP XML DOM に関する関連知識

以上がPHP について - AJAX と MySQL 間の対話の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。