2017-02-01 14 views
0

基本的には、データベースにあるすべての電子メールを読み込んで配列に挿入することです。しかし、文字列の長さがprintfの出力から、私はそれを行う手がかりがありません。私はこれがおそらく非常に基本的なものだと知っていますが、そうです。私はkindofof PHPに新しいです。何か案は?PHPがデータベースから配列にメールを読み込む

<?php 

    $emails = array(); 

    mysql_connect("127.0.0.1", "root") or 
     die("Could not connect: " . mysql_error()); 
    mysql_select_db("users"); 

    $result = mysql_query("SELECT email FROM users"); 

    while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
     $email = printf("%s", $row[0], $row[1]); 
    } 

    mysql_free_result($result); 
    ?> 
+5

あなたが新しいの[ 'mysql_'](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) データベースの拡張機能を使用するたびコード ** [子猫は世界のどこかで絞め殺されている](http://bb.blogspot.com/-zCT6jizimfI/UjJ5UTb_BeI/AAAAAAAACgg/AS6XCd6aNdg/s1600/luna_getting_strangled.jpg)**廃止され、何年も前からPHP7でこれまでになくなってしまっています。 PHPを学んでいるだけなら、 'PDO'や' mysqli'データベースの拡張機能や準備した文を学ぶことができます。 [ここから] – RiggsFolly

+1

あなたは 'SELECT email ...'、 '... $ row [0]、$ rowを実行しています[1]));あなたはエラーを見つけることができますか? 1つの列を選択しているが、2つの列のデータをフェッチしています。 –

+1

'mysql_connect()'にはパラメータがないので、残りのコードは無関係です。 PDOでPHPを始めるのを学んでいる場合は、 'mysql_'拡張モジュールの無駄な時間を無駄にしないでください。 – RiggsFolly

答えて

1

は、ここで私はJSに関連して、それを行うだろう方法です。あなたに役立つかもしれません。最初に、データベースに接続してテーブルを取得してください:

<?php 
    $currConnection = new mysqli('127.0.0.1', 'root', 'users') or 
     die('Connection failed: ' . $currConnection->connect_error); 

    $selection = "SELECT email FORM users"; 

    $currSel = $currConnection->query($selection); 
    $fetchedObj = $currSel->fetch_object(); 
?> 

これでオブジェクトにデータがあります。今JS部分に(あなたの.htmlのオーデルの.phpファイルでこれを置く):

<script type='text/javascript'> var email = <?php echo json_encode($fetchedObj); ?>; 
</script> 

これはところでJS内部のあなたのPHP-変数を取得するには、かなりきちんとした方法です。それはJSをinvolesしていない純粋な場合でも、私は、これはまさにあなたが求めているものではありません知っている

var emailInfo = []; 

function getEmails(){ 
    var currentIteration = 0; 
    for(var key in email){ 
     emailInfo[currentIteration] = email[key]; 
     currentIteration++; 
    } 
} 

が、これはあなたの問題を解決するためにかなりいい方法です:JSでは、配列を評価する機能を持っていますPHP。

これで、あなたが知っているようにemailInfo配列を呼び出すことができます。

console.log(emailInfo[0]); 
document.getElementById('emailBody').innerHTML = emailInfo[1]; 
+0

また、PHPから未処理のJSONを発行し、 '$ .ajax'呼び出しでそれを読み取ることもできます。 – tadman

0

は、これが後の検索のための値のネストされた配列の中にそれぞれの行を置く:あなたは要素を検索したい場合は、例えば

$email[0][0] 

を使用

$email = []; 
while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
    array_push($email, array($row[0], $row[1])); 
} 

0

使用は、このコード

<?php 

    $emails = array(); 

    mysql_connect("127.0.0.1", "root") or 
     die("Could not connect: " . mysql_error()); 
    mysql_select_db("users"); 

    $result = mysql_query("SELECT email FROM users"); 

    while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
     $email[] = $row[0]; 
    } 

    mysql_free_result($result); 
?> 
+0

変更されたコードだけを掲載するのが通常です。問題が修正されたことに関する解説はありません。 – tadman

関連する問題