2012-03-31 2 views
0

안녕하세요. 내 테이블의 모든 내용을 표시하는 페이지가 있습니다. 테이블의 각 행을 따라 가면서 나는 또한 체크 박스가있는 컬럼을 가지고있다. 사용자가 확인란을 선택하고 제출 버튼을 눌러 하나 이상의 행을 선택하면 다음 페이지 (buy.php)의 테이블에 해당 행 만 표시됩니다. 기본적으로 선택된 행당 선택 진술임을 알고 있습니다. 그러나 나는 이것에 접근하는 방법을 모른다. 아무도 도와 줄 수 있니? 감사합니다체크 박스 (PHP)를 사용하여 mysql 테이블에서 행을 선택하는 방법

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <title>Shopping</title> 
</head> 
<body> 
<form action='buy.php' method='post'> 
<input type='submit' value='Submit' /> 
</form> 
<h1>Buy</h1> 
<?php // Script 12.7 - sopping.php 

$db = mysql_connect('localhost', '#####', '#####'); 
mysql_select_db('shopping', $db); 

$query = 'SELECT * FROM Items'; 

if ($r = mysql_query($query, $db)) { 
    print "<form> 
    <table>"; 
    while ($row = mysql_fetch_array($r)) { 
     print 
     "<tr> 
     <td>{$row['ID']}</td> 
     <td>{$row['Name']}</td> 
     <td>{$row['Cost']}</td> 
     <td><input type='checkbox' name='buy[{$row['ID']}] value='buy' /></td> 
     </tr>"; 
    } 
    print "</table> 
    </form>"; 

} else { 
    print '<p style="color: blue">Error!</p>'; 
} 

mysql_close($db); // Close the connection. 

?> 
</body> 
</html> 

편집 : 아래의 제안을 시도하고 나는 테이블을하지 않았다. 페이지 제목 제목 :

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <title>Confirmation</title> 
</head> 
<body> 

<h1>Order Details</h1> 
<?php // Script 12.7 - buy.php 

$db = mysql_connect('localhost', '#####', '#####'); 
mysql_select_db('shopping', $db); 

foreach($_POST['buy'] as $item) { 

$query = 'SELECT * FROM Items WHERE ID = $item'; 

if ($r = mysql_query($query, $db)) { 
    print "<table>"; 
    while ($row = mysql_fetch_array($r)) { 
     print 
     "<tr> 
     <td>{$row['ID']}</td> 
     <td>{$row['Name']}</td> 
     <td>{$row['Cost']}</td> 
     </tr>"; 
    } 
    print "</table>"; 

} else { 
    print '<p style="color: blue">Error!</p>'; 
} 
} 

mysql_close($db); 

?> 
</body> 
</html> 

답변

6

동적 SQL 쿼리를 만들어야합니다.

1) 나는 당신이 구매 모든 옵션을 통해 다음과 같은

<input type='checkbox' name='buy[]' value='{$row['ID']}' /> 

2) 루프에 체크 박스를 변경 제안

<?php 
    foreach($_POST['buy'] as $item) { 
    // Append the ID (in the $item variable) to the SQL query, using WHERE `ID` = $item OR `ID` = $item and so on 
    } 
?> 

UPDATE :

<?php // Script 12.7 - buy.php 

$db = mysql_connect('localhost', '#####', '#####'); 
mysql_select_db('shopping', $db); 

$query = 'SELECT * FROM Items WHERE '; 

$item_count = count($_POST['buy']); 

for($i = 0; $i < $item_count; $i++) { 
    $itemid = (int)mysql_real_escape_string($_POST['buy'][i]); // Secures It 
    $query .= '`ID` = '.$itemid; 
    if($i +1 < $item_count) { 
    $query .= ' OR '; 
    } 
} 

if ($r = mysql_query($query, $db)) { 
    print "<table>"; 
    while ($row = mysql_fetch_array($r)) { 
     print 
     "<tr> 
     <td>{$row['ID']}</td> 
     <td>{$row['Name']}</td> 
     <td>{$row['Cost']}</td> 
     </tr>"; 
    } 
print "</table>"; 
mysql_close($db); 
?> 
+0

또한주의해야하는 몇 가지 검사는 게시물의 가치에 이루어져야하며 SQL injection으로부터 보호해야합니다. –

+0

새 페이지의 코딩에 2 단계 부분을 추가합니까? 이 문장은 정확합니다 : SELECT * FROM Items WHERE 'ID'= $ item – Matt9Atkins

+0

2 단계는 새로운 페이지/프로세스 순서 페이지에 있습니다. 해당 SQL 문이 올바르지 않습니다. 'ID'는'\'ID \''여야하며 ~와 함께 키를 사용하십시오. 열 이름에 \ values ​​used (작은 따옴표)를 사용합니다. – David

0
// this checkbox use 
<input type='checkbox' name='buy[]' value='{$row['ID']}' /> 


//buy.php 
foreach($_POST['buy'] as $item) { 

$query = "SELECT * FROM Items WHERE ID = $item"; 
//use " " 

// try it if any problem please carefully look you database table 
// download file and try it 2file with table sql data 

// https://copy.com/8ZsBAFj7LvypLJkK 
+0

//이 체크 박스를 사용하십시오

0

//이 체크 박스는을 사용합니다. 515,

//buy.php 용의 foreach ($ _ POST는 [ '주문'] $ 아이템 등) {

$ 쿼리 = "WHERE ID = $ 항목 항목 * FROM"; // 사용 ""

// 어떤 문제가 조심스럽게 당신에게 데이터베이스 테이블 // 다운로드 파일을 찾아보세요 경우를 시도하고 테이블의 SQL 데이터로 2file 시도

// https://copy.com/8ZsBAFj7LvypLJkK

관련 문제