我有代码,我不确定它是否正确以及结构是否可行。这是代码:
$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 :(得分: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。请查看PDO和MySQLi。 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;
}