Не $db['part'] а $db['name'].
как я писал в таблице 2 поля id и name ($part в моём скрипте просто присваивалось значение поля name)
И это понятно , но нужно всего одно значение $db['name'], которое соответствует единственному значению $db['id'] в массиве. и оно будет выведено тут! -
Тут будут выведены вообще все $db['id'] и $db['part'] (читай name), а мне нужно только одно $db['part'] (читай значение поля name), которое соответствует одному значению $db['id'].
То есть в этом скрипте
1. - Я вывожу циклом while все значения двух полей этой таблицы (это список разделов сайта)
2. - У меня в $_GET хранится уникальное значение id этой же таблицы! И мне нужно вывести значение поля name этой таблицы, которое соответствует этому id!
Выше в пункте 1 я вывел уже это name, среди всех прочих в цикле while, а теперь нужно вывести всего одно нужное значение. Вот как это сделать без нового запроса в базу?
Приветствую. Возникла необходимость написания карты сайта с нуля. Не знаю с какого бока подойти. В инете не смог найти внятного ответа на мой вопрос, поэтому спрашиваю здесь.
Можно воспользоваться сайтмап-генератором от google, это позиции сайта в гугле улучшит. http://code[dot]google[dot]com/p/googlesitemapgenerator/
Если же генерировать карту сайта самому в своих скриптах то я делаю это двумя способами
- 1. добавляем изменения в файл карты сайта при добавлении,-удалении раздела сайта (позицию в структуре и url страницы).
- 2. генерируем карту непосредственно при каждом открытии страницы карты сайта map.php
В последнем случае скрипт связывается с бд, выстраивая пирамидку -
Раздел1 (имя, url, позиция в структуре)
статья1(имя, url, позиция в структуре)
статья2(имя, url, позиция в структуре)
Раздел2 (имя, url, позиция в структуре)
статья1(имя, url, позиция в структуре)
статья2(имя, url, позиция в структуре)
В любом движке в БД найдутся все необходимые поля для выстраиваивания такой карты
А почем не сделать так?
PHP:
скопировать код в буфер обмена
1.
$query = 'SELECT name FROM таблица WHERE id_page='.$_GET['id'];
Потому что фактически мы вторично запрашиваем у бд те данные которые уже есть.
Нужное значение name уже есть в массиве mysql_fetch_array($pgs, MYSQL_NUM), его нужно только выбрать както.
}else puterror("Ошибка при обращении к блоку статей");
?>
этим выражением записаны в массив два поля id_page и name таблицы artpage
И вот, дальше я и не могу сообразить, - как зная одно значение id_page (полученное из $_GET) найти соответствующее ему значение поля name таблицы artpage. В цикле while (значения поля name записываются в переменную $part).
Без дополнительного SQL-запроса конкретной строки в бд.
$query="INSERT INTO menu VALUES ('$num', '$part_art', '$id')"
из мануала по sprintf
Цитата:
порядка параметров
<?php
$format = "The %2\$s contains %1\$d monkeys";
printf($format, $num, $location);
?>
Нумерация аргументов имеет еще одно применение: она позволят вывести один и тот же аргумент несколько раз без передачи функции дополнительных параметров.
Так что это как минимум не бред. А код такой генерит например дримвивер мой, и не пишет переменные в составе самого запроса (хотя так я сам обычно делаю), а подставляет значения через шаблоны %.
Почему он так делает хз, в мануал по дримвиверу лень лезть чтобы это выяснить. Интересно было лишь то почему код не работал.
Результат выполнения -
Unknown column 'd' in 'field list'
синтаксис функции посмотрел и вроде сделал всё, как написано.
Значения $num, $part_art, $id скриптом получаются и выводятся, - проверял.
Всем здравствуйте.
Кроплю над страницей вывода пунктов меню навигации.
Задача вроде бы решена, но, совсем не рационально Прошу более опытных форумчан взглянуть на решение.
есть 3 таблицы
menu
---------------------
num | part_art | id
num - порядковый номер пункта меню для вывода на сайте
part_art - хранит тип страницы на которую ведёт пункт меню (1/0 - раздел/статья)
id - идентификатор статья или раздела. Равен id_article из таблицы статей для статьи либо id_artpage из таблицы разделов, соответственно для раздела.
aricle
-------------------
id_article | name
artpage
---------------------
id_artpage | name
Результатом работы скрипта должна стать -
таблица - порядок отображения пунктов меню на сайте
1 РазделN
2 СтатьяN
3 СтатьяС
4 РазделA
...
Решение мне кажется не изящным в части постоянных запросов к бд в ходе выполнения цикла.
и, таблица выводится не отсортированной по номеру пунктов меню.
Более опытные форумчане поскажите как правильно построить скрипт, особенно SQL запрос на выбору сразу всех значений из обеих таблиц..
(Добавил)
То есть нужно извлекать значения полей name из таблиц разделов и статей, так чтобы id таблицы меню был равен id_artpage или id_article, поскольку в меню может попасть и раздел и статья...
Попробуй file_put_contents()
Если работаешь на винде то вот на все файлы стоят права на запись. (Добавление)
Не когда не испоьзовал функцию is_writeable(), но мне каежтся параметром должно быть имя файла, а не то что вернёт fopen().
Всё верно, в f]is_writeable()[/f] и проблема была. Больше не буду ей пользоваться. Она просто была единственным что помнил без справочника Тема исчерпана.
0) Результаты is_writeable кэшируются. возможно имеет смысл применить clearstatcache().
1) права на запись в файл есть у пользователя, от имени которого работает скрипт?
Применение функции ничего не изменило, скрипт работает от админа
Может это особые заморочки денвера?
Уже вероятно, туплю, ибо вечер , но скрипт выводит "невозможно открыть файл для записи", при этом файл существует и даже удаляется его старое содержимое((. Подскажите где ошибка пожалуйста(
Прописал в задании C:\php\php.exe "C:\www\belfort\_!admin\cron\qwerty.php"
Скрипт должен выполнять рассылку писем, однако при запуске задания php.exe просто запускается и закрывается. В исходящую папку почтового сервере письма не складываются. Может я не правильно прописываю задание?