Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Что я делаю не так?


Автор: i... 17.3.2005, 16:40
Код
<?
require_once "connect.php";

$result = mysql_query("SELECT * FROM tours")
  or die(mysql_error());
for ($data=array(); $row=mysql_fetch_assoc($result); $data[]=$row);

$dc = mysql_query("SELECT idC FROM tCountry")
   or die(mysql_error());
for ($dataCountry=array(); $row=mysql_fetch_assoc($dc); $dataCountry[]=$row);

for ($i=0; $i<count($data); $i++) {
 $cd = $data[$i]["country"];
 $country = $dataCountry["$cd"]["idC"];
 echo "Страна: ".$cd." --> Номер: ".$country."<br>";
}
?>



Пытаюсь нормализовать таблицы. А именно, у меня в табличке tours одно из полей country содержит название страны. А нафига?! Да нефига ему там делать! Нужно взять это название страны, найти его в табличке tCountry и выдать его номер(идентификатор). Пишу... См. выше. А он мне фигу! Только название страны и пишет. Видимо, не так пишу! Как надо правильно писать? Знаю другой способ, он работает, но очень тормозной. Хочу научиться писать рационально.

Заранее благодарен.

Автор: -=Ustas=- 17.3.2005, 18:01
По-моему там у тебя вообще бутор какой-то, а не проще ли вот так:
Код

require_once "connect.php";

$sql = "SELECT id, Country FROM your_table";
$res = mysql_query($sql) or die('...');

while ($data = mysql_fetch_array($res)) {
    echo "Страна: ".$data['Country']."--> Номер: ".$data['id']."<br>";
}

Автор: penizillin 17.3.2005, 21:52
i...: а почему не объединить данные еще на уровне sql-запроса?

Автор: i... 18.3.2005, 07:32
Цитата(Ustas_007 @ 17.3.2005, 18:01)
По-моему там у тебя вообще бутор какой-то, а не проще ли вот так:
Код

require_once "connect.php";

$sql = "SELECT id, Country FROM your_table";
$res = mysql_query($sql) or die('...');

while ($data = mysql_fetch_array($res)) {
    echo "Страна: ".$data['Country']."--> Номер: ".$data['id']."<br>";
}

А Вы читали вопрос? По-моему это у Вас теперь бутор какой-то! Я вывод написал для того, чтобы проверить правильно работает или нет.
Добавлено @ 07:33
Цитата(penizillin @ 17.3.2005, 21:52)
i...: а почему не объединить данные еще на уровне sql-запроса?

А как это сделать?

Автор: penizillin 18.3.2005, 18:24
JOIN

Автор: i... 19.3.2005, 16:41
Цитата(penizillin @ 18.3.2005, 18:24)
JOIN

Большое спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)