таблицы справочники

V1taliy

Новичок
таблицы справочники

Всем привет! появился такой вопросик!

есть оперативная таблица

CREATE TABLE `komp` (
`komp` varchar( 40 ) NOT NULL, `C_firm` int( 3 ) NOT NULL,`C_name` int( 3 ) NOT NULL)



есть две таблицы справочника

CREATE TABLE `firm` (
`C_firm` int( 3 ) NOT NULL, `firm` varchar( 40 ) NOT NULL)



CREATE TABLE `name` (
`C_name` int( 3 ) NOT NULL, `name` varchar( 40 ) NOT NULL)



как мне сделать что бы в полях основной таблицы C_firm и C_name отображались значения из таблиц справочников firm и name соотвецтвенно!

Раньше работал на foxpro и я понимаю что нужно связывать по ключам но как конкретно не могу понять! поэтому прошу вас отписать код как в моем случае сделать ключи и обьеденить таблицы!!! Заранее благодарен
 

V1taliy

Новичок
join присоединяет поля таблиц а не выводит на экран вместо значений поля из оперативной таблицы C_firm и C_name значения из справочника `firm` и `name`
 

dimagolov

Новичок
V1taliy, что ты напишешь в перечне полей в SELECT, то оно и отберет.
 

V1taliy

Новичок
dimagolov
напишите пожалуйста код програмы я не совсем понимаю что вы имеете в виду! в этом деле я новечек
 

V1taliy

Новичок
dimagolov

тут немного другое! да вы правы мне нужно выделять все таблицы но ведь они должны быть связаны по ключу.
в таблице `komp` у меня одно поле `komp`это просто текстовое поле, а два других это коды фирм и названий из таблиц справочников! я понимаю что при выводе на экран нужно выделять все таблицы но разви не нужно по ключу связывать поле справочника C_firm и C_name с полями оперативной таблицы C_firm и C_name?
 

dimagolov

Новичок
но разви не нужно по ключу связывать поле справочника C_firm и C_name с полями оперативной таблицы C_firm и C_name
вот для этого и придумали join:
INNER JOIN `firm` ON `komp`.`C_firm` = `firm`.`C_firm`
 

V1taliy

Новичок
dimagolov
А я могу сделать вот так?

SELECT `komp`, `firm`, `name` FROM `komp` JOIN `firm` USING(`C_firm`) JOIN `name` USING(`C_name`);
 

V1taliy

Новичок
будте добры опишете тогда, раз вы не используете такой синтексис, код по которому я могу вывести все записи на кран

//сначала нужно подключиться к серверу
$connection=mysql_connect("MODEL", "root", "");
if (!$connection) {die('Нет соединения : ' . mysql_error());}
//затем выбрать бд
$db_selected = mysql_select_db($DBName, $connection);
if (!$db_selected) {die ('Невозможно использовать БД : ' . mysql_error());}

опишите пожалуйста дальнейшие действия по выводу на экран в виде итоговой таблицы! Буду вам очень признателен
 

V1taliy

Новичок
ОК! БОЛЬШОЕ СПАСИБО!

-~{}~ 28.03.10 13:40:

dimagolov

теперь вопрос по формам!

могу ли я создав форму обрабатывать ее на этой же страницы или обработчик должен быть в другом файле!

вот мой пример

Код:
<FONT size="3" COLOR="100088">
<form action="" method=post>
<div align="center">
              <br />Введите ваше имя<br />
              <input type="text" name="name" size="40">
              <br />
              <br />Введите ваш email<br />
              <input type="text" name="email" size="40">
              <br />
	      <br />Введите название фирмы<br/> для добавления в список фирм <br />
              <input type="text" name="firm" size="40">
              <br />
              <br /><input type="submit" value="Отправить" name="submit">
</div>
</form>
<Center>            
<?
if($_POST['submit'])
{
echo'<FONT size="4" COLOR="#FF0000">';
if(empty($_POST['name'])){print('Ошибка: Введите свое имя.');print"<p>";
$err1=1;}
else{$err1=0;}
if(empty($_POST['firm'])){print('Ошибка: Введите название фирмы.');print"<p>";$err=21;}
else{$err2=0;}
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email'])){print('Ошибка: Введите корректный Email.');print"<p>";$err3=1;}
else{$err3=0;}
$rez=$err1+$err2+$err3;
if($rez==0)
{
include("connect.php");
$firm=$_POST['firm'];	

$Query = "INSERT INTO firm (firm) VALUES ('$firm')";

$result = mysql_query($Query);
if (!$result) 
{
       die('Неверный запрос: ' . mysql_error());
} 

$Tema='Модели мобильных телефонов';
$mess = 'В таблицу спавочник firm (фирма) добавленна новая фирма ';
$from=$_POST['name'];
$to = '[email protected]';
mail($to, $Tema, $mess, "От:".$from);
if ($result){	
   echo'<FONT size="4" COLOR="#006400">';
   print"Указанная вами фирма внесена в список фирм.";
   print"<p>";
   print"Сообщение о добавление данных отправлено администрации сайта.";
   print"<p>";
   print"После проверки  фирма будет внесена в форму для добавления моделей телефонов. ";
mysql_close(); 
}   
}
}
?>
</Center>
 

V1taliy

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

V1taliy

Новичок
теорию я читал! вроде все так и должно быть! просто просил вас опытным взглядом посмотреть а то проверить в живую не могу
 

dimagolov

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

V1taliy

Новичок
вторую ссылку я читал! первая не рабочая! что ты имеешь ввиду под враньем! я попросил посмотреть правильно ли я сделал отправку email так как я не уверен в ее правильности, причем тут вранье?

-~{}~ 29.03.10 14:57:

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

http://www.php.su/functions/?mail
http://www.php-mail.ru/?id=2
http://phpclub.ru/detail/article/mail
этим статьям, ты мне дал неработающую ссылку и ссылку в которой даже синтаксиса этой функции нет и при этом ты мне говоришь про вранье! я адекватный человек и попросил ответить на простой вопрос так как считаю что ты понимаешь в этом а я занимаюсь само учением!
 

dimagolov

Новичок
V1taliy, там у меня опечатка в имени домена. можно было и догадаться какая именно.

про вранье. конкретно:
http://phpfaq.ru/mail:
Если же ну прямо так уж хочется эмулировать отправку "настоящего" емейла - с заголовком, адресом отправителя и так далее, то все данные из формы, которые вставляются не в текст сообщения, следует обязательно проверить на наличие символов "\r" и "\n"!
И при наличии таких символов письмо не отправлять.
Твой код:
PHP:
$from=$_POST['name'];
$to = '[email protected]';
mail($to, $Tema, $mess, "От:".$from);
Очевидно игнорирование требования статьи, то есть ты даже если и прочитал, то проигнорировал то, что там написано. Так адекватные люди не поступают.
 
Сверху