【问题标题】:php two dependent dropdowns mysql query fetch to arrayphp 两个依赖下拉列表 mysql 查询获取到数组
【发布时间】:2016-08-20 15:40:42
【问题描述】:

我目前正在努力处理两个下拉列表,其中 mysql 获取的数据不正确。

第一个下拉列表是位置列表,然后是必须显示可用日期的第二个下拉列表。

这里是请求的php代码:

<?php
require('base.php');
switch(@$_REQUEST['location']){
    case 'RD':
        $query = mysql_query("SELECT * FROM `courses` where location = 'Dubai'");
        $row = mysql_fetch_array($query);
        while($row = mysql_fetch_array($query))
        {
        $locdata = array_push($locdata, echo $row['day'].' '.$row['date'].' '.$row['month']);
        }
        break;
    case 'UT': 
        $locdata=array( 'Monday 22 August', 'Tuesday 23 August');
        break;
    case 'NY':
        $query = mysql_query("SELECT * FROM `cursussen` where locatie = 'New York'");
        $row = mysql_fetch_array($query);
        while($row = mysql_fetch_array($query))
        {
        $locdata = array_push($locdata, echo $row['dag'].' '.$row['datum'].' '.$row['maand']);
        }
        break;
    case 'AM':
        $query = mysql_query("SELECT * FROM `cursussen` where locatie = 'Amsterdam'");
        $row = mysql_fetch_array($query);
        while($row = mysql_fetch_array($query))
        {
        $locdata = array_push($locdata, echo $row['dag'].' '.$row['datum'].' '.$row['maand']);
        }
        break;

    default: 
        $locdata=false;
}
if(!$locdata)echo 'Selecteer eerst een locatie';
else echo '<select name="locations"><option>'.join('</option>           <option>',$locdata).'</select>';

如果所有情况都像 UT 一样手动设置,则效果很好。如何将数据库中的数据追加到数组中?

【问题讨论】:

  • 停止suppressing errors,他们可以帮助您解决问题!
  • 应该mysql_* 切换,因为它已被officially 弃用。使用mysqli_*PDO prepared statements
  • 显示所有错误仍然没有显示任何内容。当我将查询提取到数组中的一个元素 ($locdata= array('row['day'].row['month']') 但附加 (append_push) 不起作用时,使用 mysql_* 确实有效
  • 你误解了我的第二条评论。
  • 我也试过mysqli,但还是

标签: php jquery mysql dropdown


【解决方案1】:

首先在你的 Switch 使用前设置数组:

$locdata = array();

然后纠正你的推送:

array_push($locdata, ..... etc )

【讨论】:

  • 我怎么放这个> $row['dag'].' '.$row['基准']。' '.$row['maand'] 在 "" 之间?当我尝试将其放入字符串时,它向我显示错误。我也试过这个 "$row[\'dag\'].\' \'.$row[\'datum\'].\' \'.$row['\maand\']" (之前使用反斜杠')
  • 我认为我面临语法错误,因为我不知道如何以正确的方式将获取的行值放入字符串中
  • 谢谢!在纠正我的语法后纠正我的数组推送完成了这项工作
  • 对不起 - 没有检查语法,但我猜你排序了。不需要所有的引号和回声。干得好。
【解决方案2】:
case 'RD':
    $query = "SELECT * FROM `course` where locatie='Amsterdam'";
    $result = mysqli_query($link,$query);
    // if (!$result) {
    //   printf("Error: %s\n", mysqli_error($link));
    //   exit();
    //}     
    $locdata = array();
    while($row = mysqli_fetch_array($result))
    {
        $temp = $row['day']." ".$row['date']." ".$row['month'];
        array_push($locdata, $temp);
    }
    break;

完成任务

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 2017-08-11
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 2023-04-05
    相关资源
    最近更新 更多