Не иска да ми прави таблици в BD-тата

RG_PankO

Registered
Моля за помощ.
Не мога да се оправя - защо не иска да прави таблици в базите данни?


Малко обяснение - 1во вади всички бдта, после дава формичка за направа на нова бд, после има формичка за изтриване на съществуваща бд и после вече идва формичка в която пита с колко колони ще е таблицата, а ако я попълним се обновява и вади толкова полета, колкото колони сме казали + такова да попълним името на таблицата и в коя бд ест.
Ако попълня грешна бд към която да се конектне вади грешка (в смисъл, вади msg-a че не се връзва), което е добре, но въпреки, че се конектва не иска да прави таблицата.
Насочете се към кода на create table...

Благодаря!
Код:
<html>
	<head>
		<title>
			Създаване на BD
		</title>
	</head>
	<body>

<?php
	$link = mysql_connect('localhost', 'anito@panito');
	if (!$link)
	{
		die('Could not connect: ' . mysql_error());
	}
	$self = $_SERVER['PHP_SELF'];
	
	$cime = $_REQUEST['cdb'];
	if($cime != "" and $eime != $cime)
	{
		$csql = 'CREATE DATABASE '. $cime;
		if (mysql_query($csql, $link))
		{
			echo "Готова е базата данни с име ". $cime.".";
		}
		else
		{
			echo 'Error creating database: ' . mysql_error() . "\n";
		}
	}

	$eime = $_REQUEST['edb'];
	if($eime != "" and $eime != $cime)
	{
		$esql = 'DROP DATABASE '. $eime;
		if (mysql_query($esql, $link))
		{
			echo "Беше изтрита базата данни с име ". $eime.".";
		}
		else
		{
			echo 'Error creating database: ' . mysql_error() . "\n";
		}
	}
	
	if (!$edb and !$cdb)
	{
	$msg = "Моля, въведете име в едното от двете полета!";
	}
	
	$rez2 = @mysql_list_dbs( $link );
	$spisyk = "";
	for ($row = 0; $row < mysql_num_rows($rez2); $row++)
	{ 
		$spisyk .= mysql_tablename( $rez2, $row) . " - ";
	}
	echo("
		<form action=\"$self\" method=\"post\">
		<b>Бази данни: $spisyk </b><hr><br> $msg <br><br>
		Направи база данни с име: <input type=\"text\" name=\"cdb\"><br>
		          
		          
		          
						    
		<input type=\"submit\" value=\"Създаване на базата данни\"><br><br>
				Изтриване база данни с име: <input type=\"text\" name=\"edb\"><br>
		          
		          
		          
		          
								  
		<input type=\"submit\" value=\"Изтрий базата данни\">
		</form>
		<hr>
		<b>Ако искам да правя таблица в някоя от базите!</b><br><br>");
		
		$poleta = $_POST['poleta'];
		$bazi = $_POST['bazi'];
		$ime2 = $_POST['ime2'];
		$tablica = $_POST['tablica'];
		$tip = $_POST['tip'];
		$razmer = $_POST['razmer'];
		
		if( !$poleta and !$bazi)
		{
			$form = "<form action=\"$self\" method=\"post\">";
			$form .= "Колко ще бъдат полетата в новата таблица?";
			$form .="<br><input type=\"text\" name=\"poleta\">";
			$form .="<br><input type=\"submit\" value=\"Приеми\">";
			echo($form);
		}
		else if(!$bazi)
		{
			$form ="<form action=\"$self\" method=\"post\">";
			$form .="База данни:      
			<input type=\"text\" name=\"bazi\"><br>";
			$form .="Име на таблицата:   <input type=\"text\" name=\"tablici\" size=\"10\"><br><br>";
			for($i = 0; $i< $poleta; $i++)
			{
				$form .="Име на колона:
					<input type=\"text\" name=\"ime2[$i]\" size=\"10\"><br>";
				$form .="Тип:<select name=\"tip[$i]\">";
				$form .="<option value\"varchar\">varchar</option>";
				$form .="<option value\"int\">int</option>";
				$form .="<option value\"float\">float</option>";
				$form .="</select>";
				$form .="Размер:<input type=\"text\" name=\"razmer[$i]\" size=\"8\"><br><br>";
			}
			$form .="<input type=\"submit\" value=\"Приеми\"></form>";
			echo($form);
		}
		else
		{
			$rs = @mysql_select_db($bazi, $link)
			or die ("Не стаа батка, не мое се селектира тъпата база данни, това е от 2рия формуляр.");
			$num_columns = count($ime2);
			$ctable = 'CREATE TABLE '. $tablica;
			for( $t = 0; $t < num_columns; $t++)
			{
				$ctable .="$ime2[$t] $tip[$t]";
				if(($tip[$t]=="char") or ($tip[$t] =="varchar"))
				{
					if($razmer[$t] != "")
					{
						$ctable .= "(razmer[$t])";
					}
					if(($t+1) != $num_columns)
					{
						$ctable .=", ";
					}
				}
				$ctable.=")";
				echo('SQL COMMAND: $ctable <hr>');
				$rezultat = mysql_query($ctable, $link)
				or die("Не може да изпълни query-то!");
				if($result)
				{
					echo("EESULT: table ".$tablica."has been created");
				}
				else
				{
					echo("me stawaaa");
				}
			}
		}
?>
		
	</body>
</html>
 
Aз си намерих 2 -3 гершки, но не оправят проблема.
Бях забравил 3 =-та, но не се оправи след като ги сложих.
 
т.е. проблема ти е при часта с въвеждането на таблиците.
При въвеждане на несъществуваща база искаш хем да създаде базата хем да създаде и таблицата ?

не ми се разглежда сега кода а и нямам време..
накратко при часта
$rs = @mysql_select_db($bazi, $link)
or die ("Не стаа батка, не мое се селектира тъпата база данни, това е от 2рия формуляр.");
го направи нещо такова:
if(!@mysql_select_db($bazi, $link)){ mysql_query('CREATE DATABASE '. $bazi); }

..
 
Егати оспамването...
1вия пич още се учи и искада помогне, въпреки, че не го прави, а 2рия ми казва, че не му се занимава...
Не пишете заядливи забележки или ненужни коментари.
Колкото и червено да е - трябва да се добави и
Не пишете, ако не мислите, че ще сте в помощ на автора.
 
Сегам..
преди да се караш...
ПРЕПИСВАЙ от книжката ти като хората...
Имаш толкова грешки ,че си нямаш и представа...

като за начало:
for( $t = 0; $t < num_columns; $t++)
what ? num_columns хитро..
може би му липсва едно $

2ро:
$form .="<option value\"varchar\">varchar</option>";
$form .="<option value\"int\">int</option>";
$form .="<option value\"float\">float</option>";

интересно..сега земи седни си научи и html ...
3то:
echo('SQL COMMAND: $ctable <hr>');
интересно това няма ли да върне .. ооо да SQL COMMAND: $ctable
и чакай да си видиш заявката.

4то:
$rezultat = mysql_query($ctable, $link)
...
if($result)

интересно..

сега - следи си хубавата темичка в датата и се кефи.
 

Back
Горе