2016-04-30 7 views
0

mySQLデータベースからのさまざまな応答を繰り返さずにエコーしたいと思います。応答は1を期待されている私はphpMyAdminのに直接このコードを入力mySQLから複数の応答を返す

+----+----------+---------------------+----------+ 
| id | user  | timestamp   | champion | 
+----+----------+---------------------+----------+ 
| 1 | Watrasei | 2015-11-13 22:31:27 | yasuo | 
+----+----------+---------------------+----------+ 
| 2 | Meta Nex | 2016-04-29 02:47:33 | yasuo | 
+----+----------+---------------------+----------+ 
| 3 | Meta Nex | 2016-04-30 02:27:53 | yasuo | 
+----+----------+---------------------+----------+ 

テーブルは次のようになります

SELECT DISTINCT user FROM champions3 WHERE champion = 'yasuo' 
しかし

sql response

、私はこれを使用PHPコードはリクエストを行い、結果をエコーすると、最後の結果のみが表示されます:

<?php 
$dbconnect = new MySQLi("localhost","root","pass","database"); 
if ($dbconnect ->connect_errno){ 
    die("Connection failed: " . $dbconnect ->connect_error); 
} 

$creatorSQL = " 
    SELECT DISTINCT user 
    FROM champions3 
    WHERE champion = 'yasuo' 
"; 
$creatorQuery = $dbconnect->query($creatorSQL); 

// Convert all results into variables. If there is more than one result, put a comma in front of the name. 
$i = 1; 
while ($creator = mysqli_fetch_assoc($creatorQuery)) { 
    if($i = 1) { 
     ${'author'.$i} = '<a>'.$creator["user"].'</a>'; 
    } 
    else { 
     ${'author'.$i} = ', <a>'.$creator["user"].'</a>'; 
    } 
    $i++; 
} 

echo $author1, $author2, $author3, $author4, $author5, $author6, $author7; 

mysqli_close($dbconnect); 
?> 

Real result

期待される結果は次のようになります。メタネックス、Watrasei

は、事前にありがとうございます。

+1

'($ I == 1)' 2equalsない1 –

+0

OMG IM SO RETARDは、あなたに感謝している場合、私は始めていました狂ったになる –

+0

私たちはすべて狂った兄弟です;-) –

答えて

0
<?php 
$dbconnect = new MySQLi("localhost","root","pass","database"); 
if ($dbconnect ->connect_errno){ 
    die("Connection failed: " . $dbconnect ->connect_error); 
} 

$creatorSQL = " 
    SELECT DISTINCT user 
    FROM champions3 
    WHERE champion = 'yasuo' 
"; 
$creatorQuery = $dbconnect->query($creatorSQL); 

// Convert all results into variables. If there is more than one result, put a comma in front of the name. 
$i = 1; 
while ($creator = mysqli_fetch_assoc($creatorQuery)) { 
    if($i == 1) { 
     ${'author'.$i} = '<a>'.$creator["user"].'</a>'; 
    } 
    else { 
     ${'author'.$i} = ', <a>'.$creator["user"].'</a>'; 
    } 
    $i++; 
} 

echo $author1, $author2, $author3, $author4, $author5, $author6, $author7; 

mysqli_close($dblogin); 
?> 
+3

あなたは何を変えたのか、その理由を詳しく説明できますか?このコードは動作するかもしれないし、動作しないかもしれませんが、実際の答えを構成するように説明してください。 – Polygnome

+1

このコードは疑問に答えるかもしれませんが、いくつかの文脈を含めて、それがどのように動作し、いつ使用するかを説明する方が良いでしょう。コードのみの回答は長期的には有用ではありません。 – Bono

+0

私のコードの変更はif($ i == 1) –

0

は、参考のために)(

をごmysqli_closeを確認します。

<?php 
$dbconnect = new mysqli("localhost","root","123456","testing"); 
if ($dbconnect ->connect_errno){ 
    die("Connection failed: " . $dbconnect ->connect_error); 
} 

$creatorSQL = " 
    SELECT DISTINCT name 
    FROM user_detail 
    WHERE Age = 23 
"; 
$creatorQuery = $dbconnect->query($creatorSQL); 

// Convert all results into variables. If there is more than one result, put a comma in front of the name. 
while ($creator = mysqli_fetch_assoc($creatorQuery)) { 
    $author[] = $creator['name']; 
} 

echo implode(', ', $author); 

mysqli_close($dbconnect); 
?> 
関連する問題