1

以下数据在 Excel 文件中,当任何人从下拉列表中选择相应数据时,我需要输出该值(23,34..etc)(PHP 文件)

在excel中:

更新 Excel 文件:

Excel文件的链接:

------------------------------|------------------
                AB            |       XE
------------------------------|------------------
               | b1 | b2 | b3 |  X1 | X2  | X3
------------------------------|------------------
           | A | 23 | 34 | 45 |  20 | 19  | 80
0.45 - 0.90| B | 20 | 31 | 85 |  23 | 23  | 67
           | C | 23 | 32 | 23 |  10 | 12  | 23
           | D | 10 | 12 | 23 |  56 | 45  | 23

以上日期在Excel 文件中

:0.45-0.90 范围为 0.45 至 0.90

在 PHP 页面中,我在下拉列表中具有价值:

1 } 0.45-0.90 ( range ) : thats 0.45,0.55,0.69,..0.90
2 } AB , XE
3 } A,B,C,D
4 } b1,b2,b3,X1,X2,X3

输出数字:23,34,45,..etc,当任何用户从 php 页面选择上述下拉数据时,它应该从 excel 中获取值并在浏览器中打印输出:

喜欢:示例如下:当任何一个选择时:

0.45 - AB - A - b1 : then he will get output in textbox as ***23***
0.45 - AB - A - b2 : then he will get output in textbox as ***34***
0.55 - AB - A - b2 : then he will get output in textbox as ***34***
0.69 - AB - B - b2 : then he will get output in textbox as ***31***

0.69 - XE - B - X2 : then he will get output in textbox as ***23***
0.90 - XE - C - X3 : then he will get output in textbox as ***23***
0.90 - XE - D - X1 : then he will get output in textbox as ***56***

以上只是一个盒子样本......我有很多其他尺寸范围的 excel 盒子。

谁能告诉我如何在 PHP MYSQL 或任何其他最佳方式中获得相同的结果。

使用上面的 excel 链接更新

4

1 回答 1

1

看起来你正在做这样的事情:

首先,数据库模式:

CREATE DATABASE soa_36427533;
USE soa_36427533;

CREATE TABLE soa_ranges (
    ID UNSIGNED NOT NULL AUTO_INCREMENT,
    min FLOAT(10,2),
    max FLOAT(10,2),
    PRIMARY KEY (ID)
) ENGINE=InnoDB;

CREATE TABLE soa_range_taxonomies (
    ID BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    name VARCHAR(64),
    PRIMARY KEY (ID)
) ENGINE=InnoDB;

CREATE TABLE soa_category (
    ID UNSIGNED NOT NULL AUTO_INCREMENT,
    name VARCHAR(64),
    PRIMARY KEY (ID)
) ENGINE=InnoDB;

CREATE TABLE soa_category_taxonomies (
    ID BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    name VARCHAR(64),
    PRIMARY KEY (ID)
) ENGINE=InnoDB;

CREATE TABLE soa_range_category_relationships (
    rangeID BIGINT UNSIGNED NOT NULL,
    rangeTaxID BIGINT UNSIGNED NOT NULL,
    categoryID BIGINT UNSIGNED NOT NULL,
    categoryTaxID BIGINT UNSIGNED NOT NULL,
    value INTEGER,
    PRIMARY KEY (rangeID, rangeTaxID, categoryID, categoryTaxID),
    FOREIGN KEY (rangeID) REFERENCES soa_ranges (ID) ON DELETE CASCADE,
    FOREIGN KEY (rangeTaxID) REFERENCES soa_range_taxonomies (ID) ON DELETE CASCADE,
    FOREIGN KEY (categoryID) REFERENCES soa_categories (ID) ON DELETE CASCADE,
    FOREIGN KEY (categoryTaxID) REFERENCES soa_category_taxonomies (ID) ON DELETE CASCADE
) ENGINE=InnoDB;

用于获取有效范围、类别和分类法的 SQL:

SELECT * FROM soa_ranges ORDER BY ID;
SELECT * FROM soa_range_taxonomies ORDER BY ID;
SELECT * FROM soa_categories ORDER BY ID;
SELECT * FROM soa_category_taxonomies ORDER BY ID;

PHP 将这些结果显示为选择框:

<?php
$db = new mysqli(HOST, USER, PASSWORD, 'soa_36427533');
if ( $db->connect_errno ) die;

$range_select_vals = array();
$ranges = $db->query( "SELECT * FROM soa_ranges ORDER BY ID" );
while ( $range = $ranges->fetch_assoc() ) {
    $range_vals = array();
    for ( $i =  $range['min'] * 100; $i < ( $range['max'] * 100 ); $i++ ) {
        $range_vals[] = floatval( $i / 100 );
    }
    $range_select_vals[$range['ID']] = $range_vals;
}
$ranges->free();

$range_taxonomy_select_vals = array();
$range_taxonomies = $db->query( "SELECT * FROM soa_range_taxonomies ORDER BY ID" );
while ( $range_taxonomy = $range_taxonomies->fetch_assoc() ) {
    $range_taxonomy_select_vals[$range_taxonomy['ID']] = $range_taxonomy['name'];
}
$range_taxonomies->free();

$category_select_vals = array();
$categories = $db->query( "SELECT * FROM soa_categories ORDER BY ID" );
while ( $category = $categories->fetch_assoc() ) {
    $category_select_vals[$category['ID']] = $category['name'];
}
$categories->free();

$category_taxonomy_select_vals = array();
$category_taxonomies = $db->query( "SELECT * FROM soa_category_taxonomies ORDER BY ID" );
while ( $category_taxonomy = $category_taxonomies->fetch_assoc() ) {
    $category_taxonomy_select_vals[$category_taxonomy['ID']] = $category_taxonomy['name'];
}
$category_taxonomies->free();
?>
<select id="range" name="range"><?php

foreach ( $range_select_vals as $range_key => $range_values ) {
    foreach( $range_values AS $value ) {
    ?>    <option value="<?php echo $range_key; ?>"><?php echo $value; ?></option><?php
    }
}
?>
</select>
<select id="range_taxonomy" name="range_taxonomy"><?php

foreach ( $range_taxonomy_select_vals as $taxonomy_key => $taxonomy_name ) {
?>    <option value="<?php echo $taxonomy_key; ?>"><?php echo $taxonomy_name; ?></option><?php
}
?>
</select>
<select id="category" name="category"><?php

foreach ( $category_select_vals as $category_key => $category_name ) {
?>    <option value="<?php echo $category_key; ?>"><?php echo $category_name; ?></option><?php
}
?>
</select>
<select id="category_taxonomy" name="category_taxonomy"><?php

foreach ( $category_taxonomy_select_vals as $taxonomy_key => $taxonomy_name ) {
?>    <option value="<?php echo $taxonomy_key; ?>"><?php echo $taxonomy_name; ?></option><?php
}
?>
</select><?php

您应该将这四个值发送到处理脚本,该脚本可以通过查询 soa_range_category_relationships 表的 value 列来输出最终结果。

于 2016-04-06T07:07:56.847 回答