2010-08-16 4 views
1

나는 웹 사이트에서 데이터베이스의 임의 항목을 가져 와서 뷰어에 표시합니다. 이것은 내가 현재 사용하고있는 코드입니다 :동적으로 변하는 PHP 변수

$rows = "SELECT * FROM xxx"; 
$rows1 = mysql_query($rows); 
$rows2 = mysql_numrows($rows1); 
$id= rand(1, $rows2); 

이것은 해당 데이터베이스 항목을 선택하는 데 사용되는 ID 번호를 생성하고, 물론 항목을 표시 더 PHP가있다. 데이터베이스에서 새 항목을 생성하는 사용자에 대한 위해

, 그들은이 코드를 사용하여 페이지를 새로 고침 버튼을 클릭 :

<form> 
<input type=button value="Show me another one" onClick="window.location.reload()"> 
</form> 

이 잘 작동하지만 구글 애드 센스에 문제를 일으키는; 그것은 Adsense가 주어진 개별 사용자로부터 엄청난 수의 페이지 노출을 기록하도록합니다. Google에 대한 서신이 없지만 "인상 당"지불하는 광고주를 위해 시스템을 게임하고있는 것처럼 보입니다. 나는 이것이 자동으로 "노출 당"광고로 수익을 얻지 못하게하는 Google의 결과로 인해 걱정되며, 애드 센스 계정이 해지 될 수 있습니다.

내 질문은 페이지를 새로 고치지 않고 데이터베이스에서 다른 항목을 가져 오는 버튼을 만드는 방법입니다. 본질적으로, 사용자가 버튼을 클릭 한 후에 "$ id"변수를 변경하는 방법을 찾아야합니다.

+1

당신이해야 할 것은 AJAX "에 대한 구글이다 ". – deceze

+1

또한 데이터베이스에서 무작위 항목을 선택하는 방법을 배워야합니다. 길은 낭비입니다. http://stackoverflow.com/search?q=%5Bmysql%5D+select+random+row – deceze

+0

ok mysql을 변경하여 낭비가 적으므로 PHP로 처리 할 수있는 방법이 없습니까? 어때요 자바 스크립트? – John

답변

2

당신이하려는 일을 성취하기위한 몇 가지 방법이 있습니다.

HTML 및 PHP를 계속 사용하려면 페이지에 IFRAME을 넣고 재로드 버튼을 눌러 문제를 해결할 수 있습니다. 물론 IFRAME이 연 페이지에 Google 트래커를 삽입하지 마십시오. CSS를 약간 사용하여 IFRAME의 기본 스타일을 숨길 수 있으므로 기존 페이지를 돋보이게 할 수 없습니다.

그러나이 문제를 처리하는 가장 좋은 방법은 아닙니다.

deceze에서 제안한대로 Javascript를 통해 동적으로 새 정보를 가져 오려면 Ajax를 사용해야합니다. 가능한 한 고통스럽게 처리하기 위해 모든 성가신 크로스 브라우저 비트를 남기도록 Javascript 프레임 워크를 선택하는 것이 좋습니다. 당신은 당신은 JS 프레임 워크를 배우는 시간을 할애해야

<!-- new content will appear in the div down below --> 
<div id="content-target"> 
</div> 

<form> 
    <input type="button" id="refresher" /> 
</form> 

<script type="text/javascript"> 
    $('#refresher').click(function(){ 
    $('#content-target').load('generator.php'); 
    return false; 
    }); 
</script> 

다음 (HTML + 자바 스크립트) 할 수있는 jQuery를 함께 예를 들어

. 그것은 아주 좋은 투자입니다.

jQuery를 들어

: http://jquery.com/

프로토 타입 : http://www.prototypejs.org/

Mootools의 : http://mootools.net/

도장 : http://www.dojotoolkit.org/ (과잉 스크립트의 종류)