使用表中行的值填充数组

时间:2012-09-12 12:11:56

标签: php

我有代码,我不确定它是否正确以及结构是否可行。这是代码:

$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

6 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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循环。

答案 2 :(得分:0)

使用此

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

答案 3 :(得分:0)

你可以重写你的while循环使它看起来像这样。以下代码将从$row获得新的$result,直到不再有结果为止。 (您不需要$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

答案 4 :(得分: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();

答案 5 :(得分:0)

不需要计数,因为while会迭代任何值 只需将行分配给array1

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

如果你在下面多次使用它,你可能想给数组提供一个逻辑索引;

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