2011-07-31 8 views
0
<?php 
    $q=$_GET["q"]; 

    $con = mysql_connect('localhost', 'root', ''); 
    if (!$con) 
     { 
     die('Could not connect: ' . mysql_error()); 
     } 

mysql_select_db("world", $con); 

$sql="SELECT * FROM country WHERE Code = '".$q."'"; 

$result = mysql_query($sql); 

echo "<table border='1'> 
<tr> 

<th>Code</th> 
<th>Name</th> 
<th>Continent</th> 
<th>GNP</th> 
<th>GNPOld</th> 
</tr>"; 




while($row = mysql_fetch_array($result)) 
    { 

    echo "<tr>"; 
    echo "<td>" . $row['Code'] . "</td>"; 
    echo "<td>" . $row['Name'] . "</td>"; 
    echo "<td>" . $row['Continent'] . "</td>"; 
    echo "<td>" . $row['GNP'] . "</td>"; 
    echo "<td>" . $row['GNPOld'] . "</td>"; 
    echo "</tr>"; 
     } 
    echo "</table>"; 

    mysql_close($con); 
    ?> 

위는 PHP이며 아래는 동일한 HTML이며 mysql의 샘플 세계 데이터베이스에서 작업 중입니다.AJAX-PHP-MySQL 생성 테이블에 대한 동적 Div 태그 생성

<html> 
<head> 
<script type="text/javascript"> 
function showUser(str) 
{ 
if (str=="") 
    { 
    document.getElementById("txtHint").innerHTML=""; 
    return; 
    } 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for 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","moviedetail.php?q="+str,true); 
xmlhttp.send(); 
} 
</script> 
</head> 
<body> 
<table width="100%" border="0"> 
    <tr> 
    <td> 

<select name="Country" onChange="showUser(this.value)"> 
    <option>Select Name</option> 
    <?php 
    mysql_connect('localhost','root','') 
    or die ("could not connect DB"); 
    mysql_select_db('world') 
    or die ("could not connect database"); 
    $query="select code, name from country order by name asc" 
    or die ("query failed"); 
    $result=mysql_query($query); 
    while(list($code, $name)=mysql_fetch_row($result)) { 
     echo "<option value=\"".$code."\">".$name."</option>"; 
    echo "<div id=\"".$code."\">".$name."</div>"; 
    } 
    ?> 
</select> 
</td> 

    <td> 
    <div id="txtHint"><b>Country info will be listed here.</b></div> 

    </td> 
    </tr> 
</table> 
</body> 
</html> 

이것은 양식과 표시 테이블에서 같은 이름을 취합니다. 코드 내 다른 설정은 다음과 같습니다 : - HTML의

<?php 
for (;$i<$nrows;) 
{ 

    #add 1 so that numbers don't start with 0 

     echo"<tr>\n"; 
    for ($j=0;$j<10&&$i<=$nrows;$j++) 
    { 
      $n = $i; 
     $i=$i + 1; 
     $k=$n%30; 

     $row = mysqli_fetch_assoc($result); 
     extract($row); 
     echo "<td> 
     <table> 
     <tr> 
       <td>$n</td>\n 
     </tr>\n 
     <tr> 
      <td>$Name</td>\n 
     </tr>\n 
     <tr>\n 
      <td>$Continent</td>\n 
     </tr>\n 
     <tr>\n 
      <td>$Region</td>\n 
     </tr>\n 
     <tr>\n 
       <td>$SurfaceArea</td>\n 
     </tr>\n 
     <tr>\n 
      <td>$IndepYear</td>\n 
     </tr>\n 
      <tr>\n 
      <td>$GNP</td>\n 
     </tr>\n 
     <tr>\n 
      <td>$k</td>\n 
     </tr>\n 
    </table>\n 


     </td>"; 

     if ($k==0)break 2; 

    } 
    echo"</tr>\n"; 




} 
?>   

및 관련 부분은 내가 디자인과 몇 가지 문제가

<td><table border="1"> 
    <tr> 
    <td> 


     <?php 
include ("/connections/query.php"); 

$nrows = mysqli_num_rows($result); 
/* Display results in a table */ 
    echo "<table>\n 
    <tr>\n"; 
      $i=1; 
include ("/function/movietable.php"); 


    echo "</tr>\n 
    </table>\n"; 


?> 


    </td> 
    <td>&nbsp;</td> 
    </tr> 
</table></td> 

입니다. 첫 번째 두 세트의 코드와 마찬가지로 마우스 오버 효과를 사용하려면 위의 코드에서 비어있는 열의 마지막 두 세트 코드에 의해 생성 된 각 국가 테이블 (전체)에 대한 자세한 정보가 필요합니다. 페이지 이동에도 불구하고 항상 동일한 위치에 표시되도록하고 싶습니다.

그리고 더 간단한 문제가 하나 있습니다. 위에서 볼 수 있듯이 나는 30 개의 결과에서 질의를 중단했다. 같은 페이지에 더 많은 결과를 표시하려면 하단에 show-more 버튼을 추가하고 싶습니다.

저는 초보자입니다. 코드에서 실수를 지적하면 도움이 될 것입니다. 지금까지는 localhost에서 완벽하게 작동합니다. 뿐만 아니라 http://justinvincent.com/ezsql

그리고 JQuery와 :

+0

당신이 당신의 시스템에 jQuery 라이브러리를 통합의 가능성이 있을까? AJAX 쿼리를 수행하고 DOM을 수정하기위한 샘플 코드를 제공하는 것이 훨씬 쉽습니다. –

+0

나는 모든 종류의 제안에 개방적이다. 모든 프로토콜이나 언어에 대해 특별한 친화력을 갖지는 않습니다. 모든 것이 여전히 그리스어입니다. 나는 최종 결과에만 관심이있다. 제안 및 코드를 기다리고 있습니다. – JHA

답변

0

는 당신이 쉽게 데이터베이스를 조회 할 수 있도록 레즈 SQL의 사용을 제안 http://jquery.com/

을 그리고 여기에 어떻게 JQuery와 아약스 호출을 수행하는 방법을 보여주는 튜토리얼이다 : http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/

코드에서 볼 수 있듯이 $ _GET 변수를 사용하여 데이터베이스를 쿼리하려고합니다. 그리고 귀하의 검색 필드 이름이 'q'라고 가정합니다. 그리고 자바 스크립트를 사용하여 동적으로 결과를 표시합니다.

HTML :

<input type="text" id="q" name="q"/> 
<div id="your_div"></div><!--this is where your html table will be loaded dynamically as you type a value on the textbox--> 

JAVASCRIPT :

<script src="jquery.js"></script> 
<script> 
$(function(){ 
    $('#q').keyup(function(){ 
    var query = $.trim($(this).val()); 
    $('#your_div').load('phpfile.php', {'q' : query}); 
    }); 
}); 
</script> 

PHP :

//database configuration here 

$q = mysql_real_escape_string($_POST['q']); 

//html table here