на строку
for ($city = current($city_array); $city; $city = next(city_array))
ругается так
Fatal error: Only variables can be passed by reference in Z:\home\test_site\www\create_table.php on line 11
Кусок кода где возникла ошибка
mysql_select_db('mysite', $global_dbh) or die ("Could not select database");
function add_new_country($dbh, $continent, $countryname, $city_array)
{
$country_query = "INSERT INTO country(continent, countryname) VALUES ('$continent', '$countryname')";
$result_id = mysql_query($country_query) or die($country_query . mysql_error());
if ($result_id)
{
$countryID = mysql_insert_id($dbh);
for ($city = current($city_array); $city; $city = next(city_array))
{
$city_query = "INSERT INTO city (countryID, cityname) VALUES ($countryID, '$city')";
mysql_query($city_query, $dbh) or die($city_query . mysql_error());
}
}
}
function populate_cities_db($dbh)
База открыта и выбрана. Помогите пожалуста разобраться.
![sad.gif](http://phpforum.ru/html/emoticons/sad.gif)
$dbh есть база с именем 'mysite'.
Спустя 26 минут, 51 секунда (23.03.2009 - 15:13) Kuliev написал(а):
Что то я не понял что эта за бред
PHP |
<? |
Спустя 5 минут, 18 секунд (23.03.2009 - 15:18) Andreydial написал(а):
С книги пример пишу. Рассматривается массив городов и перебором заносится в таблицу cityname по ячейке countryID.
Спустя 3 минуты, 19 секунд (23.03.2009 - 15:21) Andreydial написал(а):
Если написать так как ты показал, то ошибки выплывают такие
Warning: mysql_insert_id(): supplied argument is not a valid MySQL-Link resource in Z:\home\test_site\www\create_table.php on line 10
$countryID = mysql_insert_id($dbh);
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\test_site\www\create_table.php on line 15
INSERT INTO city (countryID, cityname) VALUES (, '')
mysql_query($city_query, $dbh) or die($city_query . mysql_error());
Это строки на какие ругается
Такие же ошибки возникают, когда просто удалить строку в котрой первоначально возникает ошибка. Но, если вторая ошибка (on line 15) частично мне понятна, то первая (on line 10) совсем нет.
Warning: mysql_insert_id(): supplied argument is not a valid MySQL-Link resource in Z:\home\test_site\www\create_table.php on line 10
$countryID = mysql_insert_id($dbh);
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\test_site\www\create_table.php on line 15
INSERT INTO city (countryID, cityname) VALUES (, '')
mysql_query($city_query, $dbh) or die($city_query . mysql_error());
Это строки на какие ругается
Такие же ошибки возникают, когда просто удалить строку в котрой первоначально возникает ошибка. Но, если вторая ошибка (on line 15) частично мне понятна, то первая (on line 10) совсем нет.
Спустя 4 минуты, 15 секунд (23.03.2009 - 15:26) waldicom написал(а):
Напиши просто, что ты хочешь сделать.
Спустя 23 секунды (23.03.2009 - 15:26) Kuliev написал(а):
Цитата (Andreydial @ 23.03.2009 - 12:18) |
С книги пример пишу. Рассматривается массив городов и перебором заносится в таблицу cityname по ячейке countryID. |
Сегодня была типа такой темы вот тебе пример!
PHP |
<? |
Спустя 3 минуты, 10 секунд (23.03.2009 - 15:29) Viking написал(а):
все гораздо проще
Цитата |
for ($city = current($city_array); $city; $city = next($city_array)) |
Спустя 40 секунд (23.03.2009 - 15:30) sergeiss написал(а):
Цитата (Kuliev @ 23.03.2009 - 15:13) | ||
Что то я не понял что эта за бред
|
Это не бред, а нормальное использование возможностей цикла for
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Вот только автор вопроса, похоже, забыл написать '$' у последнего city_array. Этот знак обязательно должен быть у имени переменной.
PS. В логику скрипта я лично не вникал.
PPS. А Викинг раньше написал
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 2 минуты, 42 секунды (23.03.2009 - 15:32) Andreydial написал(а):
Цитата (waldicom @ 23.03.2009 - 12:26) |
Напиши просто, что ты хочешь сделать. |
Есть база mysite, в ней две таблицы надо создать. В одной $continent и $countryname, в другой массив городов, связанный соответственно с континентов и страной. Часть текста
{
$countryID = mysql_insert_id($dbh);
for ($city = current($city_array); $city; $city = next(city_array))
для меня не понятна в принципе. Я так думаю что ошибка в
$countryID = mysql_insert_id($dbh);
писал $countryID = mysql_insert_id('mysite');
это же ведь одно и тоже, можеть неправильный синтаксис?
Спустя 2 минуты, 1 секунда (23.03.2009 - 15:34) Kuliev написал(а):
sergeiss
Это понятно, что это возможности цикла FOR, но автор содрал код с книжки, а вернее просто перелистал ее дальше середины и начал тупа перепечатывать КОД не поняв что к чему!
100 балов он даже незнаек что за функция current() и что она возвращает!
Это понятно, что это возможности цикла FOR, но автор содрал код с книжки, а вернее просто перелистал ее дальше середины и начал тупа перепечатывать КОД не поняв что к чему!
100 балов он даже незнаек что за функция current() и что она возвращает!
Спустя 3 минуты, 49 секунд (23.03.2009 - 15:38) twin написал(а):
Цитата |
Что то я не понял что эта за бред |
Более того, вот это больше на бред похоже:
PHP |
for ($i = 0; $i < count($city_array); $i++) |
потому что функция count() вызывается при каждой интерации цикла. Нужно бы сначала определить число, записать в переменную и потом уже подставлять в цикл.
Спустя 1 минута, 29 секунд (23.03.2009 - 15:40) Andreydial написал(а):
Спасибо Viking, Sergeiss, таки да слеп. Но теперь также возникает ошибка
Warning: mysql_insert_id(): supplied argument is not a valid MySQL-Link resource in Z:\home\test_site\www\create_table.php on line 10
$countryID = mysql_insert_id($dbh);
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\test_site\www\create_table.php on line 14
INSERT INTO city (countryID, cityname) VALUES (, 'Nairobi')
$city_query = "INSERT INTO city (countryID, cityname) VALUES ($countryID, '$city')";
mysql_query($city_query, $dbh) or die($city_query . mysql_error());
Но город уже вставил, значит все же ошибка в использовании
$countryID = mysql_insert_id($dbh);
потому как он не возвращает значение. Просто первый раз в первый класс, а в книге не очень понятно написано про mysql_insert_id
Warning: mysql_insert_id(): supplied argument is not a valid MySQL-Link resource in Z:\home\test_site\www\create_table.php on line 10
$countryID = mysql_insert_id($dbh);
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\test_site\www\create_table.php on line 14
INSERT INTO city (countryID, cityname) VALUES (, 'Nairobi')
$city_query = "INSERT INTO city (countryID, cityname) VALUES ($countryID, '$city')";
mysql_query($city_query, $dbh) or die($city_query . mysql_error());
Но город уже вставил, значит все же ошибка в использовании
$countryID = mysql_insert_id($dbh);
потому как он не возвращает значение. Просто первый раз в первый класс, а в книге не очень понятно написано про mysql_insert_id
Спустя 2 минуты, 25 секунд (23.03.2009 - 15:42) Andreydial написал(а):
Цитата (Kuliev @ 23.03.2009 - 12:34) |
sergeiss Это понятно, что это возможности цикла FOR, но автор содрал код с книжки, а вернее просто перелистал ее дальше середины и начал тупа перепечатывать КОД не поняв что к чему! 100 балов он даже незнаек что за функция current() и что она возвращает! |
Не надо оскорблений, я тебя не знаю ты меня, почему говоришь что я тупо стал первый попавшийся код писать.
Спустя 22 секунды (23.03.2009 - 15:43) Kuliev написал(а):
twin
Ну и что, что она вызывается при каждой итерацией, можешь ее использовать перед циклом она вернет тебе количество элементов!
В чем спор собственно?
Ну и что, что она вызывается при каждой итерацией, можешь ее использовать перед циклом она вернет тебе количество элементов!
В чем спор собственно?
Спустя 1 минута, 38 секунд (23.03.2009 - 15:44) Kuliev написал(а):
Andreydial
А я тебя и не оскорбляю, я же тебя не обозвал как нибудь и не послал!!!
Я выразил свое мнение по поводу твоего выложенного куска кода!
БЕЗ ОБИД!!!
А я тебя и не оскорбляю, я же тебя не обозвал как нибудь и не послал!!!
Я выразил свое мнение по поводу твоего выложенного куска кода!
БЕЗ ОБИД!!!
![huh.gif](http://phpforum.ru/html/emoticons/huh.gif)
Спустя 2 минуты, 3 секунды (23.03.2009 - 15:46) Grey написал(а):
PHP |
$countryID = mysql_insert_id($dbh); |
Это берет из базы id страны, после того как страна была занесена в базу после этого запроса:
PHP |
$country_query = "INSERT INTO country(continent, countryname) VALUES ('$continent', '$countryname')"; |
берется для того, чтобы записаться в базу в этом запросе:
PHP |
$city_query = "INSERT INTO city (countryID, cityname) VALUES ($countryID, '$city')"; |
а это
PHP |
mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:hometest_sitewwwcreate_table. |
всетки говорит о том что соединения с базой не получилось.
Спустя 2 минуты, 8 секунд (23.03.2009 - 15:48) twin написал(а):
Цитата |
В чем спор собственно? |
Спора никакого нет собственно, просто режет глаз неоптимальное применение функций. Может это косметика конечно, но как говорится: лучше делать хорошо, плохо оно само получится
![biggrin.gif](http://phpforum.ru/html/emoticons/biggrin.gif)
Спустя 37 секунд (23.03.2009 - 15:49) Kuliev написал(а):
Цитата (Andreydial @ 23.03.2009 - 12:32) |
Есть база mysite, в ней две таблицы надо создать. В одной $continent и $countryname, в другой массив городов, связанный соответственно с континентов и страной. |
А вот с это момента можешь по подробней, а то как то смутно представляю себе!
Спустя 2 минуты, 11 секунд (23.03.2009 - 15:51) twin написал(а):
Попробуй mysql_insert_id() без аргумента, она возвращает id последней записи.
Спустя 23 секунды (23.03.2009 - 15:52) Andreydial написал(а):
Цитата (Grey @ 23.03.2009 - 12:46) | ||||||||
Это берет из базы id страны, после того как страна была занесена в базу после этого запроса:
берется для того, чтобы записаться в базу в этом запросе:
а это
всетки говорит о том что соединения с базой не получилось. |
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\test_site\www\create_table.php on line 14
INSERT INTO city (countryID, cityname) VALUES (, 'Nairobi')
После слова VALUES вместо countryID пробел, те не присвоено значение countryID. А соединение с базой установлено, и таблицы обе созданы, я в PHPMyAdmin посмотрел, они есть, изначально их не было.
Спустя 2 минуты, 8 секунд (23.03.2009 - 15:54) Grey написал(а):
таблицы-то есть
А есть там поле id auto incremet?
и id будет выводиться только тогда когда что-то уже внесено в базу. При пустой таблице конечно не выведет.
А есть там поле id auto incremet?
и id будет выводиться только тогда когда что-то уже внесено в базу. При пустой таблице конечно не выведет.
Спустя 2 минуты, 26 секунд (23.03.2009 - 15:56) Kuliev написал(а):
Andreydial
А дамп базы можешь показать что там у тебя и какая структура???
А дамп базы можешь показать что там у тебя и какая структура???
Спустя 1 минута, 52 секунды (23.03.2009 - 15:58) Andreydial написал(а):
Цитата (Grey @ 23.03.2009 - 12:54) |
таблицы-то есть А есть там поле id auto incremet? и id будет выводиться только тогда когда что-то уже внесено в базу. При пустой таблице конечно не выведет. |
mysql_query("CREATE TABLE country (ID int not null auto_increment primary key, continent varchar(50), countryname varchar(50))", $dbh) or die(mysql_error());
mysql_query("CREATE TABLE city (ID int not null auto_increment primary key, countryID int not null, cityname varchar(50))", $dbh) or die(mysql_error());
Спустя 42 секунды (23.03.2009 - 15:59) sergeiss написал(а):
Цитата (Kuliev @ 23.03.2009 - 15:43) |
twin Ну и что, что она вызывается при каждой итерацией, можешь ее использовать перед циклом она вернет тебе количество элементов! В чем спор собственно? |
Проблема в том, что предложенный тобой вариант
PHP |
for ($i =0; $i < count ($arr); $i++) |
будет корректно работать только в ограниченном количестве случаев, когда строго выполняются несколько условий одновременно:
1. Индексы массива - целые числа от 0 и до максимума
2. В индексах нету пропусков.
Это хорошо в Си++, но не в ПХП. Потому что в ПХП могут быть и индексы пропущены (т.е. не сплошной цифровой ряд), и индексы могут быть вообще нецифровыми (называются ассоциативными).
Поэтому написанный автором темы цикл является более корректным (с учетом добавки знака $ в том месте, где он был пропущен).
Спустя 1 минута, 24 секунды (23.03.2009 - 16:00) Andreydial написал(а):
Цитата (twin @ 23.03.2009 - 12:51) |
Попробуй mysql_insert_id() без аргумента, она возвращает id последней записи. |
Теперь ошибка изменилась
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\test_site\www\create_table.php on line 14
INSERT INTO city (countryID, cityname) VALUES (1, 'Nairobi')
теперь VALUES стоит 1, но воз на месте.
Спустя 36 минут, 18 секунд (23.03.2009 - 16:36) Andreydial написал(а):
Таблицу страны заполняет первым значением континента и страны
$country_query = "INSERT INTO country(continent, countryname) VALUES ('$continent', '$countryname')";
$result_id = mysql_query($country_query) or die($country_query . mysql_error());
это проверено, есть записи в таблице,
а вот названия городов вносить не хочет. $countryID это переменная, которая ассоциирует массив городов с данной конкретной страной. Структура второй таблицы создана, те присутствует и ID и countryID, и cityname
$country_query = "INSERT INTO country(continent, countryname) VALUES ('$continent', '$countryname')";
$result_id = mysql_query($country_query) or die($country_query . mysql_error());
это проверено, есть записи в таблице,
а вот названия городов вносить не хочет. $countryID это переменная, которая ассоциирует массив городов с данной конкретной страной. Структура второй таблицы создана, те присутствует и ID и countryID, и cityname
Спустя 15 минут, 3 секунды (23.03.2009 - 16:51) sergeiss написал(а):
Покажи код, какой у тебя получился в итоге. Иначе сложно уже ориентироваться.
Спустя 6 минут, 25 секунд (23.03.2009 - 16:58) Andreydial написал(а):
Цитата (sergeiss @ 23.03.2009 - 13:51) |
Покажи код, какой у тебя получился в итоге. Иначе сложно уже ориентироваться. |
Я так понял весь, ибо он небольшой
<?php
$global_dbh = mysql_connect('localhost', 'root') or die ("Could not connect to database");
mysql_select_db('mysite2', $global_dbh) or die ("Could not select database");
function add_new_country($dbh, $continent, $countryname, $city_array)
{
$country_query = "INSERT INTO country(continent, countryname) VALUES ('$continent', '$countryname')";
$result_id = mysql_query($country_query) or die($country_query . mysql_error());
if ($result_id)
{
$countryID = mysql_insert_id($dbh);
for ($city = current($city_array); $city; $city = next($city_array))
{
$city_query = "INSERT INTO city (countryID, cityname) VALUES ($countryID, '$city')";
mysql_query($city_query, $dbh) or die($city_query . mysql_error());
}
}
}
function populate_cities_db($dbh)
//Уничтожить все таблицы, если они есть
{
mysql_query("DROP TABLE city", $dbh);
mysql_query("DROP TABLE country", $dbh);
//Создать таблицы
mysql_query("CREATE TABLE country (ID int not null auto_increment primary key, continent varchar(50), countryname varchar(50))", $dbh) or die(mysql_error());
mysql_query("CREATE TABLE city (ID int not null auto_increment primary key, countryID int not null, cityname varchar(50))", $dbh) or die(mysql_error());
//Ввести данные в таблицу
add_new_country('mysite2', 'Africa', 'Kenya', array('Nairobi', 'Mambasa', 'Maru'));
add_new_country('mysite2', 'South America', 'Brasil', array('Rio de Janeiro', 'Sao Paulo', 'Salvador', 'Belo Horisonte'));
add_new_country('mysite2', 'North America', 'USA', array('Chikago', 'New York', 'Houston', 'Miami'));
add_new_country('mysite2', 'Nort America', 'Canada', array('Montreal', 'Windsor', 'Winnipeg'));
print("Sample database created<br>");
}
?>
<html><head><title>Creating a sample database</title></head>
<body>
<?php populate_cities_db($global_dbh); ?>
</body>
</html>
Спустя 27 минут, 42 секунды (23.03.2009 - 17:26) sergeiss написал(а):
Если только попробовать поменять цикл
PHP |
for ($city = current($city_array); $city; $city = next($city_array)) |
на цикл
PHP |
foreach( $city_array as $k => $city ) |
сохранив при этом всё содержимое цикла.
У тебя же названия городов просто не вносятся, но ошибок нету?
Спустя 4 минуты, 17 секунд (23.03.2009 - 17:30) Andreydial написал(а):
Не, те же яйца
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\test_site\www\create_table.php on line 15
INSERT INTO city (countryID, cityname) VALUES (1, 'Nairobi')
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\test_site\www\create_table.php on line 15
INSERT INTO city (countryID, cityname) VALUES (1, 'Nairobi')
Спустя 6 минут, 55 секунд (23.03.2009 - 17:37) sergeiss написал(а):
Ну так ЁРПСТ!!!
Это что такое???
![mad.gif](http://phpforum.ru/html/emoticons/mad.gif)
![mad.gif](http://phpforum.ru/html/emoticons/mad.gif)
![mad.gif](http://phpforum.ru/html/emoticons/mad.gif)
Это что такое???
PHP |
add_new_country('mysite2', 'Africa', 'Kenya', array('Nairobi', 'Mambasa', 'Maru')); |
а должно быть так:
PHP |
add_new_country( $dbh, 'Africa', 'Kenya', array('Nairobi', 'Mambasa', 'Maru')); |
И так во всех строках с вызовом этой функции.
Спустя 7 минут, 46 секунд (23.03.2009 - 17:45) Andreydial написал(а):
УРА! Всем спасибо большое, без вас я бы все равно не разобрался! в строке
mysql_query($city_query, $dbh) or die($city_query . mysql_error());
параметр $dbh не нужен, ошибка в книге.
mysql_query($city_query, $dbh) or die($city_query . mysql_error());
параметр $dbh не нужен, ошибка в книге.
Спустя 1 минута, 53 секунды (23.03.2009 - 17:46) Andreydial написал(а):
Цитата (sergeiss @ 23.03.2009 - 14:37) | ||||
Ну так ЁРПСТ!!! ![]() ![]() ![]() Это что такое???
а должно быть так:
И так во всех строках с вызовом этой функции. |
Какая разница, я явно задал имя базы данных, а не через переменную. Хотя спасибо, надо теперь в первоначальный вид привести.
Спустя 10 минут, 8 секунд (23.03.2009 - 17:57) sergeiss написал(а):
Вот смотри. Ты передаешь как параметр УКАЗАТЕЛЬ на открытую БД, судя по использованию. Но при этом пытался передавать какую-то строку. Вот у тебя и была ошибка. И не важно, что это название "чего там".
Что касается второго параметра mysql_query($city_query, $dbh), то это не ошибка вовсе. Главное, чтобы параметр сам по себе правильный.
Что касается второго параметра mysql_query($city_query, $dbh), то это не ошибка вовсе. Главное, чтобы параметр сам по себе правильный.
Спустя 3 минуты, 16 секунд (23.03.2009 - 18:00) Andreydial написал(а):
Но почему тогда без $dbh скрипт работает и в таком виде
add_new_country($dbh, 'Africa', 'Kenya', array('Nairobi', 'Mambasa', 'Maru'));
и в таком виде
add_new_country('mysite2', 'Africa', 'Kenya', array('Nairobi', 'Mambasa', 'Maru'));
add_new_country($dbh, 'Africa', 'Kenya', array('Nairobi', 'Mambasa', 'Maru'));
и в таком виде
add_new_country('mysite2', 'Africa', 'Kenya', array('Nairobi', 'Mambasa', 'Maru'));
Спустя 4 минуты, 29 секунд (23.03.2009 - 18:04) sergeiss написал(а):
Потому что если ты исключаешь $dbh из вызовов mysql_query, то тогда обращаешься (по умолчание) к последней использованной открытой БД.
При этом первый параметр внутри функции add_new_country просто не используется!!!
Поэтому скрипт и работает.
При этом первый параметр внутри функции add_new_country просто не используется!!!
Поэтому скрипт и работает.
Спустя 5 минут, 13 секунд (23.03.2009 - 18:09) Andreydial написал(а):
Почему тогда в первоначальнов варианте (с $dbh) скрипт не работал ни в одно ни в другом варианте. Да и в книге первое обращение
$country_query = "INSERT INTO country(continent, countryname) VALUES ('$continent', '$countryname')";
$result_id = mysql_query($country_query) or die($country_query . mysql_error());
написано без $dbh, а второе с $dbh(которое ошибку давало).
В общем завтра продолжим общение, если не против, хотелось бы поставить точки и разобраться полностью, может я чего недопонял.
$country_query = "INSERT INTO country(continent, countryname) VALUES ('$continent', '$countryname')";
$result_id = mysql_query($country_query) or die($country_query . mysql_error());
написано без $dbh, а второе с $dbh(которое ошибку давало).
В общем завтра продолжим общение, если не против, хотелось бы поставить точки и разобраться полностью, может я чего недопонял.
Спустя 2 часа, 50 секунд (23.03.2009 - 20:10) sergeiss написал(а):
Для ответов на такие "почему" надо знать весь текст. Тот, который не работал. Целиком и полностью.
Но "надо" не означает, что кто-то будет в нем разбираться
Я предоставляю это почетное право тебе. Главное, что сейчас получили рабочий вариант. И уже исходя из него ты можешь самостоятельно проанализировать, найти и попытаться объяснить разницу. Это будет очень полезно с точки зрения изучения языка.
Но "надо" не означает, что кто-то будет в нем разбираться
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 15 часов, 7 минут, 17 секунд (24.03.2009 - 11:18) Andreydial написал(а):
Странно все это, сегодня и в первоначальном варианте все класно работает. Либо планеты не стали, либо я не знаю.
Спустя 1 день, 6 часов, 31 минута, 9 секунд (25.03.2009 - 17:49) DMX написал(а):
Не буду новую тему открывать, поэтому спрошу здесь, ибо вопрос по запросу. Есть таблица с именами юзеров и постов, т.е. каждому посту приписывается юзер. Как мне вывести из неё юзеров, чтобы они не повторялись? или всё же перейти на 2 таблицы?
Спустя 2 часа, 59 минут, 17 секунд (25.03.2009 - 20:48) Kuliev написал(а):
Цитата (DMX @ 25.03.2009 - 14:49) |
Не буду новую тему открывать, поэтому спрошу здесь, ибо вопрос по запросу. Есть таблица с именами юзеров и постов, т.е. каждому посту приписывается юзер. Как мне вывести из неё юзеров, чтобы они не повторялись? или всё же перейти на 2 таблицы? |
Я бы в 2 таблицы сделал! А потом запросом вытаскивал то что мне нужно!
Спустя 1 час, 33 минуты, 4 секунды (25.03.2009 - 22:21) sergeiss написал(а):
Цитата (DMX @ 25.03.2009 - 17:49) |
Не буду новую тему открывать, поэтому спрошу здесь.... |
Лучше впредь новую тему делай. Иначе каша будет, а не ответы. Особенно, если кто-то начнет отвечать не тебе, а "топикстартеру".
По сути вопроса - однозначно 2 таблицы.