Php & MySQL для начинающих.

Николя

Новичок
Всем привет! Я новичок, столкнулся вот с такой проблемой. Буду очень рад если кто-то чем-то поможет))
В итоге данного псевдоскрипта из базы выводятся все необходимые каталоги, а статьи только 2, что удивительно. Я конечно понимаю что так писать нельзя,
что данный скрипт хрень проще сказать, но необходим просто сейчас результат, ну а потом я возьму хорошую книгу и буду долбить. Помогите пжл!!!
З.ы. Забыл сказать какой результат то нужен: Скрипт должен Выводить все каталоги вместе со статьями которые им соответсвуют, поэтому я взял такой алгоритм
пробегать по каждому каталогу(раз цикл) и выводить статьи (два цикл) вообщем сам знаю что глупо не ругайте меня пжл)))

PHP:
<?php 
require_once("config/config.php");//Здесь устанавливается соединение с базой


//Выборка каталогов
$query = "SELECT * FROM catalog WHERE hide='show'";
$cat = mysql_query($query);

if (!$cat) {
 throw new ExceptionMySQL (mysql_error(), $query, "ошибка при выборке каталогов");
}
if (mysql_num_rows($cat) > 0)
{
	$catalogs = mysql_fetch_array($cat);
}
else {
echo "<p>Ошибка по запросу из базы каталогов.Нет записей в таблице</p>";
	exit();
}





$i=0;

	do {
		  //статьи выбираю
		$query2 = "SELECT * FROM articles WHERE id_catalog=$i";
		$art = mysql_query($query2);

			if (!$art) {
					echo "<p>запрос в базу не прошел</p>";
					exit(mysql_error());
				}


			 if (mysql_num_rows($art) > 0) {

				$articles = mysql_fetch_array($art);

				}
				else {
				echo "<p>Ошибка по запросу из базы.Нет записей в таблице</p>";//вот здесь ошибка. в $art фигня. 
				exit();
				}
				
			
					do {
				
					//здесь выводится необходимое

					}
					while ($articles = mysql_fetch_array($art));

			$i=$i+1;
					
		}
	while ($catalogs = mysql_fetch_array($cat));
?>
 

iceman

говнокодер
Я конечно понимаю что так писать нельзя, но необходим просто сейчас результат, ну а потом я возьму хорошую книгу и буду долбить.
если знаешь так пиши правильно, если не знаешь - читай про inner join
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
жертв сами знаете кого
становится все больше
 

Фанат

oncle terrible
Команда форума
интересно, что вот это hide='show' - из софттаймовских поделок.
 

Николя

Новичок
Ребят вы про Попова шоль? Нормальный человек если захочет серьезно этим заниматься пропустит эти курсы и обзоведется нормальной литературой.Блин, народ я ведь говорил, что да, я нуб. Так покажите мне нубу как данная задача решается, конкретный скрипт, объясните почему так делать нельзя, если вы действительно считаете себя компентетней Попова предложите валидный скрипт, а я и другие нубы посмотрим запомним и раберемся! Спасибо за внимание.
 

QQQ

Новичок
Николя
для начала объясни к чему такие изотерические циклы? тебе так реально читабельней?

во вторых нафига где-то бросаешь некое стрёмное исключение, а где-то echo + exit? (кстати есть функция die, ну да лан)

в третьих всё теоритически должно работать. смотри в базу, что там не так. если не получится, выводи больше отладочной инофрмации. хотя я сомневаюсь, что ты сам вообще этот скрипт писал..


зы: и да, как заметили выше, hide='show' это видимо следствие какой-то особой религиозности ;-)
 

Фанат

oncle terrible
Команда форума
проблема в том, что нам не нужно ничего доказывать. ни попову, ни тебе, ни себе.
проблема твоя понятна, но аргументация так себе.
так что показывать тебе что-либо ну совсем никакой мотивации.

проблема втоя в том, что
а) ты делаешь все не одним запросом.
б) и даже выполняемые порознь, они у тебя вообще никак не связаны.

сказали же - читай про джойн.
вместо жалоб давно уже нашел бы в нете что-нибудь популярное

SELECT * FROM catalog, articles WHERE id_catalog=catalog.id AND hide='show'

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

Николя

Новичок
мдааа...сколько я не просил кода на 3 строки так и не получил.
Вот и спросите себя какого хрена стоко народа по курсам Попова сидит псевдоскриптики пишет? Согласитесь приятней и наглядней сидеть в кресле со стаканом пива и смотреть всю ту фигню, что он рассказывает, чем ты заходишь на форум задаешь конкретный вопрос, а тебе "профи" вместо того чтобы конкретное решение дать шлют сравочку читать. Товарищи, я и без вас смогу и справочку почитать и книжечку, и то, что в php и sql я нуб, не значит что я не умею работать самостаятельно и находить решения, за все то время когда занимался разного рода технологиями я ни разу не зашел на форум и вот так не спросил. Я всегда подходил к делу серьезно, искал авторитетную литературу. Просто поймите, что нужно было конкретное решение задачи, штурмовать теорию у меня просто нет времени. И черт с ним с этим скриптом, блин, я же не сказал найдите мне ошибку я херню написал и сам не знаю где она? Ребят, если нет мотивации, ну и молчите тогда. А мне сразу ясен вашу уровень как специалистов. Все, спасибо за помощь, с проблемой раберусь сам, просто я сам виноват, такой наивный, ну думаю щас на форум зайду там ребята помогут, расскажут, покажут как надо, поругают. Последние вы только и сделали. Все хорошего!
 

Фанат

oncle terrible
Команда форума
ну, бывает.
не совпали подходы.
ничего страшного
 
Сверху