|
|
|
| К примеру имеется страница администрирования, где можно ввести объявления "$text" в базу Мускул, обявлений много, и их нужно вводить группой (то 5 до 40 штук), в каждую рубрику $rubrica.
Я ввожу эти объявления, выбираю рубрику и как мне подсчитать количество объявлений при выводе их из базы, учитывая, то что они вносятся группой?(Объявления начинаются с большой буквы и заканчиваются точкой).
Мне советовали использовать $laObyav=explode('.', $lcContent); , но как это соеденить с кодом ввода, или может кто посоветует мануал по данной теме, заранее благодарю
Это ввод
$query = "insert into table ( text,rubrica) values
('".$text."', '".$rubrica."' )";
|
Это вывод
$result = mysql_query("SELECT text, rubrica FROM table WHERE rubrica= '".$_GET['rubrica']."' ORDER BY LIMIT $start, $num");
|
Это подсчет , если бы объявления вносились отдельно:
$result = mysql_query("SELECT * FROM table WHERE rubrica= '".$_GET['rubrica']."'
$num_results = mysql_num_rows($result);
echo Количество объявлений : '.$num_results.'';?>
|
| |
|
|
|
|
|
|
|
для: ronin
(04.09.2006 в 14:00)
| | Не очень понятна структура хранения текста в базе данных? Под каждое объявление отводится своя запись или нет? | |
|
|
|
|
|
|
|
для: cheops
(04.09.2006 в 14:35)
| | Это наверно наилучший вариант, когда под каждое объявление выделяется запись, но тогда нужно объявления разбить при вводе в базу, Имееться ли решение? Спасибо! | |
|
|
|
|
|
|
|
для: ronin
(04.09.2006 в 15:54)
| | Если их все равно приходится разбивать при выводе, а значит метод разбиения не представляет трудности, то почему это не сделать сразу при вводе?
Потом с даными будет легче работать. | |
|
|
|
|
|
|
|
для: Trianon
(04.09.2006 в 18:35)
| | Согласен, но как разбить перед вводом? | |
|
|
|
|
|
|
|
для: cheops
(04.09.2006 в 14:35)
| | Согласен, но как разбить при вводе? | |
|
|
|
|
|
|
|
для: ronin
(04.09.2006 в 18:16)
| | Помогите! Help! Anybody!!! | |
|
|
|
|
|
|
|
для: ronin
(05.09.2006 в 13:04)
| | Пример добавляемого текста с группой объявлений можно увидеть? | |
|
|
|
|
|
|
|
для: Trianon
(05.09.2006 в 13:26)
| |
$query = "insert into table ( text,rubrica) values
('".$text."', '".$rubrica."' )";
|
текст вводиться через поле, рубрика через селект, мне обработчик бы по отделению в тексте объявлений друг от друга. | |
|
|
|
|
|
|
|
для: ronin
(05.09.2006 в 15:55)
| | Люди помогите!!!! | |
|
|
|
|
|
|
|
для: ronin
(06.09.2006 в 11:06)
| | Вы пример объявлений приведете, наконец, или нет? | |
|
|
|
|
|
|
|
для: Trianon
(06.09.2006 в 12:12)
| | Я прошу прощение, человек меня подвел, в тексте может быть несколько точек, т.е. объявления нужно разделять по-другому, к примеру знаком "снежинка"
привожу объявления (на украинском языке):
Терміново!
Офіційне представництво англійської компанії "Брізар" оголошує набір працівників: секретар, менеджер зі збуту, експедитор, вантажник, кур'єр. Оплата 720‑2300 грн. Тел. 244‑86‑91
асистента керівника, комунікабельна, відповідальна, презентабельна, вік до 30р., ДР до 3р., ВО, знання польської мови, ПК, оргтехніки. Тел. 224‑71‑24 (Оксана), 297‑55‑82, so_mk@ukr.net
діловода, знання ПК. Тел. 244‑86‑71, (067) 587‑15‑55
офіс‑менеджер, в/о, 23 р., знання ПК, укр. і рос. ‑ досконало, франц. і англ. ‑початковий рівень. Тел. 222‑90‑85
офіс‑менеджера зі знанням швейного в‑ва, комунікабельність, знання ПК на рівні користувача. Тел. 52‑28‑10, вул. Б.Хмельницького, 109
помічника секретаря‑референта з перспективою кар'єрного росту, при відсутності д/р ‑ платне навчання з подальшим працевлаштуванням, вік до 35 р., з/п від 300 грн. Тел. 241‑76‑36
секретар (графік позмінно+ставка+обід), вік від 20‑25 р., в/о або незак., або серед, д/р від 0,5 р., знання основ діловодства, робота з ПК (Word, Excel, Internet, e‑mail), вільне володіння укр. та рос. мовами, приємна зовнішність, комунікабельність, виконавчість, відповідальність, почуття гумору, резюме з поміткою посади направляти. Тел. 244‑71‑96, 244‑71‑97, personal@mi100.lviv.ua
секретаря. Тел. 292‑08‑00 | |
|
|
|
|
|
|
|
для: ronin
(06.09.2006 в 13:12)
| | Что-то не видно в этом тексте никаких снежинок.
Если у Вас не будет четкого признака разделения объявлений, Вы врядли что сможете сделать. | |
|
|
|
|
|
|
|
для: Trianon
(06.09.2006 в 13:22)
| | у меня сейчас стоит опенофис(временно, из-за проверки) и я не могу заменит как в ворде спец символ абзаца на звездочку, но представим себе, что все объявления заканчиваються звездочками, извиняюсь за задержку - здавался номер нашей газеты. | |
|
|
|
|
|
|
|
для: ronin
(06.09.2006 в 17:35)
| | Если Вам всё равно на что менять этот самый абзац - замените на строку символов, которая заведомо не встретится. Допустим, на =##=
А потом в скрипте разбейте текст с помощью функции explode на отдельные объявления.
$list = explode('=##=', $alltext);
foreach($list as $n => $text)
echo "<br>$n. " .trim($text);
|
| |
|
|
|
|
|
|
|
для: Trianon
(06.09.2006 в 17:53)
| | Я прошу прощения, я не очень силен в программировании, не могли бы Вы соединить Ваше решение со скриптом ввода. Я извиняюсь за то что Вас замучил, у меня сегодня был тяжелый день, я торможу:)
ВВод:
$query = "insert into table ( text,rubrica) values
('".$text."', '".$rubrica."' )";
|
| |
|
|
|
|
|
|
|
для: ronin
(06.09.2006 в 18:56)
| | Видимо, нужно будет сделать как-то так:
$an_list = explode('=##=', $text);
foreach($an_list as $n => $anno)
$an_list[$n] = "('".trim($anno). "','$rubrica')";
$an_list = implode(',', $an_list);
$query = "insert into table ( text,rubrica) values $an_list";
|
этот запрос забросит все кусочки отдельными объявлениями. | |
|
|
|
|
|
|
|
для: Trianon
(06.09.2006 в 19:08)
| | Только учтите:
1. Вообще-то апострофы и некоторые другие спецсимволы надо экранировать. Во всяком случае, если это не предусмотрено, скрипт будет работать неправильно. Впрочем, как и исходный вариант.
2. если Вы использовали после запроса функцию mysql_insert_id() - логику скрипта нужно будет исправить, т.к. теперь объявления добавляются пачками и mysql_insert_id() вернет номер первой строки из пачки. | |
|
|
|
|
|
|
|
для: Trianon
(06.09.2006 в 19:08)
| | я никак не могу разобраться, тут еще структура таблицы
CREATE TABLE `table` (
`id` int(10) unsigned NOT NULL auto_increment,
`text` text,
`rubrica` int(10) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM ;
я бегу домой завтра с утреца с новыми силами.
Column count doesn't match value count at row 1 у меня выскакивает, когда пытаюсь.
Спасибо я чувствую вот вот получиться, Еще раз спасибо! | |
|
|
|
|
|
|
|
для: ronin
(06.09.2006 в 19:30)
| | Попробуйте всё же добавить экранирование.
$an_list = explode('=##=', $text);
foreach($an_list as $n => $anno)
$an_list[$n] = "('".mysql_escape_string(trim($anno)). "',$rubrica)";
$an_list = implode(',', $an_list);
$query = "insert into table ( text,rubrica) values $an_list";
|
| |
|
|
|
|
|
|
|
для: Trianon
(06.09.2006 в 19:44)
| | Ура работает!!!!! СПАСИБО!!!
ВВод!! А вывод пустой, бабене шеф!
$result = mysql_query("SELECT * FROM table WHERE rubrica = '".(int)$_GET['rubrica']."'");
$posts = mysql_num_rows($result);?>
|
Не работает количество объявлений?! т.е показывает ноль сдесь, а на первой странице показывает реальное количество!?
$result = mysql_query("SELECT * FROM table WHERE rubrica = 1");
$num_results = mysql_num_rows($result);
|
$result = mysql_query("SELECT id, text FROM table WHERE rubrica= '".$_GET['rubrica']."' ORDER BY id DESC LIMIT $start, $num");
|
Пожалуйста помогите! | |
|
|
|
|
|
|
|
для: ronin
(07.09.2006 в 11:13)
| | количество объявлений определяется так:
$rubrica = intval($_GET['rubrica']);
$sql = "SELECT COUNT(id) FROM table WHERE rubrica = $rubrica" ;
$res = mysql_query($sql) or die("Error in $sql<br>". mysql_error());
$posts = mysql_result($res, 0);
echo "$posts объявлений в рубрике $rubrica";
|
| |
|
|
|
|
|
|
|
для: Trianon
(07.09.2006 в 11:25)
| | 0 объявлений в рубрике 0
в то время как в базе их 6, и на первой странице показывает 6 | |
|
|
|
|
|
|
|
для: ronin
(07.09.2006 в 12:06)
| | Ок.
$rubrica = intval($_GET['rubrica']);
$sql = "SELECT COUNT(id) FROM table";
if($rubrica)
$sql .= " WHERE rubrica = $rubrica" ;
$res = mysql_query($sql) or die("Error in $sql<br>". mysql_error());
$posts = mysql_result($res, 0);
echo "$posts объявлений "
if($rubrica)
echo " в рубрике $rubrica";
else
" во всех рубриках";
|
| |
|
|
|
|
|
|
|
для: Trianon
(07.09.2006 в 12:19)
| | Мне очень стыдно все работает, у меня была механическая ошибка на первой странице в гиперессылке на страницу вывода. Извините, Т.е. тот кода вывода, что у меня был, и который я в прошлом взял на этом форуме - работает, Господин Trianon Вы меня очень выручили, так как я боялся, что не смогу разбить объявления при вводе в базу. Большое человеческое спасибо!!! | |
|
|
|
|
|
|
|
для: ronin
(07.09.2006 в 12:35)
| | Тут одна проблемка выскочила: при заносе в базу (мускул), к примеру от 8 до 100 объявлений, одно поле в базе остается пустым, и php видит это поле и считает, что объявление есть, но само поле пустое, ни знака, ничего. Если заходишь в поле, и вручную заполняешь - все о кей - выводиться, видимо при вносе какой-то глюк. Помогите.Спасибо! | |
|
|
|
|
|
|
|
для: ronin
(08.09.2006 в 10:45)
| | Соложно сказать без кода, но скорее всего срабатывает лишняя итерация цикла - при формировании запроса на вставку попробуйте вывести его в окно браузера. | |
|
|
|
|
|
|
|
для: cheops
(08.09.2006 в 12:39)
| |
$an_list = explode('=##=', $text);
foreach($an_list as $n => $anno)
$an_list[$n] = "('".mysql_escape_string(trim($anno)). "',$rubrica)";
$an_list = implode(',', $an_list);
$query = "insert into table ( text,rubrica) values $an_list";
|
А как вывести в окно браузера? | |
|
|
|
|
|
|
|
для: ronin
(08.09.2006 в 10:45)
| |
$an_list = explode('=##=', $text);
$query = "insert into table ( text,rubrica) values";
$sep = ' ';
foreach($an_list as $n => $anno)
{
$anno = trim($anno);
if(!empty($anno))
{
$anno = mysql_escape_string($anno);
$query .= "\r\n$sep('$anno', $rubrica)";
$sep = ',';
}
}
|
далее mysql_query($query) и т.д. | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 12:58)
| |
an_list = explode('=##=', $text);
|
выдает
Parse error: parse error, unexpected '=' in y:\home\localhost\www\znr\insert_info.php on line 63
А в предыдущем варианте и первое и последнее поле из группы - пустые. | |
|
|
|
|
|
|
|
для: ronin
(08.09.2006 в 13:56)
| | $ куда делся? | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 13:59)
| | Бить меня некому:) Все работает! СПАСИБО!!! | |
|
|
|