|
автор: Vova (27.09.2005 в 15:39) |
|
| У Вас есит скрипт - "Каталог", там где добавляются квартиры - риэлторские услуги. Некоторых поля таблицы product - допустим square_j имеют формат tinyint(4). Соответственно, можно вставлять только цифры. Я изменил в mysql формат поля square_j на tinytext, чтобы можно было бы добавлять тект, но ничего не изменилось. В случае добавления текста скрипт пишет - "Ошибка добавления продукции" из файла addprod.php, в случае добавления цифр всё проходит нормально, хотя формат поля, как я уже говорил, изменил. Т.к sql запрос не отработался. В чём может быть причина? Вроде всё посмотрел по файлам скрипта, ничего не нашёл на ограничение добавление текста для square_j. | |
|
|
|
|
|
|
|
для: Vova
(27.09.2005 в 15:39)
| | > Я изменил в
>mysql формат поля square_j на tinytext, чтобы можно было бы
>добавлять тект, но ничего не изменилось.
А как вы изменяли тип поля на текстовый?
ALTER TABLE $table CHANGE 'square_i' 'square_i' TINYTEXT
|
но этот запрос у меня срабатывает только если в поле нет записей | |
|
|
|
|
автор: Vova (27.09.2005 в 16:47) |
|
|
для: napTu3aH
(27.09.2005 в 16:20)
| | Изменил я его с помощью phpMyAdmin.
Там есть такая кнопочка "изменить". :)
Нажимаешь на неё и меняешь поле как угодно.
Также пробовал менять когда закачивал дамп в базу. В ручную прописывал вместо
'square_j' smallint(6) NOT NULL default '0',
|
'square_j' tinytext NOT NULL,
|
Но также не хочет выполнять запрос, если вставляю текст. А с цифрами всё в порядке проходит. Значит всё дело всё же в формате поля? Может phpMyAdmin как-то глючно меняет или в чём может быть дело? | |
|
|
|
|
|
|
|
для: Vova
(27.09.2005 в 16:47)
| | скорее всего перед заносом в БД пхп проверяет вводимые пользователем данные, и если это не число выдает ошибку. У меня нет под рукой "каталога" напишите кусочек кода с формой которая принимает square_j и кусочек с вводом square_j в БД | |
|
|
|
|
автор: Anton (27.09.2005 в 17:27) |
|
|
для: napTu3aH
(27.09.2005 в 16:59)
| | Это форма, куда вводятся данные
<form action=<?php echo $action; ?> method=post>
<table>
...
<tr><td><p class=zag2>пл(Ж)</td><td><input size=61 class=input type=text name=square_j value='<?php echo $square_j; ?>'></td></tr>
....
</table>
</form>
|
А это полный текст файла addprod.php
// Осуществляем соединение с базой данных
require_once("../config.php");
// Проверим - достаточно ли информации для занесения в базу данных
if(!isset($_POST['address'])) links($_POST['id_catalog'], "Отсутствует адрес");
if(!isset($_POST['square_o'])) links($_POST['id_catalog'], "Не введена площадь(O)");
if(!isset($_POST['square_j'])) links($_POST['id_catalog'], "Не введена площадь(Ж)");
if(!isset($_POST['square_k'])) links($_POST['id_catalog'], "Не введена площадь(К)");
if(!isset($_POST['floorhouse'])) links($_POST['id_catalog'], "Не введена этажность дома");
if(!isset($_POST['price'])) links($_POST['id_catalog'], "Не введена общая цена");
if(!isset($_POST['pricemeter'])) links($_POST['id_catalog'], "Не введена цена квадратного метра");
if(!isset($_POST['pos'])) links($_POST['id_catalog'], "Не введена позиция продукта");
// Выясняем скрыта товарная позиция или нет
if($_POST['hide'] == "on") $showhide = 'show';
else $showhide = 'hide';
// Заменяем одинарные кавычки
$_POST['note'] = str_replace("'","'",$_POST['note']);
$_POST['address'] = str_replace("'","'",$_POST['address']);
// Формируем запрос
$query = "INSERT INTO product VALUES (
NULL,
'".$_POST['note']."',
'".$_POST['district']."',
'".$_POST['address']."',
".$_POST['square_o'].",
".$_POST['square_j'].",
".$_POST['square_k'].",
".$_POST['rooms'].",
".$_POST['floor'].",
".$_POST['floorhouse'].",
'".$_POST['material']."',
'".$_POST['su']."',
'".$_POST['balcony']."',
".$_POST['price'].",
".$_POST['pricemeter'].",
'".$_POST['currency']."',
'$showhide',
".$_POST['pos'].",
".$_POST['id_catalog'].")";
if(mysql_query($query)) {
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php?id_parent=".$_POST['id_catalog']."'>
</HEAD></HTML>";
} else puterror("Ошибка при добавлении продукции");
function links($id_catalog,$msg)
{
echo "<p>".$msg."</p>";
echo "<p><a href=# onClick='history.back()'>Вернуться к правке продукта</a></p>";
echo "<p><a href=index.php?id_parent=$id_catalog>Администрирование каталога продукции</a></p>";
exit();
}
?>
|
| |
|
|
|
|
автор: Anton (27.09.2005 в 17:33) |
|
|
для: Anton
(27.09.2005 в 17:27)
| | Ещё вот что заметил:
при добавлении 111111111111111111111111111111111 в изначально текстовое поле tinytext оно отображается так же - 111111111111111111111111111111111
при добавлении 111111111111111111111111111111111 в изначально поле smallint(6) оно отображается как 32767
и при добавление 111111111111111111111111111111111 в измененное поле smallint(6) на tinytext оно отображается так 111111111111111120000000000000000.00 (кстати, текст тут не вставляется).
Значит дело всё же в формате поля? | |
|
|
|
|
автор: Vova (27.09.2005 в 18:36) |
|
|
для: Anton
(27.09.2005 в 17:33)
| | Сорри, перепутал ники. Видимо надо зарегиться | |
|
|
|
|
|
|
|
для: Anton
(27.09.2005 в 17:27)
| | Обратите внимание на SQL-запрос
<?php
// Формируем запрос
$query = "INSERT INTO product VALUES (
NULL,
'".$_POST['note']."',
'".$_POST['district']."',
'".$_POST['address']."',
".$_POST['square_o'].",
".$_POST['square_j'].",
".$_POST['square_k'].",
".$_POST['rooms'].",
".$_POST['floor'].",
".$_POST['floorhouse'].",
'".$_POST['material']."',
'".$_POST['su']."',
'".$_POST['balcony']."',
".$_POST['price'].",
".$_POST['pricemeter'].",
'".$_POST['currency']."',
'$showhide',
".$_POST['pos'].",
".$_POST['id_catalog'].")";
?>
|
Все текстовы поля заключены в одинарные кавычки, а числовые используются без них - вам просто нужно добавить одинарные кавычки для поля square_j
<?php
// Формируем запрос
$query = "INSERT INTO product VALUES (
NULL,
'".$_POST['note']."',
'".$_POST['district']."',
'".$_POST['address']."',
".$_POST['square_o'].",
'".$_POST['square_j']."',
".$_POST['square_k'].",
".$_POST['rooms'].",
".$_POST['floor'].",
".$_POST['floorhouse'].",
'".$_POST['material']."',
'".$_POST['su']."',
'".$_POST['balcony']."',
".$_POST['price'].",
".$_POST['pricemeter'].",
'".$_POST['currency']."',
'$showhide',
".$_POST['pos'].",
".$_POST['id_catalog'].")";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(27.09.2005 в 22:48)
| | Да, поставил одинарные кавычки и текст ввёлся! Сэнкс.
А не подскажите ещё по одному вопросу, тоже связанному с типом полей.
Допустим я хочу в тоже самое поле square_j вводить дату, но при открытии файла addprodform.php (форма для ввода данных) в поле даты square_j по умолчанию стояла текущая дата, например 28.09.2005. Как это можно реализовать? | |
|
|
|
|
|
|
|
для: Vova
(28.09.2005 в 11:30)
| |
<?
echo "<input type=text name=date value=".date("d.m.Y",time()).">";
?>
|
| |
|
|
|
|
|
|
|
для: Loki
(28.09.2005 в 13:54)
| | А как мне это прописать применительно к полю square_j?
Вот код для этого поля, куда я ввожу в ручную дату. Как вышеописанный код применить, чтобы по умолчании там стояла текущая дата.
<td><p class=zag2>Дата</td><td><input size=20 class=input type=text name=square_j value='<?php echo $square_j; ?>'></td>
|
| |
|
|
|
|
|
|
|
для: Vova
(28.09.2005 в 16:54)
| |
<td><p class=zag2>Дата</td><td><input size=20 class=input type=text name=square_j value='<?=date("d.m.Y",time()) ?>'></td>
|
| |
|
|
|
|
|
|
|
для: Loki
(28.09.2005 в 17:27)
| | Всё классно работает! Спасибо :).
Хотел бы задать ещё такой вопрос всё по тому же скрипту Каталог. Вот в нём есть поле balcony формата enum('balcony', 'loggia'). Соответственно может принимать два значения 'balcony'=балкон и 'loggia'=лоджия. В коде это выглядит так
<?
switch ($par['balcony'])
{
case 'balcony':
$balcony = "балкон";
break;
case 'loggia':
$balcony = "лоджия";
break;
}
?>
|
Каким образом можно сделать, чтобы ячейка в выводимой таблице допустим со значением балкон выводилось синим цветом, а ячейке со сзначением лоджия - желтым. Пытался как-то прописать css, например <a class=zag2> где .zag2{font-size: 13px; color: #264769; font-weight: bold}, но что-то ни как не получается. Как можно сделать? | |
|
|
|
|
|
|
|
для: Vova
(28.09.2005 в 17:55)
| |
<?
switch ($par['balcony'])
{
case 'balcony':
$balcony = "балкон";
$color = синий
break;
case 'loggia':
$balcony = "лоджия";
$color = желтый
break;
}
?>
|
И в ячейке бэкграунд делаешь равным $color. | |
|
|
|
|
|
|
|
для: Atom
(28.09.2005 в 23:45)
| | Что-то не выходит. Сделал так
<?
switch ($par['balcony'])
{
case 'balcony':
$balcony = "балкон";
$color = "blue";
break;
case 'loggia':
$balcony = "лоджия";
break;
}
?>
|
А вот как правильно определить переменную $color , что она является бэкграундом?
$color = {background-color: #75D1FA;}
|
Так, что-то не получается | |
|
|
|