Forum Webscript.Ru
Программирование => PHP => Тема начата: Matold от 06 Апреля 2004, 18:27:38
-
Вот написал для форума скрипт, который выводит тексты н форум "простыню", причем тексты в отдельной таблице (PostID|Text), однако заполнение массива $Row2 не происходит (Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource ), не могу понять причину :(
$Query = "SELECT * from $TableName WHERE PostArea = $area AND Parent = $parent ORDER BY PostDate ASC";
$Result = mysql_db_query ($DBName, $Query, $DBLink);
while ($Row = mysql_fetch_array ($Result)) {
$Query2 = "SELECT * from $TableName2 WHERE PostID = $Row[PostID]";
$Result2 = mysql_db_query ($DBName, $Query2, $DBLink);
$Row2 = mysql_fetch_array ($Result2);
echo "$Row2[Text]
";
}
-
при чем здесь заполнение массива?
можешь сказать, сообразительный друг мой?
вопрос не в том, что массив не заполняется, а в том, что ошибка у тебя в запросе.
Вообще, кто тебя учил писать на пхп?
какой-нибудь курепин, небось?
и на каком-нибудь допотомном пхп.
на новом эти каракули работать не будут
-
Matold
а
print(mysql_error());
сделать религия не позволяет?
-
и еще.
открою тебе стрррашную тайну.
то, что ты делаешь двумя запросами в цикле, можно делать одним запросом.
Это если не рассматривать полную бессмысленность начичия отдельной таблицы для текстов.
-
To RomikChef
Это если не рассматривать полную бессмысленность начичия отдельной таблицы для текстов.
Насколько я знаю (из всяких форумов/ пособий по пхп) наличие текстов в др. таблице позволяет увеличить быстродеятельность форума (тк не все тексты надо загружать, показывая список тем).
то, что ты делаешь двумя запросами в цикле, можно делать одним запросом.
Вообще, кто тебя учил писать на пхп?
какой-нибудь курепин, небось?
А как сделать это одним запросом? А на пхп я самоучка, книжек мало, вот что могу, то и делаю, я не профф. программист и это не моя работа.
-
Matold:
Насколько я знаю (из всяких форумов/ пособий по пхп)
к сожалению, хранение данных в базе никоим образом не относится к пхп :-)
Это относится к базам данных.
а из пособий/форумов по базам можно узнать, что они как раз и сделаны для того, чтобы раотать быстро независимо от структуры данных.
Matold:
А как сделать это одним запросом?
Если под каждым заголовком есть текст, то так:
SELECT * from $TableName,$TableName2 WHERE $TableName2.id=$TableName.id PostArea = $area AND Parent = $parent ORDER BY PostDate ASC
имена полей подставить собственные.
и еще
не используй mysql_db_query. ее уже исключили из состава пхп. и линк там нужен, как собаке пятая нога.
пиши mysql_query($query) or die (my_error());
а в функции my_error() пишешь вывод mysql_error() и $query, причем на рабочем сайте заменишь вывод на запись в лог-файл.
И индекс массива надо всегда писать в кавычках
не $Row[PostID] а $Row[\'PostID\']
Matold:
книжек мало
книжки не нужны.
в сети материала море.
начинай отсюда:
-
ОГРОМНОЕ спасибо!