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从查询中检索到的值?

4

6 回答 6

0
function example1(&$array1) {
  //is this allowed?? -- yes, but you have to do it by reference see & in the definition
  $array1 = array();
于 2012-09-12T12:14:58.517 回答
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 循环。

于 2012-09-12T12:16:00.863 回答
0

用这个

 if ($count!=0)
  {
    while($row=mysql_fetch_array($result))
    {
      array_push($array1,$row['names']);
    }
  }
 print_r($array1);
于 2012-09-12T12:17:46.747 回答
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);

不过,您应该考虑使用准备好的语句。看看PDOMySQLi不鼓励使用 mysql_ 函数。

于 2012-09-12T12:19:03.483 回答
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();
于 2012-09-12T12:21:24.283 回答
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;
} 
于 2012-09-12T12:22:24.920 回答