Функция возвращается только один раз, почему?
Во время моего кодирования я действительно застрял в этой проблеме. Я побежал 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)|
+-------+---------------------+-------------------+
Если я не прояснил свой вопрос, пожалуйста, дайте мне знать, чтобы я мог помочь вам помочь мне.
1 ответ
if($pid!=0)
{
get_parent_id($table,$parent,$pid);
}
Вы вызываете функцию, но никогда не используете ее значение.