1

こんにちは、コードを短くして、まったく同じことを行う 2 つの関数を結合したいと考えています。

だから私はこれを得た:

function a($a){
    global $db;
    $query = $db->query("SELECT col_a FROM table WHERE Field= '$a' ");
    $check = $query->fetch_assoc();
    $return_a = $check['col_a'];
    return ($return_a);
}
function b($a){
    global $db;
    $query = $db->query("SELECT col_b FROM table WHERE Field= '$a' ");
    $check = $query->fetch_assoc();
    $return_b = $check['col_b'];
    return ($return_b);
}

だから私は両方を1つに組み合わせることができると思った:

function ab($a){
global $db;
$query = $db->query("SELECT col_a, col_b FROM table WHERE Field= '$a' ");
$check = $query->fetch_assoc();
$return_array = array( $check['col_a'], $check['col_b'] );
return ($return_array);
}

これはうまくいかないようです。私は次を使用して配列を読み出そうとしました:

$db_data = ab($a);

echo $db_data['col_a'];
echo $db_data['col_b'];

だから、私が間違っていることを教えてくれる人がいれば、本当に感謝しています。

どうもありがとう。

4

4 に答える 4

1

これを試して :

$db_data = ab($a);

echo $db_data[0];
echo $db_data[1];
于 2013-02-22T11:57:27.547 に答える
1

You're not creating a named array, so your result is indexed with $db_data[0] and $db_data[1]

Replace: $return_array = array( $check['col_a'], $check['col_b'] );

With: $return_array = array( 'col_a' => $check['col_a'], 'col_b' => $check['col_b'] );

Or even more simpler just return $check;

于 2013-02-22T11:56:47.973 に答える
1

これを行うと(コードと同じ)、次のようにアクセスできます

function ab($a){
    global $db;
    $query = $db->query("SELECT col_a, col_b FROM table WHERE Field= '$a' ");
    $check = $query->fetch_assoc();
    $return_array = array( $check['col_a'], $check['col_b'] );
    return ($return_array);
}



$db_data = ab($a);

echo $db_data[0]; // will return 'col_a';
echo $db_data[1]; // will return 'col_b';

あなたはこれをするべきです

function ab($a){
    global $db;
    $query = $db->query("SELECT col_a, col_b FROM table WHERE Field= '$a' ");
    $check = $query->fetch_assoc();
    //$return_array = array( $check['col_a'], $check['col_b'] );
    return ($check);
}

そして、あなたがフェッチする必要があるとき

$db_data = ab($a);

echo $db_data['col_1'];
echo $db_data['col_1'];
于 2013-02-22T11:58:48.097 に答える
0
list($col_a, $col_b) = ab($a);
echo $col_a;
echo $col_b;
于 2013-02-22T11:55:12.477 に答える