Выборка из двух таблиц MySQL

12
bay_ebook
На сайте с 28.05.2010
Offline
111
#11
WebCreativo:
Выводит вот такое
Array ( [0] => PT [iso] => PT [1] => Portugal [local_name] => Portugal [2] => [name] => )

Во-первых - покажите весь скрипт.

Во-вторых - mysql_fetch_array заменяем на mysql_fetch_assoc так как вы работаете с ассоциированным массивом

Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)
olympteka
На сайте с 08.06.2013
Offline
16
#12
bay_ebook:
Во-первых - покажите весь скрипт.
Во-вторых - mysql_fetch_array заменяем на mysql_fetch_assoc так как вы работаете с ассоциированным массивом

Вот это верное решение

WC
На сайте с 26.07.2013
Offline
10
#13

<?php

/*-----------------Подключение к базе данных----------------*/
function db_connect()
{
$host='localhost'; // имя хоста (уточняется у провайдера)
$database='data'; // имя базы данных, которую вы должны создать
$user='user'; // заданное вами имя пользователя, либо определенное провайдером
$pswd='123456'; // заданный вами пароль

$connection = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
mysql_query("SET NAMES utf8");
mysql_select_db($database) or die("Не могу подключиться к базе.");

return $connection;
}


/*-----------------////////////////////////----------------*/
/*-----------------Вывод стран на страницу страны----------------*/
function db_result_to_array($result)
{
$res_array = array();

$count = 0;

while($row = mysql_fetch_array($result))
{
$res_array[$count] = $row;

$count++;
}

return $res_array;
}


function get_countries()
{
db_connect();

$query = "SELECT * FROM countries";

$result = mysql_query($query);

$result = db_result_to_array($result);

return $result;
}

/*-----------------////////////////////////----------------*/

/*-----------------Вывод страны на страницу страны----------------*/

function get_country($id)
{
db_connect();

/* $query = ("SELECT * FROM countries WHERE iso='$id' "); */
$query = ("SELECT c.iso AS iso, c.local_name AS local_name, ci.name AS name FROM countries AS c LEFT JOIN cities AS ci ON c.iso=ci.iso WHERE c.iso='$id' ");

$result = mysql_query($query);

$row = mysql_fetch_array($result);

return $row;

}

/*-----------------////////////////////////----------------------*/

/*-----------------Вывод городов на страницу страны----------------*/
function get_city($id)
{
db_connect();

$query = ("SELECT * FROM cities WHERE name='$id' ");

$result = mysql_query($query);

$row = mysql_fetch_array($result);

return $row;

}

?>
bay_ebook
На сайте с 28.05.2010
Offline
111
#14
WebCreativo:
<?php

function get_country($id)
{
db_connect();

/* $query = ("SELECT * FROM countries WHERE iso='$id' "); */
$query = ("SELECT c.iso AS iso, c.local_name AS local_name, ci.name AS name FROM countries AS c LEFT JOIN cities AS ci ON c.iso=ci.iso WHERE c.iso='$id' ");

$result = mysql_query($query);

$row = mysql_fetch_array($result);

return $row;

}


?>

ну как минимум заменяем это на

  function get_country($id)
{
db_connect();
$query = ("SELECT c.iso AS iso, c.local_name AS local_name, ci.name AS name FROM countries AS c LEFT JOIN cities AS ci ON c.iso=ci.iso WHERE c.iso='$id' ");

$result = mysql_query($query);

$row = db_result_to_array($result);

return $row;

}

а вот это

function db_result_to_array($result) 
{
$res_array = array();

$count = 0;

while($row = mysql_fetch_array($result))
{
$res_array***91;$count***93; = $row;

$count++;
}

return $res_array;
}
на

function db_result_to_array($result) 
{
$res_array = array();

$count = 0;

while($row = mysql_fetch_assoc($result))
{
$res_array[$count]= $row;

$count++;
}

return $res_array;
}
WC
На сайте с 26.07.2013
Offline
10
#15
WebCreativo:
<?php

/*-----------------Подключение к базе данных----------------*/
function db_connect()
{
$host='localhost'; // имя хоста (уточняется у провайдера)
$database='data'; // имя базы данных, которую вы должны создать
$user='user'; // заданное вами имя пользователя, либо определенное провайдером
$pswd='123456'; // заданный вами пароль

$connection = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
mysql_query("SET NAMES utf8");
mysql_select_db($database) or die("Не могу подключиться к базе.");

return $connection;
}


/*-----------------////////////////////////----------------*/
/*-----------------Вывод стран на страницу страны----------------*/
function db_result_to_array($result)
{
$res_array = array();

$count = 0;

while($row = mysql_fetch_array($result))
{
$res_array[$count] = $row;

$count++;
}

return $res_array;
}


function get_countries()
{
db_connect();

$query = "SELECT * FROM countries";

$result = mysql_query($query);

$result = db_result_to_array($result);

return $result;
}

/*-----------------////////////////////////----------------*/

/*-----------------Вывод страны на страницу страны----------------*/

function get_country($id)
{
db_connect();

/* $query = ("SELECT * FROM countries WHERE iso='$id' "); */
$query = ("SELECT c.iso AS iso, c.local_name AS local_name, ci.name AS name FROM countries AS c LEFT JOIN cities AS ci ON c.iso=ci.iso WHERE c.iso='$id' ");

$result = mysql_query($query);

$row = mysql_fetch_array($result);

return $row;

}

/*-----------------////////////////////////----------------------*/

/*-----------------Вывод городов на страницу страны----------------*/
function get_city($id)
{
db_connect();

$query = ("SELECT * FROM cities WHERE name='$id' ");

$result = mysql_query($query);

$row = mysql_fetch_array($result);

return $row;

}

?>

Поля и параметр cities

id iso local_name type in_location geo_lat geo_lng db_id

1 AD Andorra CO NULL 42.50000000000 1.50000000000 AD

Поля и параметр countries

d iso local_name type in_location geo_lat geo_lng db_id

1 AD Andorra CO NULL 42.50000000000 1.50000000000 AD

---------- Добавлено 31.12.2013 в 04:07 ----------

bay_ebook:
ну как минимум заменяем это на

  function get_country($id)

{
db_connect();
$query = ("SELECT c.iso AS iso, c.local_name AS local_name, ci.name AS name FROM countries AS c LEFT JOIN cities AS ci ON c.iso=ci.iso WHERE c.iso='$id' ");

$result = mysql_query($query);

$row = db_result_to_array($result);

return $row;

}


а вот это
function db_result_to_array($result) 

{
$res_array = array();

$count = 0;

while($row = mysql_fetch_array($result))
{
$res_array***91;$count***93; = $row;

$count++;
}

return $res_array;
}
на

function db_result_to_array($result) 

{
$res_array = array();

$count = 0;

while($row = mysql_fetch_assoc($result))
{
$res_array[$count]= $row;

$count++;
}

return $res_array;
}

Сейчас заработало к странице страны делается выборка с ее городами. Большое вам спасибо за помощь.

Но теперь почему то перестало выводить параметры самой страны ее название <h1><?php echo $country['local_name']?></h1>

---------- Добавлено 31.12.2013 в 04:47 ----------

Еще раз спасибо за помощь, все заработало.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий