2016-03-19 3 views
1

私は、データベースから単一の値を取得し、それを保存しようとしていて、データベースから単一の値を取得する変数 どのようにPHP

私はそれが私の名前に対するすべてのコースを印刷し、上記のコードを使用し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つのコースがあるように、私はちょうど別々に別々の変数に保存されることを望んでいるように、私は特定のコース名を選択する必要があります。

答えて

0

このクエリを試してみる:

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を、数学 'を入力して変数に入れることができます。

0

おそらくあなたは、クエリを試してみてください:

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

サイドノートとして、あなたはmysql_の機能を(mysqli_またはいくつかの類似したインタフェースを使用)を使用して停止する必要があります。クエリでパラメータを使用する方法を学びます。

+0

いいえ、働いていませんでした。それ以降の出力を得る方法 –

0

は、なぜあなたはこれらのようなPHPのforeach文を使用しないでください。

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

より良いまだあなたがPHP破を使用するか、またはそれらを別々に表示する方法を爆発することができます。

0

私はあなたがのために一致する値をexcapeしなければならないと思う:

はこれを試してみてください:

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); 

コードは配列にすべての内容を保存します。

0

配列を使用してすべてのコースを個別に保存します。コース名は$ array [0] = "math"や$ array [1] = "english"のような配列の別々のインデックスに保存されます。forループarray.Then内の値の合計数でループの条件を設定することにより、別々の変数の各値を保存するコースが$ SUB1、SUB2 $などの異なる変数で別々に保存されますので、このコードon.Try

する
$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]; 
} 
+0

MySQLは償却されるので、MySqlの代わりにMySQLiを使用してください。 –