【问题标题】:Mysql column not returning correct valueMysql列没有返回正确的值
【发布时间】:2014-03-24 15:33:13
【问题描述】:

我正在尝试从特定列中获取课程剩余的名额。但是,结果返回的是不正确的 4。应该是 15

代码如下:

$courseID = $_GET['id'];

$result = mysql_query("SELECT * FROM course_dates WHERE id = '$courseID'");


$row = mysql_fetch_row($result);


foreach ($row as $record) {
    $placesLeft = $record['places'];
}


echo $placesLeft;

很明显,我是一个完全的菜鸟吗?

编辑:$row 的 var_dump:

   array(7) { 
    [0]=> string(1) "2"
    [1]=> string(1) "2"
    [2]=> string(56) "Essential leadership and mangement skills in the new nhs"
    [3]=> string(6) "London"
    [4]=> string(10) "2012-12-15"
    [5]=> string(2) "15"
    [6]=> string(3) "450"
   } 

【问题讨论】:

  • 您正在循环获取 val 并在循环外回显!!
  • 移动回声 $placesLeft;到foreach

标签: php mysql loops foreach


【解决方案1】:

我相信你的 id 是主键/唯一键

所以你只会得到一行作为结果集

所以使用:

$row['places']; 

够了,不要再重复了

【讨论】:

  • 这没有做任何事情:s
  • 什么都没做是什么意思?没有输出?
  • 是的,没有任何输出
  • print_r()了吗??
  • print_r 什么都不做,var_dump = NULL
【解决方案2】:

试试这个方法:

使用$courseID = "1"; 并在各自的列中生成1Place ONESpain

1
放置一个
西班牙

<?php
$DB_HOST = "xxx";
$DB_NAME = "xxx";
$DB_PASS = "xxx";
$DB_USER = "xxx";

$db = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if($db->connect_errno > 0) {
  die('Connection failed [' . $db->connect_error . ']');
}

// $courseID = $_GET['id'];
$courseID = "1"; // my own test. Column set to (INT)

$result = mysqli_query($db,"SELECT * FROM course_dates WHERE id = '$courseID'");

 while($row = $result->fetch_assoc()) {

    // my own example columns. Change to suit
    echo $row['id'];
    echo "<br>";
    echo $row['places'];
    echo "<br>";
    echo $row['city'];
}

mysqli_close($db);

使用$courseID = "2"; 并在各自的列中生成2Place TWOLONDON

2
放置两个
伦敦

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-04
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多