2014-01-05 72 views
0

我想通過這個整個表格,呼應了所有的電子郵件SQL不選擇

這裏的所有行是我的查詢

選擇meta_value FROM wp_usermeta WHERE meta_key =「USER_EMAIL」

下面是當我在phpMyAdmin

執行它的圖片3210

這裏是輸出,當我跑我的PHP腳本

array(8) { 
    [0]=> 
    string(3) "781" 
    ["umeta_id"]=> 
    string(3) "781" 
    [1]=> 
    string(2) "36" 
    ["user_id"]=> 
    string(2) "36" 
    [2]=> 
    string(10) "user_email" 
    ["meta_key"]=> 
    string(10) "user_email" 
    [3]=> 
    string(22) "[email protected]" 
    ["meta_value"]=> 
    string(22) "[email protected]" 
} 

你可以清楚地看到有辦法超過8行,我不知道這一點任何輸入將不勝感激!

$data = $db->fetch_array("SELECT * FROM `wp_usermeta` WHERE `meta_key`='user_email'"); 
var_dump($data); 

DB類:

<?php 
class DB { 

    function __construct() { 
     global $dbase; 
     $this->mysqli = new mysqli($dbase['host'], $dbase['user'], $dbase['pass'], $dbase['name']); 
     if($this->mysql->connect_error) { 
      die('Unable to Connect to Database'); 
     } 
    } 
    function query($i) { 
     return $this->mysqli->query($i); 
    } 
    function fetch_array($i) { 
     if(!is_object($i)) { 
      // create $i as an object! 
      $i = $this->query($i); 
     } 
     return $i->fetch_array(); 
    } 
    function num($i) { 
     if(!is_object($i)) { 
      // create $i as an object! 
      $i = $this->query($i); 
     } 
     return $i->num_rows; 
    } 
} 
?> 
+0

你是一個天才,如果你表現出你的PHP腳本。 – CentaurWarchief

+0

用腳本更新後的文章 – Mario

回答

1

$db->fetch_array只返回結果的第一行。您必須使用不同的方法遍歷所有選定的行,但由於我們不知道數據庫類(其中$ db是實例),因此您必須找出自己的方法。

編輯:下面的代碼應該工作:

$result = $db->query(your query); 
while ($row = $result->fetch_array()) { 
    // do something with $row 
} 
+0

我已將我的數據庫類添加到帖子中 – Mario

+0

非常感謝!這就是訣竅!有沒有一種方法可以從不同的值得到2個meta_value,例如,如果我想要first_name行 – Mario

+0

您可能需要從不同的表中獲取該信息。如果您想要,您可以在相同的查詢中執行此操作,例如'SELECT table1.name,table2.email FROM table1,table2 WHERE table1.id = AND table2.id = table1.id'(語法可能有點不同,請查看官方文檔) – Njol