1
코딩 과정에서 나는이 문제에 정말로 빠져 들었다. 나는 foreach
루프를 실행했고 모든 항목에 대해 함수에서 특정 값을 얻어야했다. 하지만 단 하나만 반환했습니다. 나는 무슨 일이 일어나고 있는지 알 수 없었다. 나는 너희들이 분명히 희망하기를 바란다. 다음은 내 프로그램의 짧은 버전입니다. 마침내 데이터베이스 구조가 제공됩니다. 내 질문을 삭제하지 않은 경우 함수가 한 번만 반환하는 이유는 무엇입니까?
<?php
function opendb() {
mysql_connect("localhost", "root", "root");
mysql_select_db("something_db");
}
function sql_query($sql) {
$datas = array();
if ($res = mysql_query($sql)) {
$x = 0;
while ($data = mysql_fetch_assoc($res)) {
$datas[$x] = $data;
$x += 1;
}
}
return $datas;
}
function get_parent_id($table, $parent, $cid) {
// cid=>child id
$sql = "SELECT * FROM $table WHERE id=$cid";
$datas = sql_query($sql);
$pid = $datas[0]['parent'];
$p_id = $datas[0]['id'];
if ($pid != 0) {
get_parent_id($table, $parent, $pid);
} else {
return $p_id;
}
}
opendb();
$datas_pkg = sql_query("SELECT * FROM tbl_packages WHERE 1");
foreach ($datas_pkg as $data_pkg) {
echo $data_pkg['destination_id'] . '-->';
echo $parent_id = get_parent_id('tbl_destinations', 'parent', $data_pkg['destination_id']);
echo '<br/>';
}
?>
데이터베이스 구조
..tbl_destinations
+--------+-------------------------+-----------+
| id(int)|destination_name(Varchar)|parent(int)|
+--------+-------------------------+-----------+
tbl_packages
+-------+---------------------+-------------------+
|id(int)|package_name(varchar)|destination_id(int)|
+-------+---------------------+-------------------+
제가 당신이 도움이 도움이 될 수 있도록 알려 주시기 바랍니다 나를.
나는 그것을 얻지 못했다고 생각합니다. 대답을 자세히 설명해주십시오. –
SQL 쿼리를 실행하고 결과를 반품 한 다음 반환 된 함수를 폐기하는 함수가 있습니다. 변수에 저장하거나 그 변수로 처리하고 싶지 않으십니까? –
하지만 함수에서 반환 된 값을 에코하여 사용 했습니까? –