Нужно сделать клиентскую базу, чтоб выводилась информации о компании и одновременно можно было бы ее обновить, если внесены обновленные данные.
У меня есть две таблицы:
base - хранится список компаний, адреса, телефоны
`ID` bigint(20) default NULL,
`created` date NOT NULL default '0000-00-00',
`company` text NOT NULL,
`adres` text NOT NULL,
`phone` text NOT NULL,
`vid` text NOT NULL,
`filial` text NOT NULL,
`plan` varchar(500) NOT NULL,
`meneger` text NOT NULL
contact - сотрудники компании
`ID` bigint(20) default NULL,
`fio` text NOT NULL,
`dol` text NOT NULL,
`phone` text NOT NULL,
`comment` text NOT NULL
Вывожу карточку компании:
<?php include 'config.php';
error_reporting(E_ALL & ~E_NOTICE);
// Далее поплыли в запрос
$id = htmlspecialchars(trim($_GET['id']));
// Проверка, пустая или нет, существует иль жэ нет
$company = mysql_query("SELECT * FROM `base`, `contact` WHERE base.id = '$id' LIMIT 1");
while($row = mysql_fetch_assoc($company))
{
?>
<form action="base.php?id=<?php echo $id; ?>" method="post" name="edit_form">
<input type="hidden" name="update" value='<?php echo $id; ?>' />
<img src="images/menu.jpg">
<p class="node"><a href="/index.php">Главная</a> / <?php echo $row[company]; ?></p>
<Div id="left">
<table class="base" cellspacing="0" cellpadding="0" border="0">
<tr>
<td class="l" alt="Название, ООО">Название</td>
<td class="r"><input name='company' value='<?php echo $row[company]; ?>'></td>
</tr>
<tr class="black">
<td class="l" alt="Название улицы, № дома, офиса">Адрес</td>
<td class="r"><input name='adres' value='<?php echo $row[adres]; ?>'></td>
</tr>
<tr>
<td class="l" alt="222-22-22, 222-22-23">Телефон</td>
<td class="r"><input name='pphone' value='<?php echo $row[phone]; ?>'></td>
</tr>
<tr class="black">
<td class="l" alt="Чем занимается">Вид деятельности</td>
<td class="r"><input name='vid' value='<?php echo $row[vid]; ?>'></td>
</tr>
<tr>
<td class="l" alt="Названия филиалов">Филиалы</td>
<td class="r"><input name='filial' value='<?php echo $row[filial]; ?>'></td>
</tr>
<tr class="black">
<td class="plan" alt="Что будем делать с данной организацией"><span><b>План действий</b><span></td>
<td class="r"><input class='plan' name='plan' value='<?php echo $row[plan]; ?>'></td>
</tr>
</table>
<?php
}
$query = "UPDATE `base` SET `company`='$company' WHERE id='id';
?>
<input type="submit" value="Отправить" name="submit_edit">
</form>
<a class="block" href="#"><p class="slide">Описание</p></a>
<div class="panel2" id="block">
<TABLE class="opisanie" cellspacing="0" cellpadding="0" border="0" width="100%">
<TR class="black">
<TD class="l"><span style="padding-left:7px;"><b>Дата</b></span></TD>
<TD class="right"><b>Описание</b></TD>
</TR>
<?php
// Проверка, пустая или нет, существует иль жэ нет
$opisanie = mysql_query("SELECT * FROM `base`, `hod` WHERE base.id = '$id' AND base.id = hod.id ORDER by DATE ASC");
while($row = mysql_fetch_assoc($opisanie))
{
?>
<TR>
<TD class="date"><input name='date' value='<?php echo $row[date]; ?>'></TD>
<TD class="r"><textarea name='opisanie' /> <?php echo $row[opisanie]; ?> </textarea></TD>
</TR>
<?php
}
?>
Выводит данные отлично, а вот записывать изменения не хочет.
Подскажите пожалуйста, как сделать обновление измененных данных.
Спустя 38 минут, 14 секунд (10.07.2011 - 13:38) Invis1ble написал(а):
Цитата |
Подскажите пожалуйста, как сделать обновление измененных данных. |
наверно после
Цитата |
$query = "UPDATE `base` SET `company`='$company' WHERE id='id'; |
нужно выполнить запрос? ;)
mysql_query($query);
Спустя 12 минут, 44 секунды (10.07.2011 - 13:51) Гость_Игорь написал(а):
не совсем понял, если написать:
не работает
если
тоже не работает.
А вообще функция обновления UPDATE находится в правильном месте кода, или она должна стоять перед выводом данных?
Сначала UPDATE
а потом Select или у меня правильный порядок?
<?php
}
$query = "UPDATE `base` SET `company`='$company' WHERE id='id';
mysql_query($query);
?>
не работает
если
<?php
}
mysql_query("UPDATE `base` SET `company`='$company' WHERE id='id');
?>
тоже не работает.
А вообще функция обновления UPDATE находится в правильном месте кода, или она должна стоять перед выводом данных?
Сначала UPDATE
а потом Select или у меня правильный порядок?
Спустя 1 минута, 31 секунда (10.07.2011 - 13:52) Winston написал(а):
$query = "UPDATE `base` SET `company`='".$company."' WHERE id=".(int)$id;
mysql_query($query);
Спустя 4 минуты, 12 секунд (10.07.2011 - 13:56) Гость_Игорь написал(а):
не работает
Спустя 3 минуты, 53 секунды (10.07.2011 - 14:00) Гость_Игорь написал(а):
меняет название компании на Resource id #4
Спустя 18 минут, 39 секунд (10.07.2011 - 14:19) Гость_Игорь написал(а):
Получилось:
поменял код
на
и поставил его перед запросом на вывод информации из базы.
полный код:
поменял код
$query = "UPDATE `base` SET `company`='".$company."' WHERE id=".(int)$id;
mysql_query($query);
на
if (!isset($_POST['save'])) {
# Принимаем данные из формы
$company = isset($_POST['company'])?$_POST['company']:NULL;
mysql_query("UPDATE `base` SET `company`='".$company."' WHERE id=".(int)$id);
}
и поставил его перед запросом на вывод информации из базы.
полный код:
<?php include 'config.php';
error_reporting(E_ALL & ~E_NOTICE);
// Далее поплыли в запрос
$id = htmlspecialchars(trim($_GET['id']));
/* Если была нажата кнопка редактирования, вносим изменения */
if (!isset($_POST['save'])) {
# Принимаем данные из формы
$company = isset($_POST['company'])?$_POST['company']:NULL;
mysql_query("UPDATE `base` SET `company`='".$company."' WHERE id=".(int)$id);
// Проверка, пустая или нет, существует иль жэ нет
$company = mysql_query("SELECT * FROM `base`, `contact` WHERE base.id = '$id' LIMIT 1");
while($row = mysql_fetch_assoc($company))
{
?>
<form action="base.php?id=<?php echo $id; ?>" method="post" name="edit_form">
<input type="hidden" name="update" value='<?php echo $id; ?>' />
<img src="images/menu.jpg">
<p class="node"><a href="/index.php">Главная</a> / <?php echo $row[company]; ?></p>
<Div id="left">
<table class="base" cellspacing="0" cellpadding="0" border="0">
<tr>
<td class="l" alt="Название, ООО">Название</td>
<td class="r"><input name='company' value='<?php echo $row[company]; ?>'></td>
</tr>
<tr class="black">
<td class="l" alt="Название улицы, № дома, офиса">Адрес</td>
<td class="r"><input name='adres' value='<?php echo $row[adres]; ?>'></td>
</tr>
<tr>
<td class="l" alt="222-22-22, 222-22-23">Телефон</td>
<td class="r"><input name='pphone' value='<?php echo $row[phone]; ?>'></td>
</tr>
<tr class="black">
<td class="l" alt="Чем занимается">Вид деятельности</td>
<td class="r"><input name='vid' value='<?php echo $row[vid]; ?>'></td>
</tr>
<tr>
<td class="l" alt="Названия филиалов">Филиалы</td>
<td class="r"><input name='filial' value='<?php echo $row[filial]; ?>'></td>
</tr>
<tr class="black">
<td class="plan" alt="Что будем делать с данной организацией"><span><b>План действий</b><span></td>
<td class="r"><input class='plan' name='plan' value='<?php echo $row[plan]; ?>'></td>
</tr>
</table>
<?php
}
}
?>
Спустя 11 минут, 6 секунд (10.07.2011 - 14:30) peretc001 написал(а):
решил зарегистрироваться. Похоже я тут надолго...
появилась новая проблема, если выйти из карточки и зайти в нее заново, поле company (которое я пытаюсь обновлять) удаляется.
заменил
на
не пойму, почему данные удаляются.
Складывается ощущение, что обновление данных происходит при обновлении страницы, а не только когда я нажимаю кнопку "Обновить"
появилась новая проблема, если выйти из карточки и зайти в нее заново, поле company (которое я пытаюсь обновлять) удаляется.
заменил
if (!isset($_POST['save'])) {
# Принимаем данные из формы
$company = isset($_POST['company'])?$_POST['company']:NULL;
mysql_query("UPDATE `base` SET `company`='".$company."' WHERE id=".(int)$id);
}
на
$company = $_POST['company'];
mysql_query("UPDATE `base` SET `company`='".$company."' WHERE id=".(int)$id);
не пойму, почему данные удаляются.
Складывается ощущение, что обновление данных происходит при обновлении страницы, а не только когда я нажимаю кнопку "Обновить"
Спустя 11 минут, 9 секунд (10.07.2011 - 14:41) peretc001 написал(а):
вроде получилось:
<?php include 'config.php';
error_reporting(E_ALL & ~E_NOTICE);
// Далее поплыли в запрос
$id = htmlspecialchars(trim($_GET['id']));
/* Если была нажата кнопка редактирования, вносим изменения */
if(isset($_POST['update']))
{
# Принимаем данные из формы
$company = $_POST['company'];
mysql_query("UPDATE `base` SET `company`='".$company."' WHERE id=".(int)$id);
}
// Проверка, пустая или нет, существует иль жэ нет
$comp = mysql_query("SELECT * FROM `base`, `contact` WHERE base.id = '$id' LIMIT 1");
while($row = mysql_fetch_assoc($comp))
{
?>
Спустя 28 минут, 25 секунд (10.07.2011 - 15:10) peretc001 написал(а):
подскажите, а как записать в базу если выводится из двух таблиц:
Запись вида
не работает
$opisanie = mysql_query("SELECT * FROM `base`, `hod` WHERE base.id = '$id' AND base.id = hod.id ORDER by DATE ASC");
Запись вида
mysql_query("UPDATE `hod` SET `data`='".$data."', `opisanie`='".$opisanie."' WHERE base.id = hod.id AND id = ".(int)$id);
не работает
Спустя 5 часов, 26 минут, 11 секунд (10.07.2011 - 20:36) peretc001 написал(а):
У меня есть поля date и opisanie
Как сделать чтоб каждой строке автоматом присваивалось значение +1, при наличии записи, т.е. вида:
date
opisanie
date1
opisanie1
date2
opisanie2
Я так понимаю это через $i++ делается, а как конкретно не пойму. Помогите.
<input name='date' value='<?php echo $row[date]; ?>'>
<textarea name='opisanie' /><?php echo $row[opisanie]; ?></textarea>
Как сделать чтоб каждой строке автоматом присваивалось значение +1, при наличии записи, т.е. вида:
date
opisanie
date1
opisanie1
date2
opisanie2
Я так понимаю это через $i++ делается, а как конкретно не пойму. Помогите.
Спустя 7 минут, 57 секунд (10.07.2011 - 20:44) Winston написал(а):
Примерно так:
$i = 0;
while($row = mysql_fetch_assoc($query))
{
$i++;
echo "<input name='date" . $i . "' value='" . $row['date'] . "'>
<textarea name='opisanie" . $i . "' />'" . $row['opisanie'] . "'</textarea>";
}
Спустя 10 минут, 58 секунд (10.07.2011 - 20:55) peretc001 написал(а):
Блин, круто. Спасибо!
Спустя 6 минут, 54 секунды (10.07.2011 - 21:02) peretc001 написал(а):
PHPprogramer, скажите, пожалуйста, а как мне теперь это включить сюда:
Чтоб записалось изменение не только date, opisanie, но и
date2, opisanie2
date3, opisanie3
и т.д.
if(isset($_POST['update']))
{
# Принимаем данные из формы
$date = $_POST['date'];
$opisanie = $_POST['opisanie'];
mysql_query("UPDATE `hod` SET `hod`.`date`='".$date."', `hod`.`opisanie`='".$opisanie."' WHERE id ='$id'");
}
Чтоб записалось изменение не только date, opisanie, но и
date2, opisanie2
date3, opisanie3
и т.д.
Спустя 18 часов, 2 минуты, 18 секунд (11.07.2011 - 15:04) peretc001 написал(а):
можно сделать немного по другому:
есть
id
date
opisanie
Добавляем ячейку iid
этот iid = id из другой таблицы
Собственно вопрос, как обновить записи
Такая конструкция не работает. Чую истина где-то рядом :)
Проблема в том, что тут не добавление новой записи через Inser into, а обновление нескольких существующих.
В итоге выводится примерно следующее:
Дата | Описание
2011-07-07 | Проведена встреча
2011-07-08 | Выставлен счет
и т.д.
есть
id
date
opisanie
Добавляем ячейку iid
этот iid = id из другой таблицы
Собственно вопрос, как обновить записи
<?php
if(isset($_POST['update']))
{
mysql_query("UPDATE opisanie SET
id = '$_POST[id]',
date = '$_POST[date]',
opisanie = '$_POST[opisanie]'
WHERE iid = '$id' ");
}
// Проверка, пустая или нет, существует иль жэ нет
$opisanie = mysql_query("SELECT * FROM opisanie WHERE iid = '$id' ORDER by DATE ASC");
while($row = mysql_fetch_assoc($opisanie))
{
?>
<TR>
<input type="hidden" name='iid' value='<?php echo $row[id]; ?>'>
<TD class="date"><input name='date' value='<?php echo $row[date]; ?>'></TD>
<TD class="r"><textarea name='opisanie' /> <?php echo $row[opisanie]; ?> </textarea></TD>
</TR>
<?php } ?>
Такая конструкция не работает. Чую истина где-то рядом :)
Проблема в том, что тут не добавление новой записи через Inser into, а обновление нескольких существующих.
В итоге выводится примерно следующее:
Дата | Описание
2011-07-07 | Проведена встреча
2011-07-08 | Выставлен счет
и т.д.