【问题标题】:Filtering My sql through Php using drop down menu and text field使用下拉菜单和文本字段通过 PHP 过滤 My sql
【发布时间】:2015-07-05 01:43:18
【问题描述】:

我在 php.ini 中有一个小问题。 问题是我想通过 php 编码搜索 MySQL 表。 在 php 中,我想使用下拉菜单和一个文本字段。 我有两个 MySQL 表名是类别和产品,现在我使用类别条目 在下拉菜单中(按 cat_name)。在搜索文本区域中 我想写下从下拉菜单中通过 cat_name 选择的任何产品名称,然后单击搜索按钮。然后它将以表格格式显示产品表的结果。

谁能帮帮我 谢谢。 我有两个类别:类别表中的手机和笔记本电脑和 我有很多产品名称:Dell、Hp、Toshiba、Samsung、Iphone 等...在产品表中

1。类别

cat_id
猫名

2。产品

product_id 
product_cat 
product_name 
product_price

我有 php 代码。在从下拉列表中的数据库中填充 cat_name 之前,此操作正确。

结果.php

 <?php 
mysql_connect ("localhost", "root","")  or die (mysql_error());
mysql_select_db ("ecomerce");



$sql = mysql_query('SELECT cat_name FROM  categories ORDER BY cat_name');
$models = array();
while ($row = mysql_fetch_array($sql)){
    $models[] = $row;
}
?>
<form action="search.php" method="post">
  <select name="term">
  <?php
  foreach ($models as $model) {
  ?>
    <option value="<?php echo $model['cat_name']?>"><?php echo $model['cat_name']?></option>
  <?php
  }
  ?>
  </select>

<form >
<input type="text" class="form-control" placeholder="Search a Product">
<input type="submit" name="submit" value="Search" />

</form>

搜索.php

<?php

mysql_connect ("localhost", "root","")  or die (mysql_error());
mysql_select_db ("ecomerce");


if(isset($_POST['term']) {
    $term = $_POST['term'];
    $query = "SELECT * FROM products WHERE product_cat = '".mysql_escape_string($term)."'";
    $result = mysql_query($query);
    while($row = mysql_fetch_assoc($result) {
        // display results

    echo 'Product ID '.$row['product_id'];
    echo 'product_title: '.$row['product_name'];
    echo 'product_price: '.$row['product_price'];


    }
}

?>

【问题讨论】:

  • 人们还在认真地使用mysql_ 函数吗?!

标签: php html mysql


【解决方案1】:

config.php

<?php
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_USER', 'DB_Username'); 
DEFINE ('DB_PASSWORD', 'DB_Password');
DEFINE ('DB_NAME', 'Database_Table_Name'); 
DEFINE ('DBCONN', 'Path/to/dbconnect.php');
?>

dbconnect.php

<?php
$dbconn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
IF (!$dbconn) {
    die('Could not connect: ' . mysql_error());
}
IF (!mysql_select_db (DB_NAME)) { die('Could not select table: ' . mysql_error()); }
?>

functions.php

<?php
// Categories
Function Categories($mysql = true) { 

    $result = array();

    IF ($mysql == true) { require(DBCONN); }ELSE{ global $dbconn; } // db connection
    // query cats to array
    $sql = mysql_query("SELECT cat_name FROM categories ORDER BY cat_name");
    while ($row = mysql_fetch_array($sql)){
        $result[] = stripslashes($row['cat_name']);
    }
    mysql_free_result($sql);
    IF ($mysql == true) { mysql_close($dbconn); } // close connection

    return $result;

}

// Category dropdown
Function ddform_Categories($cats, $post = NULL) { 

    $result = "";

    // set default
    IF ((empty($post)) || ($post == "xx")) { 
        $result .="<option selected value=\"xx\">Choose Category</option>"; 
    }ELSE{ 
        $result .="<option value=\"xx\">Choose Category</option>"; 
    }

    foreach ($cats as $category) {
        IF ($post == $category) { 
            $result .="<option selected value=\"".$category."\">".$category."</option>";
        }ELSE{ 
            $result .="<option value=\"".$category."\">".$category."</option>";
        }
    }

    return $result;

}

// MySQL Search
Function CategorySearch($mysql = true, $cats, $post) {

    $result = "";
    $rows = "";

    IF ($mysql == true) { require(DBCONN); }ELSE{ global $dbconn; } // db connection
    $term = mysql_escape_string($post);
    $query = "SELECT * FROM products WHERE product_cat = '$term'";
    $sql = mysql_query($query);
    IF (mysql_num_rows($sql)) {
        while($r = mysql_fetch_array($sql) {
            $rows .= "<tr><td>".$r['product_name']."</td><td>$".number_format($r['product_price'])."</td></tr>";
        }
        mysql_free_result($sql);

    }ELSE{
        $result = "<p>No Results</p>";
        #$result .= "<p>SQL:\n".$query ."</p>"; // debug
    }

    IF ($mysql == true) { mysql_close($dbconn); } // close connection

    IF (!empty($rows)) {
        $result = "<table>".$rows."</table>";
    }

    return $result;

}
?>

搜索.php

<?php
Require('config.php');
Include('functions.php')

$cats = Categories();
$post = "xx"; // default post value

IF (isset($_POST['Search'])) {

    $post = htmlspecialchars(strip_tags(trim($_POST['term'])));

    // build query
    IF ( (!empty($post)) && (in_array($post, $cats)) ) {
        $result = CategorySearch(true, $post);
    }ELSE{
        $result = "<p>Search option (".$post.") was invalid.</p>";
    }

    echo($result);

}
?>

<form action="search.php" name="search" method="post">
  <select name="term"><?php echo(ddform_Categories($cats, $post))); ?></select>
    <input type="text" class="form-control" placeholder="Search a Product">
    <input type="submit" name="Search" value="Search" />
</form>

【讨论】:

  • 我收到此错误.......解析错误:在线解析 C:\xampp\htdocs\link\drop\Search.php 中的错误
  • 我需要完整的错误信息,包括行号。
  • 解析错误:第 5 行 C:\xampp\htdocs\link\drop\Search.php 中的解析错误
  • 第 5 行是:$cats = Categories();确保 dbconnect.php 文件正确,并使用您的登录名、主机、数据库名称凭据更新了配置。
  • 更新 Categories 函数 $sql 行如下: $sql = mysql_query("SELECT cat_name FROM categories ORDER BY cat_name");
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-17
  • 2018-09-06
  • 2015-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多