PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 4
roman_php Отправлено: 21 Сентября, 2009 - 18:36:03 • Тема: Запрос к двум таблицам в базе (MySQL) • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 50
Viper пишет:
а как вы сделаете соответствие fio и username если у вас нет привязки ?

т.е. при составлении условия вам нужно будет ещё одно поле (к примеру userid) которое будет в обоих таблицах. тогда вы сможете точно знать что username bobik соответствует fio Бобик Татьяна Ивановна, а не Кошак Иван Иванович.

это чисто мое имхо. или я не прав ?


Вот я и не знаю, структуру базы указал, жду конкретной помощи
roman_php Отправлено: 20 Сентября, 2009 - 15:20:12 • Тема: Запрос к двум таблицам в базе (MySQL) • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 50
Доброго времени суток!
Я новичек во всех смыслах (PHP, MySQL), обращаюсь к вам за помощью.
Я делаю небольшую систему запросов пользователей к базе и присутствует необходимость выбирать определенные записи по датам.
По-порядку, есть база в ней две таблицы.
Первая:
CODE (text):
скопировать код в буфер обмена
  1. --
  2. -- Структура таблицы `user`
  3. --
  4.  
  5. CREATE TABLE IF NOT EXISTS `user` (
  6.   `id` int(4) NOT NULL auto_increment,
  7.   `username` varchar(255) NOT NULL,
  8.   `fio` varchar(255) NOT NULL,
  9.   `dolznost` varchar(255) NOT NULL,
  10.   PRIMARY KEY  (`id`)
  11. ) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=9 ;
  12.  


Вторая:
CODE (text):
скопировать код в буфер обмена
  1. --
  2. -- Структура таблицы `zapros`
  3. --
  4.  
  5. CREATE TABLE IF NOT EXISTS `zapros` (
  6.   `id` int(11) NOT NULL auto_increment,
  7.   `spec` varchar(255) NOT NULL,
  8.   `adres` text NOT NULL,
  9.   `obekt` varchar(255) NOT NULL,
  10.   `primech` text NOT NULL,
  11.   `datazaprosa` date NOT NULL,
  12.   PRIMARY KEY  (`id`)
  13. ) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=11 ;
  14.  


Я обращаюсь запросом к таблице "zapros" где $dateg - это дата передаваемая формой
CODE (text):
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM zapros WHERE datazaprosa = '$dateg'");

далее вывожу в цыкле все результаты которые соответствуют определенной даты ($dateg) и делаю из них таблицу
CODE (text):
скопировать код в буфер обмена
  1. <table width="90%" border="0" align="center">
  2.  <tr>
  3.  <td class="td1"><center>ФИО и должность специалиста</center></td>
  4.  <td class="td1"><center>Адрес объекта</center></td>
  5.  <td class="td1"><center>Наименование объекта</center></td>
  6.  <td class="td1"><center>Примечание</center></td>
  7.  <td class="td1"><center>Дата запроса</center></td>
  8.  </tr>
  9.   <?php
  10.   $myrow = mysql_fetch_row($result);
  11.   do{echo"<tr><td>$myrow[1]</td>
  12.   <td>$myrow[2]</td>
  13.   <td>$myrow[3]</td>";
  14.   if($myrow[4]!==""){echo"<td>$myrow[4]</td>";}else{echo"<td><font color='#FF0000'>нет</font></td>";}
  15.   echo"<td>$dates</td></tr>";}
  16.   while ($myrow = mysql_fetch_row($result));
  17.   ?>
  18. </table>


В элемент массива $myrow[1] попадают все поля "spec" из таблицы "zapros", но там такого вида например (gorelov, sorokina, sidorov и т.д.)
В таблице "user" есть поле "username" которое также имеет содержание с пользователями (gorelov, sorokina, sidorov и т.д.). Поле "fio" содержит полное Фамилие Имя Отчество пользователя.
Мне надо сделать такой запрос что бы из таблицы "zapros" выбирались поля spec`
`adres``obekt` `primech``datazaprosa`, а на место элемента массива в цикле подставлялись полные ФИО пользователей из таблицы "user" -> поля "fio"
Тоесть фактически нужно одним запросом выбрать разные поля из двух разных таблиц и вывести их в цикле где бы gorelov соотсетствовало Горелов Роман Геннадьевич полное ФИО.

Не предлогайте переделать структуру базы (это не приемлемо пока). Как можно это осуществить может не только запросом а средствами PHP.
Помогите пожалуйста, очень надеюсь на ващу помощь
(Добавление)
Что, ни кто не поможет?
roman_php Отправлено: 21 Января, 2008 - 17:34:46 • Тема: помогите с запросом update • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 44
Всем огромное спасибо, я понял свою ошибку!!!
roman_php Отправлено: 21 Января, 2008 - 14:25:05 • Тема: помогите с запросом update • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 44
Доброго времени суток. Помогите, пожалуйста, разобраться с запросом «update» к базе mysql.
Я делаю скрипт новостей и дошел до того момента, где в админе есть возможность редактировать новость (тоесть по идее обновлять «update» строку в базе по индификатору)
CODE (text):
скопировать код в буфер обмена
  1. <?php
  2. $tema=$_POST['temanew'];//отредактированная тема
  3. $opis=$_POST['opisanie'];//отредактируемое описание
  4. $text=$_POST['textnew'];//отредактированный текст новости
  5. $id=$_POST['id'];//индификатор новости (указывает на строку в MySQL)
  6. //функция поключения к базе MySQL и выбора бызы
  7. function db_connect($host="localhost",$name_db="forma",$user_db="root",$pass_db="motorola")
  8. {mysql_connect($host, $user_db, $pass_db)or die
  9. ('I cannot connect to db: ' . mysql_error());
  10. //это что бы понимало русскую кодировку
  11. mysql_query("set character_set_client='cp1251'");
  12. mysql_query("set character_set_results='cp1251'");
  13. mysql_query("set collation_connection='cp1251_general_ci'");
  14. //выбрать базу данных
  15. mysql_select_db($name_db);}
  16. db_connect();
  17. mysql_query("UPDATE forma SET (id_name='$tema', opisanie_new='$opis', text_new='$text')
  18. WHERE news_id=$id") or die("Ошибка запроса : " . mysql_error());
  19. ?>
  20.  

Из формы передаются обновленные пользователем данные методом POST и записываются в переменные $tema, $opis, $text, а $id это уникальный индификатор поля в которой надо произвести изменения.
Почему то не получается запрос к базе: mysql_query("UPDATE forma SET(id_name='$tema', opisanie_new='$opis', text_new='$text')
WHERE news_id=$id") or die("Ошибка запроса : " . mysql_error());
То ли я не понял как обновлять с update, то ли мануал по MySQL такой хороший.
Помогите пожалуйста сделать правильный запрос к базе «forma» таблице «news», что бы обновить данные и вставить в таблицу обновленную инфу которая содержится в переменных $tema, $opis, $text, обновить нужно строку с уникальным индификатором $id.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB