【问题标题】:How to get single value from database with php如何使用php从数据库中获取单个值
【发布时间】:2016-07-06 06:45:15
【问题描述】:

我正在尝试从数据库中获取单个值并将其存储在变量 Here is the structure of my Database

mysql_connect("localhost","root","") or die(mysql_error());;
mysql_select_db("test") or die(mysql_error());
$result = mysql_query('SELECT * FROM names WHERE name = noshair');
while($row = mysql_fetch_array($result));
{
    echo $row['course'] . "<p>";    
}

当我使用上面的代码时,它会根据我的名字从数据库打印所有课程,但我希望选择一个特定的课程名称,就像我的名字有 5 门课程一样,我只想单独保存所有课程在单独的变量中。

【问题讨论】:

    标签: php sql database web


    【解决方案1】:

    也许你应该试试这个查询:

    SELECT GROUP_CONCAT(course)
    FROM names
    WHERE name = noshair;
    

    作为旁注,您应该停止使用mysql_ 函数(使用mysqli_ 或一些类似的接口)。并学习在查询中使用参数。

    【讨论】:

      【解决方案2】:

      试试这个查询:

      SELECT DISTINCT name, GROUP_CONCAT(DISTINCT course ORDER BY course) AS courses;
      FROM names
      WHERE name = noshair
      

      并将您的 echo 语句更改为:

      echo $row['courses'] . "<p>";
      

      这应该像这样输出你的课程列表 -> 'java, c#, php, maths' 然后你可以把它放入一个变量中。

      【讨论】:

        【解决方案3】:

        你为什么不使用像这样的 php foreach 语句:

        foreach ($row['course'] as $key => $value)
         {
            echo $value;
        }
        

        你还可以使用 PHP Implode 或 Explode 方法来分别显示它们。

        【讨论】:

          【解决方案4】:

          我认为您必须排除 WHERE 的匹配值:

          试试这个:

          mysql_connect("localhost","root","") or die(mysql_error());
          mysql_select_db("test") or die(mysql_error());
          $result = mysql_query("SELECT * FROM `names` WHERE `name` = 'noshair'");
          while($row = mysql_fetch_array($result));
          {
              $courses[] = $row['course'];    
          }
          
          var_dump( $courses );
          

          代码将所有内容保存到一个数组中。

          【讨论】:

            【解决方案5】:

            使用数组单独保存所有课程。然后课程名称将保存在数组的单独索引中,如 $array[0]="math" 和 $array[1]="english" 。然后使用 for 循环通过将循环条件设置为数组中的值总数,将每个值保存在单独的变量中。然后课程将分别保存在不同的变量中,如 $sub1、$sub2 等。试试这个代码

            $con=mysql_connect("localhost","root","") 
            
            if(!$con)
            {
            die('Not connected : ' . mysql_error());
            }
            $db_selected = mysql_select_db('test', $con);
            if (!$db_selected) {
            die ('Can\'t use test : ' . mysql_error());
            }
               $result = mysql_query('SELECT * FROM names WHERE name = noshair');
            
            
               while($row = mysql_fetch_array($result));
              {
              $value=$row['course'] . "<p>"; 
              echo $value;
              $array[]=$value;
              }
            
             $total=count($array);
             for($i=0;$i<$total;$i++)
             {
            $n=$i+1;
            ${'sub'.$n} = $array[$i];
             }
            

            【讨论】:

            • MySQL 已过时,因此请使用 MySQLi 而不是 MySql。
            猜你喜欢
            • 1970-01-01
            • 2015-02-25
            • 2012-03-10
            • 2013-07-30
            • 2013-05-06
            • 2015-09-18
            • 2013-07-20
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多