Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вывод данных из базы

Сообщения:  [1-10]   [11-13] 

 
 автор: sirop   (15.10.2005 в 10:52)   письмо автору
 
   для: Loki   (14.10.2005 в 20:41)
 

Ура!!! Действительно, заработало
Loki, преогромнейшее спасибо!!! Я бы сам не додумался б до такого. Вы настоящий мастер

   
 
 автор: Loki   (14.10.2005 в 20:41)   письмо автору
 
   для: sirop   (14.10.2005 в 19:08)
 

У вас тут

<?
$url
="A";
?> 

стоит английская А:)
поставил русскую и все заработало;)

   
 
 автор: sirop   (14.10.2005 в 19:08)   письмо автору
 
   для: Loki   (14.10.2005 в 17:34)
 

Фух, мне этот код уже сниться скоро будет...
Вот таблица:

CREATE TABLE 'terms' (
  'id' tinyint(4) NOT NULL auto_increment,
  'word' tinytext NOT NULL,
  'body' text NOT NULL,
  PRIMARY KEY  ('id')
) MyISAM ;

INSERT INTO 'terms' VALUES (1, 'Абразивный инструмент', 'Инструмент, изготовленный из абразивных материалов. Выпускается в виде шлифовальных кругов, брусков, лент и т. д.');

INSERT INTO 'terms' VALUES (32, 'Балясины', 'Элементы ограждающих конструкций лестниц, балконов, террас, поддерживающие перила.');

INSERT INTO 'terms' VALUES (46, 'Вальма', 'Скат шатровой крыши, имеющий треугольную форму и расположенный с торцовой стороны здания.');

А вот сам код со всеми изменениями:

<a href=terms.php?url=<?=urlEncode('А')?>>А</a>
<a href=terms.php?url=<?=urlEncode('Б')?>>Б</a>
<a href=terms.php?url=<?=urlEncode('В')?>>В</a>

<?
   
// Если в адресе нет переменной url,
   // то выводим всё на "А"
   
if(!isset($url)){
       
$url="A";
       }
       
// Если буква задана, то на искомую букву
       
else {
           
$url urlDecode($_GET['url']);
           } 
  
$query mysql_query("SELECT * FROM terms WHERE word LIKE '$url%'");
  if (
$query){
      while(
$fetch mysql_fetch_array($query))
          {
          
// Выводим слово
          
echo "<p><b>".$fetch['word']."</b> &#8212; ";
          
// Выводим определение
          
echo $fetch['body'];
          echo 
"</p>";
          }
          }
?>


страница http://test1.ru/terms.php открывается без содержания (только меню-алфавит)
а все страницы с запрошенной буквой открываются нормально

Попробуйте кто-нить у себя, что-то у меня никак...

   
 
 автор: Loki   (14.10.2005 в 17:34)   письмо автору
 
   для: sirop   (14.10.2005 в 17:02)
 

Да нет, это подход неправильный.
Вообще эту переменную нужно проверять перед тем как скармливать mysql, а то все это может плохо кончится.
Попробуйте так:

<?
  
if(!isset($url)) 
  {
  
$url="A";
  }
else
 {
$url urlDecode($_GET['url']); 
}
?>

Вроде тут-то уж негде запутаться:)
ну и проверить на предмет одинарных кавычек

   
 
 автор: sirop   (14.10.2005 в 17:02)   письмо автору
 
   для: Loki   (14.10.2005 в 14:26)
 

Что-то и с empty($url) ничего не вышло. Странно, по идее всё должно работать.
Пока лучшим выходом для себя думаю сделать ссылку на страничку вместо http://test1.ru/terms.php сделать http://test1.ru/terms.php?url=%C0 (принудительно вывести всё на "А"... или по-умолчанию вывести другое что-то. Буду таки пробовать найти причину. Может это мой локальный глюк?

   
 
 автор: Loki   (14.10.2005 в 14:26)   письмо автору
 
   для: sirop   (14.10.2005 в 13:23)
 

Можете взять свой исходный код, но заменить

<?
  
if(!isset($url)) { $query mysql_query("SELECT * FROM terms WHERE word LIKE 'A%'"); 
?>

на

<?
  
if(empty($url)) { $query mysql_query("SELECT * FROM terms WHERE word LIKE 'A%'"); 
?>

   
 
 автор: sirop   (14.10.2005 в 13:23)   письмо автору
 
   для: Loki   (14.10.2005 в 12:42)
 

Loki, действительно, как я мог не заметить, что $url я ввожу перед проверкой.
Я изменил, как Вы подсказали, но теперь почему-то данные по-умолчанию не выводятся вообще никакие. А если по ссылке на любой букве алфавита из общего меню - работает, как и надо.

   
 
 автор: Loki   (14.10.2005 в 12:42)   письмо автору
 
   для: sirop   (14.10.2005 в 11:47)
 

у вас ошибка вот тут:

<?
  
// Обрабатываем урл 
  
$url urlDecode($_GET['url']); 
  
// Если главная стр Терминов, то выводим всё по букве А (умолчание) 
  
if(!isset($url)) { $query mysql_query("SELECT * FROM terms WHERE word LIKE 'A%'");
?>

переменная $url к моменту проверки получается определена
попробуйте так:

<?
  
// Если главная стр Терминов, то выводим всё по букве А (умолчание) 
  
if(!isset($url)) 
 {  
$query mysql_query("SELECT * FROM terms WHERE word LIKE 'A%'");
 .... 
//тут весь код
}
else
{
  
// Обрабатываем урл 
  
$url urlDecode($_GET['url']); 
 
//тут выводим выбранную букву
}
?>

   
 
 автор: sirop   (14.10.2005 в 11:47)   письмо автору
 
   для: sirop   (13.10.2005 в 14:25)
 

Наверное, тот мой код оказался загадкой для всех :)
Подскажите, а как тогда можно изменить его, но чтобы смысл вывода данных остался. У меня не получается никак :(

   
 
 автор: sirop   (13.10.2005 в 23:43)   письмо автору
 
   для: cheops   (13.10.2005 в 23:29)
 

Это локальный (Денвер-2)

   

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования