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