简体   繁体   English

html表单选择选项,在选择时将SQL查询分配给每个选项

[英]html form select option, assign SQL query to each option on select

I have a select option form that is self referencing, How do I assign the SQL query to each select option? 我有一个自引用的选择选项表单,如何将SQL查询分配给每个选择选项? so when the user selects, that selection queries the database for that specific table and outputs to page. 因此,当用户选择时,该选择会在数据库中查询该特定表并输出到页面。 I have a select option for each table in the database and have created the related queries. 我对数据库中的每个表都有一个选择选项,并创建了相关查询。 Do I need to put the queries into an array? 我需要将查询放入数组吗? I am stuck on how to advance further. 我被困在如何进一步前进。 I have included some of the code below. 我已经包括了下面的一些代码。 Do I need to create a unique SQL query var for each user option? 我是否需要为每个用户选项创建一个唯一的SQL查询变量? Any direction would be helpful. 任何方向都会有所帮助。 Thanks 谢谢

    //this is the first query it gets the count for pagination
        $sql = "SELECT COUNT(productCode) FROM products"
        or die ('Cannot Select database');  


    // This  query is just to get the total count of rows
    //$sql = "SELECT COUNT(productCode) FROM products";
    $query = $dbc->query($sql);

$row = $query->fetch_row();
//this is were I am stuck
    if($_POST['productCode'] == ('productCode')) {
    // query to get code records
    $sql2 = "SELECT productCode FROM products";
}
elseif($_POST['productName'] == 'productName') {
    // query to get product name  records
    $sql3 = "SELECT productName FROM products";
} else {
    // query to get all records
    $sql4 = "SELECT * FROM products";
}
    $list = '';

    while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
        $id = $row['productCode'];
        $name = $row['productName'];
        $line = $row['productLine'];
        $scale = $row['productScale'];
        $vendor = $row['productVendor'];
        $description = $row['productDescription'];
        $buy_price = $row['buyPrice'];
        $quanity = $row['quantityInStock'];
        $msrp = $row['MSRP'];
        $list .= "<table>
        <tr> 
            <td class='center'><strong>Product Id</strong></td>

        </tr>
        <tr>
            <td class='center'>$id</td> 
            <td>$name</td>
            <td>$product_line</td>
            <td>$scale</td>
            <td>$vendor</td>
            <td>$description</td>
            <td>$buy_price</td>
            <td>$quanity</td>
            <td>$msrp</td>
        </tr>
        </table>";
    }
    <select name="value">
            <option value="<?=$id; ?>">Product ID</option>
            <option value="<?=$name; ?>">Product Name</option>
            <option value="<?=$line; ?>">Product Line</option>
            <option value="<?=$scale; ?>">Product Scale</option>
            <option value="<?=$vendor; ?>">Product Vendor</option>
            <option value="<?=$description; ?>">Product Description</option>
            <option value="<?=$quanity; ?>">Quanity In Stock</option>
            <option value="<?=$buy_price; ?>">Buy Price</option>
            <option value="<?=$msrp; ?>">MSRP</option>
     </select>
<?php
//SQL table rows system names => 'human names for select'
$rows4Search = array(
    'productCode' => 'Product Code',
    'productName' => 'Product Name',
    'productLine' => 'Product Line',
    'productScale' => 'Product Scale',
);

//build html select options
foreach ( $rows4Search as $key=>&$val ){
    $opinonsString .= '<option value="'.$key.'" '.( $_POST['wattafind']==$key ? 'selected' : '' ).' >'.$val.'</option>';

}

//form
echo '
    <form method=POST>
        <select name="wattafind">
            <option>All fields</option>
            '.$opinonsString.'
        </select>
        <input type="submit">
    </form>
';

//catch selected option & put it to your query
if ( $_POST['wattafind'] && array_key_exists( $_POST['wattafind'], $rows4Search) )
    $sql = 'SELECT `'.$_POST['wattafind'].'` FROM products';
else
    $sql = 'SELECT * FROM products';

echo "<pre>".print_r($sql,true)."</pre>";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM