Mysql在PHP中重命名列

时间:2015-02-16 16:51:11

标签: php mysql

我正在使用脚本使用MySQL数据库生成级联下拉列表。

选择一个课程,然后选择一个位置并从该开始日期开始。

它有三列:课程,位置和开始日期。

如何重命名这些,以便它们是Course2,Location2和Start Date2?

我试过寻找解决方案,但别名似乎不起作用。

这是SELECT语句:

 $sql = "SELECT DISTINCT `$col` FROM `$table`".$where."ORDER BY `$col` ASC";

这是我正在使用的完整脚本:

http://coursesweb.net/ajax/multiple-select-dropdown-list-ajax_t

$table = 'options';
$ar_cols = array('Course', 'Location', 'Start Date', null);

$preid = 'slo_'; // a prefix used for element's ID, in which Ajax will add <select>
$col = $ar_cols[0]; // the variable used for the column that wil be selected
$re2_html = ''; // will store the returned html code

// if there is data sent via POST, with index 'col' and 'wval'
if (isset($_POST['col']) && isset($_POST['wval'])) {
    // set the $col that will be selected and the value for WHERE (delete tags and external spaces in $_POST)
    $col = trim(strip_tags($_POST['col']));
    $wval = "'".trim(strip_tags($_POST['wval'])).
    "'";
}

$key = array_search($col, $ar_cols); // get the key associated with the value of $col in $ar_cols
$wcol = $key === 0 ? $col : $ar_cols[$key - 1]; // gets the column for the WHERE clause
$_SESSION['ar_cols'][$wcol] = isset($wval) ? $wval : $wcol; // store in SESSION the column and its value for WHERE

// gets the next element in $ar_cols (needed in the onchange() function in <select> tag)
$last_key = count($ar_cols) - 1;
$next_col = $key < $last_key ? $ar_cols[$key + 1] : '';

$conn = new mysqli($server, $user, $pass, $dbase); // connect to the MySQL database

if (mysqli_connect_errno()) {
    exit('Connect failed: '.mysqli_connect_error());
} // check connection

// sets an array with data of the WHERE condition (column=value) for SELECT query
for ($i = 1; $i <= $key; $i++) {
    $ar_where[] = '`'.$ar_cols[$i - 1].
    '`='.$_SESSION['ar_cols'][$ar_cols[$i - 1]];
}

// define a string with the WHERE condition, and then the SELECT query
$where = isset($ar_where) ? ' WHERE '.implode($ar_where, ' AND ') : '';

$sql = "SELECT DISTINCT `$col` FROM `$table`".$where.
"ORDER BY `$col` ASC";

$result = $conn - > query($sql); // perform the query and store the result

// if the $result contains at least one row
if ($result - > num_rows > 0) {


    // sets the "onchange" event, which is added in <select> tag
    $onchg = $next_col !== null ? " onchange=\"ajaxReq('$next_col', this.value);\"" : '';

    // sets the select tag list (and the first <option>), if it's not the last column


    if ($col != $ar_cols[$last_key]) $re2_html = '<label>'.$col.
    ':</label> <select name="'.$col.
    '"'.$onchg.
    ' id="'.$col2.
    '"><option>Select a '.$col.
    '</option>';

    while ($row = $result - > fetch_assoc()) {
        // if its the last column, reurns its data, else, adds data in OPTION tags
        if ($col == $ar_cols[$last_key]) $re2_html. = '<br/>'.$row[$col];
        else $re2_html. = '<option value="'.$row[$col].
        '">'.$row[$col].
        '</option>';
    }

    if ($col != $ar_cols[$last_key]) $re2_html. = '</select> '; // ends the Select list
} else {
    $re2_html = '0 results';
}

$conn - > close();

// if the selected column, $col, is the first column in $ar_cols
if ($col == $ar_cols[0]) {
    // adds html code with SPAN (or DIV for last item) where Ajax will add the select dropdown lists
    // with ID in each SPAN, according to the columns added in $ar_cols
    for ($i = 1; $i < count($ar_cols); $i++) {
        if ($ar_cols[$i] === null) continue;
        if ($i == $last_key) $re2_html. = '<p id="'.$preid.$ar_cols[$i].
        '"> </p>';
        else $re2_html. = '<p id="'.$preid.$ar_cols[$i].
        '"> </p>';
    }

    // adds the columns in JS (used in removeLists() to remove the next displayed lists when makes other selects)
    $re2_html. = '<script type="text/javascript">var ar_cols = '.json_encode($ar_cols).
    '; var preid = "'.$preid.
    '";</script>';
} else echo $re2_html;

任何帮助将不胜感激。此时我正在拔头发!如果您需要更多信息,请与我们联系。

0 个答案:

没有答案