从php中的文本值获取数据

时间:2012-10-29 15:20:32

标签: php mysql select text

我完全被困在这里,在发布时发现了数十个样本以获取和设置值。我想做的是 -

  1. 让用户将车辆年份模型输入到我的表单中的文本框中(设置为发布)

  2. 然后我需要将此值变为变量状态

    $vehicle_year = $_GET['vyear'];
    

    第一个错误在这里... vyear是我的文本框的名称和ID。错误 - 未定义的索引'vyear'。没有提交表格等,因为我仍然在同一表格/页面上。

  3. 捕获此值后,我会搜索我的数据库,以便返回所有附有一年(已退回)的制造商 -

    $query = "SELECT * FROM `vehicledata` WHERE `year`='$vehicle_year'";
    

    显然它不起作用,因为我仍然没有从上面返回的带有未定义错误的值。我试图更改文本框的名称和ID,没有运气。

  4. 一旦返回这些记录,我需要将值添加到选择(下拉)框中。我不知道如何获取值 - 似乎我需要运行一个循环,我知道如何,只是不知道如何将选项添加到选择框。

    请注意我的表单未提交,我需要先提交所有相关数据才能提交。

  5. 任何帮助都将受到赞赏,感谢你们。

    P.S。一旦我知道如何获取值并添加选项,我将添加反对sql注入。只需要基础知识就可以让我继续前进。

    HTML:     //这将是我的代码......                     搜索我的车轮
                                                             的                                                                

                <?php          
    
                $vehicle_year = isset($_POST['vehicleyear']) ? $_POST['vehicleyear'] : -1;                
    
                    if ($vehicle_year == -1) {
                    echo 'No Value Returned...';
                                        //returns no value...
                } else {
                                        //How to get the value and echo it out...
                    echo $vehicle_year;
                }
     //$query = "SELECT * FROM (SELECT * FROM `vehicledata` WHERE `year`='$vehicle_year' ORDER BY `cid` DESC LIMIT 1, 10) AS `table` ORDER BY `cid` ASC";
     $query = "SELECT * FROM `vehicledata` WHERE `year`='$vehicle_year'";
    
     $result = mysql_query($query);
    
     while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $vehicle_id = $line['cid'];
    $vehicle_year = $line['year'];
    $manufacturer = $line['carfindmake'];
    
    //Get manufacturer data...
    $images = get_make($vehicle_year);
    
    if (!empty($make)) {
        echo 'No data';
    } else {
        echo 'Found stuff';
    }
     }
        ?>
    
                <td align="right"><span style="visibility:hidden" id="makelabel"><strong>Make</strong>&nbsp;&nbsp;</span></td>
                <!--<td><input name="make" id="make" type="text" class="searchbox" style="visibility:hidden" onClick="toggleVisibility('modellabel'); toggleVisibility('model');"/></td>-->
                <td><select name="make" id="make" class="searchbox" style="visibility:hidden" onClick="toggleVisibility('modellabel'); toggleVisibility('model');"/></td>
    

3 个答案:

答案 0 :(得分:0)

  

我的表格(设为发布)

$vehicle_year = $_GET['vyear'];

如果您的表单设置为使用POST,则需要通过$_POST超全局访问表单元素:

$vehicle_year = $_POST['vyear'];

如果由于索引可能设置或未设置而遇到问题,请使用PHP的isset()进行检查。如果未设置索引,则不会导致错误。

if(isset($_POST['vyear'])) {
    $vehicle_year = $_POST['vyear'];
}

答案 1 :(得分:0)

1 - 如果表单设置为POST,则必须使用$ _POST [“vyear”]来恢复该值。

2 - 仔细检查文本框名称的大小写。

答案 2 :(得分:0)

2)由于未设置值,因此尚未提交表单时会出错。

通过以下方式解决此问题:

$vehicle_year = '';

if ( isset( $_POST['vyear'] ) ) {
    $vehicle_year = $_POST['vyear'];
}