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

結果を取得するために追加の配列を作成する必要はありません。連想配列を返すこの関数を使用してください。

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

配列を返すことをお勧めします。関数のユーザーは関数が何をしているのか本当にわからないので、参照システムはまったく好きではありません...

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

行をarray1に割り当てるだけで、whileが値を反復処理するため、カウントする必要はありません。

$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 に答える
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

これを使って

 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 ループを次のように書き直すことができます。以下のコードは、結果がなくなるまで新しい$rowfromを取得します。(その変数$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;

もちろん、値を画面に出力するだけなら、ハーシャルのソリューションを使用することもできます。関数が配列を返すようにしたい場合、関数は次のようになります。

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 に答える