2012-09-12 95 views
3

我有代碼,我不確定它是否正確以及結構是否可能。下面是代碼:使用表中的行填充數組

$host="localhost"; 
$username="sample1"; 
$password="1234"; 
$db_name="sampledb"; 

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

function example1(array1) { 
//is this allowed?? 
    $array1 = array(); 
    $ctr = 0; 
    $ctr1=1; 
    $sql="SELECT names FROM tblnamelist"; 
    $result=mysql_query($sql); 
    $row=mysql_fetch_array($result); 
    $count=mysql_num_rows($result); 
    //I also want to populate the array1 with all the values that was retrieved in the query then return it as an array 
    if($count!=0) { 
    while($ctr1<=$count) { 
     $array1[$ctr]=$row[$ctr]; 
    } 
    } 
} 

基本上我的問題是我怎麼能填充array1從查詢檢索到的值?

回答

0

我會建議返回數組,我挺不喜歡參考系統功能的用戶並不真正知道什麼功能是做...

function get_results() 
{ 
    $array1 = array(); 

    $sql="SELECT names FROM tblnamelist"; 
    $result=mysql_query($sql); 

    while($row=mysql_fetch_array($result)) 
    { 
     $array1[] = $row; 
    } 
    return $array1; 
} 
$array = get_results(); 
+0

$ array1 = $ row部分中的$ array1 []不應該有一個ctr?像$ array1 [ctr] = $ row ['names']; ctr ++? –

+0

不,'$ array1 [] = $ row'會將$ row添加到數組的末尾。它會自動增長:)。 –

0
function example1(&$array1) { 
    //is this allowed?? -- yes, but you have to do it by reference see & in the definition 
    $array1 = array(); 
0

你並不需要創建一個額外的陣列來獲取你的結果,使用這個函數返回的關聯數組:案件

while($row=mysql_fetch_array($result){ 

echo $row['field_name']; 
} 

在您:

$sql="SELECT names FROM tblnamelist"; 
    $result=mysql_query($sql); 
    while($row=mysql_fetch_array($result)){ 
    echo $row['field_name']; 

} 

如果結果中只有一行,而不需要while循環。

0

使用本

if ($count!=0) 
    { 
    while($row=mysql_fetch_array($result)) 
    { 
     array_push($array1,$row['names']); 
    } 
    } 
print_r($array1); 
0

你可以重寫你的while循環,使它看起來像這樣。下面的代碼將從$result得到新的$row,直到沒有更多的結果。 (你並不需要一個$count變量)

$array1 = array(); 
while($row = mysql_fetch_array($result)) { 
    $array1[] = $row['names']; // Insert the value of $row['names'] to the end of the array 
} 

// return your array, or use Jakub's method. 
return $array1; 

當然,如果你正在與價值做的是把它們打印到屏幕上,你還不如用Harshal的解決方案。 如果你想有函數返回一個數組,你的函數可以是:

function getNamesArray() { 
    $sql="SELECT names FROM tblnamelist"; 
    $result=mysql_query($sql); 

    // this is the result array that this function will return 
    $array1 = array(); 

    // loop while there are rows in the mysql result 
    while($row = mysql_fetch_array($result)) { 
     // Insert the value of $row['names'] to the end of the array 
     $array1[] = $row['names']; 
    } 
    return $array1; 
} 

// test the function: 
$test = getNamesArray(); 
var_dump($test); 

您應該考慮使用prepared statements雖然。看看PDOMySQLi。 mysql_函數的使用是discouraged

0

不需要計數作爲同時將通過任何值迭代 剛剛分配的行,如果您使用以下這幾次到陣列1

$result=mysql_query($sql); 
while($row=mysql_fetch_array($result)) { 
    $array1[]=$row; 
} 

,你可能想給一個邏輯索引到數組;

while($row=mysql_fetch_array($result)) { 
    $array1[$row['myUniqueRowID']]=$row; 
}