Не могу подключиться к БД после перезегрузки

KreAtoR

Новичок
Не могу подключиться к БД после перезегрузки

Загружаю странцу в один из фреймов главной страницы. При помощи _GET передаю параметры.
При загрузке страницы вызываются:
1. подсчитать кол-во объектов для вывода
2. вывести каждый объект

Для каждого объекта выводится кнопка для изменения переменной. После нажатия кнопки обработка посылается снова на эту же страницу. После перезагрузки страница получает переменные уже через _POST.

При загрузке страницы вызываются:
1. изменение переменной
2. подсчитать кол-во объектов для вывода
3. вывести каждый объект

Проблема

Если в первый раз я спокойно подключался к SQL , то после обработки подключиться не могу.
Подскажите как сделать правильно

если интересен код то вот:
 

DiMA

php.spb.ru
Команда форума
> если интересен код то вот:

ты для кого этот говнокод в говновиде запостил??
 

KreAtoR

Новичок
@DiMA
намек понял :)
это был мой первый пост. и изменить я его тоже не могу. второй раз не стал выкладывать.

PHP:
<?PHP
if (isset($_POST['gName'])){$gName = $_POST['gName'];} if ($gName == ""){unset($gName);}
if (isset($_POST['uId'])){$uId = $_POST['uId'];} if ($uId == ""){unset($uId);}
if (isset($_POST['dId'])){$dId = $_POST['dId'];} if ($dId == ""){unset($dId);}

if (!isset($uId)) {if (isset($_GET[uId])){$uId = $_GET[uId];} if ($uId == ""){unset($uId);};}
if (!isset($dId)) {if (isset($_GET[dId])){$dId = $_GET[dId];} if ($dId == ""){unset($dId);};}


////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
if (isset($gName) && isset($uId) && isset($dId)) {IncrementLevel($uId, $dId, $gName);}

$gCount = GebaudeCount();

while ($count <= $gCount){
	$count += 1;
	echo CreateTable($uId, $dId, $count);
	
}

////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////

function GebaudeCount(){
	[sql]include("block/bd.php");
	$result = mysql_query ("SELECT id FROM sGebaudeList",$db);
	$myrow = mysql_fetch_array($result);
[/sql]
	$count = 0;
	while ($myrow = mysql_fetch_array($result)){
		$count += 1;
	}
	return $count;
}


function IncrementLevel( $uId, $dId,$gName){
	[sql]include("block/bd.php");
	$uTable = "sUser".$uId."_gebaude";
	//echo "SELECT $gName FROM $uTable WHERE id ='$dId'";
	$result = mysql_query ("SELECT * FROM $uTable WHERE id ='$dId'",$db);
	$myrow = mysql_fetch_array($result);
	$gLevel = $myrow['$gName'];[/sql]
	$gLevel +=1;
	
[sql]$result = mysql_query ("UPDATE $uTable SET $bauSession='$gLevel'WHERE id ='$dId'");[/sql]	
}

function CreateTable($uId, $dId, $gId){
	[sql]include("block/bd.php");
	
	$result = mysql_query ("SELECT name FROM sGebaudeList WHERE id ='$gId'",$db);
	$myrow = mysql_fetch_array($result);[/sql]
	$gName = $myrow['name'];
	
	$uTable = "sUser".$uId."_gebaude";
	[sql]$result = mysql_query ("SELECT * FROM $uTable WHERE id ='$dId'",$db);
	$myrow = mysql_fetch_array($result);[/sql]
	$gLevel = $myrow[$gName];
	
	$gTable = "s".$gName;
	[sql]$result = mysql_query ("SELECT * FROM $gTable WHERE level ='$gLevel'",$db);
	$myrow = mysql_fetch_array($result);[/sql]
	
	return "<table border ='1'>
		<tr>
			<td><img src='$myrow[img]' width='50' height='50'alt='$myrow[desc]'></td>
			<td>$myrow[desc]</td>
			<td><u><b>Ausbaukosten fur die nachste Stufe:</b></u><br>
				<b>Geld: </b> $myrow[cost] <br>
				<b>Fundament: </b> $myrow[fund] <br>
				<b>Gold: </b> $myrow[gold] <br>
				<b>Zeit: </b> $myrow[zeit] <br>
				<b>Energie: </b> $myrow[zusatz] $myrow[energie]<br>
			</td>
			<td><center><b>Level: $gLevel</b><br>
				<form name='bauen' method ='post' action ='/php/addDorf.php'>
				<p><input value='$gName' type ='hidden' name ='gName' id ='gName'></p>
				<p><input value='$uId' type ='hidden' name ='uId' id ='uId'></p>
				<p><input value='$dId' type ='hidden' name ='dId' id ='dId'></p>
				<p><label><input value='Bauen' type ='submit' name ='submit' id ='submit'></label></p>
				</form>
			</td>
		</tr>

</table>";

}
?>
 

Фанат

oncle terrible
Команда форума
и в чем выражается это "подключиться не могу"? розетки нету?
 

KreAtoR

Новичок
@prolis

PHP:
<?php 
	$db = mysql_connect ("**********","*****","****");
	mysql_select_db("*****",$db);
?>
звездочки я специально поставил. bd.php работает. не первый сайт делаю с этой базой

@***** розетка то есть, найти не могу
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
KreAtoR
Можешь по-человечески сказать в чем проблемы?
 

KreAtoR

Новичок
@Mr_Max

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

Когда идет перезагрузка главной страницы(родителя) то все идет как по плану, но если я обновляю только фрейм, то не могу получить данные из базы данных. $result = NULL; хотя запрос в SQL проходит.

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

Я вообще не понимаю, к чему тут переменные и как они были получены. логически все построено правильно.

Я недавно сел за PHP и не могу решить эту проблему самостоятельно

-~{}~ 31.03.09 17:10:

у меня вообще сложилось впечатление, что страница просто не перезагружается.

С другой стороны при перезегрузке, код функций выполняется

ничего не понимаю, дребедень какая то!!!
 

Фанат

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

-~{}~ 31.03.09 17:20:

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

KreAtoR

Новичок
Итак.

Все уже перепробовал. Сейчас в каждой функции закоментировал include и прописал подключение к базе. Так работает.
Ставлю обратно include, не работает!!!

Вопрос почему не работает include при обновлении фрейма?????
 

Фанат

oncle terrible
Команда форума
рзбирайся.
к фреймам инклюд никакого отношения не имеет.

-~{}~ 31.03.09 17:41:

для людей, незнакомых с программированием, написан специально текст: http://www.phpfaq.ru/debug
Внимательно читаем, вникая как теоретическую часть, так и разбирая практические рекомендации.
Затем приименяем в своем случае.
 

prolis

Новичок
1. включи полное отображение ошибок - увидишь много чего интересного
2. вынеси инклуд коннекта из всех функций в общий код, заменив в функциях ссылку на глобальную переменную db, три коннекта в три раза дольше выполняются, чем один.
3. Почитай ман по SQL (mysql) - сильно изменит твое мировозрение.
PHP:
while ($myrow = mysql_fetch_array($result)){
        $count += 1;
    }
 
Сверху