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

  • Автор темы Автор темы KreAtoR
  • Дата начала Дата начала

KreAtoR

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

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

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

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

Проблема

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

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

ты для кого этот говнокод в говновиде запостил??
 
@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>";

}
?>
 
и в чем выражается это "подключиться не могу"? розетки нету?
 
@prolis

PHP:
<?php 
	$db = mysql_connect ("**********","*****","****");
	mysql_select_db("*****",$db);
?>

звездочки я специально поставил. bd.php работает. не первый сайт делаю с этой базой

@***** розетка то есть, найти не могу
 
KreAtoR
Можешь по-человечески сказать в чем проблемы?
 
@Mr_Max

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

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

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

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

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

-~{}~ 31.03.09 17:10:

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

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

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

-~{}~ 31.03.09 17:20:

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

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

Вопрос почему не работает include при обновлении фрейма?????
 
рзбирайся.
к фреймам инклюд никакого отношения не имеет.

-~{}~ 31.03.09 17:41:

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