2016-09-08 3 views
0

좋아요, 이제 $ _POST (으)로 변경 했으므로 이제 작동 중입니다. 이것이 바로 가기 방법인지 확실하지 않습니다. 적어도 지금은 효과가 있습니다. 당신이 나를 돕고 싶다면 코드 축소를 도울 수 있습니다. 감사합니다드롭 다운 메뉴에서 동일한 ID의 전체 행을 가져옵니다.

<?php 

$conn = new mysqli('localhost', 'root', 'jared17', 'hbadb') 
or die ('Cannot connect to db'); 

$result = $conn->query("select * from english"); 

echo "<html>"; 
echo "<body>"; 
echo "<form method = POST>"; 
echo "<select name = 'Students'>"; 

while ($row = $result->fetch_assoc()) { 

      $LRN = $row['LRN']; 
      $Last = $row['Last_Name']; 
      $First = $row['First_Name']; 
      $Lvl = $row['Level']; 
      $Q1 = $row['Q1']; 
      $Q2 = $row['Q2']; 
      $Q3 = $row['Q3']; 
      $Q4 = $row['Q4']; 
      $Final = $row['FINAL']; 
      echo '<option value="'.$LRN.'|'.$Last.', '.$First.'|'.$Lvl.'|'.$Q1.'|'.$Q2.'|'.$Q3.'|'.$Q4.'|'.  $Final.'">'.$Last.', '.$First.'</option>'; 

} 

echo "</select>"; 
echo "<input type='submit' name='submit' value='Show'>"; 
echo "</form>"; 

$show = $_POST['Students']; 
     $show_explode = explode('|', $show); 

    echo "<table><tr><th>LRN</th><th>Name</th><th>Level</th><th>Q1</th><th>Q2</th><th>Q3</th><th>Q4</th><th>Final</th></tr>"; 
    echo "<tr><td>". $show_explode[0]."</td><td>". $show_explode[1]."</td><td>". $show_explode[2]."</td><td>". $show_explode[3]."</td><td>". $show_explode[4]."</td><td>". $show_explode[5]."</td><td>". $show_explode[6]."</td><td>". $show_explode[7]."</td></tr>"; 

echo "</table>"; 




echo "</body>"; 
echo "</html>"; 
?> 
+1

할당하기 전에 변수를 설정 해제 할 필요는 없습니다. – Barmar

+0

* 원하는 드롭 다운 메뉴의 동일한 ID의 전체 행을 가져오고 싶습니다 * 요구 사항이나 질문? – devpro

+0

모든 정보를 '

답변

0

그런 세부적인 값을 넣지 마십시오. ID에 값을 입력하기 만하면됩니다.

echo "<select name = 'Students'>"; 
while ($row = $result->fetch_assoc()) { 
    $LRN = $row['LRN']; 
    $Last = $row['Last_Name']; 
    $First = $row['First_Name']; 
    echo '<option value="'.$LRN.'">'.$Last.', '.$First.'</option>'; 
} 
echo "</select>"; 

그런 다음 양식을 제출할 때 데이터베이스에서 찾아보십시오.

if (isset($_POST['Students'])) { 
    $lrn = $_POST['Students']; 
    $stmt = $conn->prepare("SELECT Last_Name, First_Name, Level, Q1, Q2, Q3, Q4, FINAL FROM english WHERE LRN = ?"); 
    $stmt->bind_param('i', $lrn); 
    $stmt->execute(); 
    $stmt->bind_result($last, $first, $level, $q1, $q2, $q3, $q4, $final); 
    $stmt->fetch(); 
    echo "<table><tr><th>LRN</th><th>Name</th><th>Level</th><th>Q1</th><th>Q2</th><th>Q3</th><th>Q4</th><th>Final</th></tr>"; 
    echo "<tr><td>$lrn</td><td>$last, $first</td><td>$level</td><td>$q1</td><td>$q2</td><td>$q3</td><td>$q4</td><td>$final</td></tr></table"; 
} 
+0

이 코드를 편집했습니다. – jaredpianist

+0

음, 매우 대단히 감사합니다 !! 그건 내 코드를 깔끔하게 만든다. 감사! 이제, 마지막으로 제출을 클릭했을 때 드롭 다운 메뉴를 유지하려면 어떻게해야합니까? 제출 버튼을 누르면 옵션 1로 돌아갑니다. 다시 한 번 감사드립니다! – jaredpianist

+0

'$ LRN == $ _POST [ 'Students']'를 테스트 한 다음,'selected' 속성을 옵션에 추가하십시오. – Barmar

0

당신은 배열로 최소 코드를 할 때 거래를 $의 foreach는를 사용할 수 있습니다. 여기에 코드가 간다

if(isset($_POST['submit'])){ 
// after post a form ur code goes here 
$show = $_POST['Students']; $show_explode = explode('|', $show); 
echo "<table><tr> 
<th>LRN</th> 
<th>Name</th> 
<th>Level</th> 
<th>Q1</th> 
<th>Q2</th> 
<th>Q3</th> 
<th>Q4</th> 
<th>Final</th> 
</tr>"; 
echo "<tr>"; 
foreach($show_explode as $value){ 
echo "<td>".$value."</td>"; 
} 
echo "</tr></table> 
}