Forum Webscript.Ru

Программирование => PHP => Тема начата: Matold от 06 Апреля 2004, 18:27:38

Название: Заполнение массива данными из mySQL в цикле.
Отправлено: 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]
";

}

Название: Заполнение массива данными из mySQL в цикле.
Отправлено: Меняздесьдавнонет от 06 Апреля 2004, 18:37:01
при чем здесь заполнение массива?
можешь сказать, сообразительный друг мой?

вопрос не в том, что массив не заполняется, а в том, что ошибка у тебя в запросе.

Вообще, кто тебя учил писать на пхп?
какой-нибудь курепин, небось?
и на каком-нибудь допотомном пхп.
на новом эти каракули работать не будут
Название: Заполнение массива данными из mySQL в цикле.
Отправлено: ThE0ReTiC от 06 Апреля 2004, 18:38:11
Matold
а

print(mysql_error());

сделать религия не позволяет?
Название: Заполнение массива данными из mySQL в цикле.
Отправлено: Меняздесьдавнонет от 06 Апреля 2004, 18:41:42
и еще.
открою тебе стрррашную тайну.
то, что ты делаешь двумя запросами в цикле, можно делать одним запросом.
Это если не рассматривать полную бессмысленность начичия отдельной таблицы для текстов.
Название: Заполнение массива данными из mySQL в цикле.
Отправлено: Matold от 06 Апреля 2004, 19:14:24
To RomikChef

 
Цитировать
Это если не рассматривать полную бессмысленность начичия отдельной таблицы для текстов.

Насколько я знаю (из всяких форумов/ пособий по пхп) наличие текстов в др. таблице позволяет увеличить быстродеятельность форума (тк не все тексты надо загружать, показывая список тем).

 
Цитировать
то, что ты делаешь двумя запросами в цикле, можно делать одним запросом.
Вообще, кто тебя учил писать на пхп?
какой-нибудь курепин, небось?

А как сделать это одним запросом? А на пхп я самоучка, книжек мало, вот что могу, то и делаю, я не профф. программист и это не моя работа.
Название: Заполнение массива данными из mySQL в цикле.
Отправлено: Меняздесьдавнонет от 06 Апреля 2004, 19:53:35
Цитировать
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:
книжек мало

книжки не нужны.
в сети материала море.
начинай отсюда:
Название: Заполнение массива данными из mySQL в цикле.
Отправлено: Matold от 07 Апреля 2004, 01:11:00
ОГРОМНОЕ спасибо!