Как выбрать строку (и) из таблицы MySQL, используя флажок (PHP) - PullRequest
0 голосов
/ 31 марта 2012

Привет У меня есть страница, которая отображает все содержимое моей таблицы.Вдоль каждой строки таблицы у меня также есть столбец, содержащий флажок.Когда пользователь выбирает одну или несколько строк, отметив флажок и нажав кнопку отправки, я хочу, чтобы эти строки отображались в таблице на следующей странице (buy.php).Я знаю, что это в основном оператор выбора для каждой строки, которая выбрана.Но я не знаю, как подойти к этому.Кто-нибудь может помочь?Спасибо

        <!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>

Ответы [ 3 ]

6 голосов
/ 31 марта 2012

Вам необходимо создать динамический 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
  }
?>

ОБНОВЛЕНИЕ:

<?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 голосов
/ 15 мая 2015

// этот флажок использовать

// buy.php foreach ($ _ POST ['buy'] как $ item) {

$ query = "SELECT * FROM Items WHERE ID = $ item"; // используем ""

// попробуйте, если возникнут проблемы, внимательно посмотрите таблицу базы данных // загрузите файл и попробуйте 2file с таблицей sql data

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

0 голосов
/ 15 мая 2015
// 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...