2012-03-06 9 views
0

ページが開いているときにmysqlからデータ(image_url、namesなど)を取得する必要があります。 私はoninit()イベントでこれを行うと考えています。しかし、これが最良のアプローチであるかどうかはわかりません。initでMysqlからデータを取得

私が今までに得たコードは、私が予想していたよりも時間がかかりすぎているので、この操作が行われている間に「読み込み中」のメッセージを追加する必要があります。私は正しい方法でいますか?事前

+0

あなたは今何をしているのでしょうか(スニペット)を投稿できますか? – Harti

+0

こんにちはハーティ。後でコードを追加できます(私は今は持っていません)。私がやっていることは:私は自分のHTMLからPHPファイルを呼び出します。そのファイルには私のクエリがあり、データベースからデータを返します。しかし、私は取得する必要がある情報がたくさんあります。約20アイテムと各アイテム4つのアイテムを言うことができます。 – Snapper

+0

もしあなたがしようとしていることを誤解しているかもしれませんが、AJAXを使用すると、ページの読み込み時間に影響しないはずです。もちろん、JavaScriptを使用する必要がある場合もあります。データを一度ロードするだけであれば、PHPで直接データを取得するのが最善の方法です。 – Ynhockey

答えて

1

オーケーで

おかげで、シナリオはここにある - と私はあなたが必要なものについてあまりよく分かりません。最初に、データをに一度読み込んでいます。コントローラを使用してデータモデルにアクセスするビューを使用してデータを提示します。すべてがページの読み込み時に処理され、静的です。

// Use simple PHP 

<?php 
$con = mysql_connect("localhost","peter","abc123"); 
if(!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("my_db", $con); 

$result = mysql_query("SELECT * FROM table"); 

while($row = mysql_fetch_array($result)) 
{ 
    echo $row['image']; 
    echo $row['names']; 
    // etc. 
} 
?> 

2番目の方が動的です.AJAXを使用してサーバーから引き続きデータを引き出します。 JavaScriptのsetIntervalを使用して定期的にデータを読み込むことができます。

// Load MySQL data every 15 seconds with jQuery 

$(function() { 
    setInterval(function() { 
     $.ajax({ 
     url: '/path/to/controller', 
     data: 'var1=hey&var2=bro', 
     dataType: 'html', 
     type: 'POST', 
     success: function(data) { 
      $('.div_of_your_choice').html(data); 
     }) 
     }); 
    },15000); 
}); 
+0

Jamieありがとう!実際にはデータを一度プルするだけですが、後でアクセスします。私はそれをoninitイベントで行うべきですか?別のもの...私は約10列50行を引っ張っていると言うことができます..どのように私はこのデータを格納し、後でそれにアクセスできますか?私はそれの配列の配列を作成することを考えていた。別の(高速)方法があると思いますか?再度、感謝します。 .Regards – Snapper

+0

PHPを使用している場合は、AJAX呼び出しを初期化する必要はありません。訪問者を不必要に待機させるのではなく、サーバーがすべてをロードするように、PHPを使用してMySQLに呼び出します。 – hohner

+1

詳細については、このチュートリアルをご覧ください。http://www.w3schools.com/php/php_mysql_select.asp – hohner

関連する問題