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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Ссылка
 
 автор: Лена   (29.12.2008 в 21:29)   письмо автору
27.3 Кб
 
 

Вот здесь формируется ссылка:

            <?php
            $sql 
"SELECT * FROM `admin` ORDER BY `id`";
            
$result mysql_query($sql);
            if(!
$result) exit("Error in $sql:" mysql_error());
            while(
$row mysql_fetch_assoc($result)){
            
$id $row['id'];
            echo 
"<div style='float:left;'>
                    <div class='icon'>
                        <a href='/admin/?admin=
$id'>
                        <img src='http://avart.ua/admin/img/" 
$row['icon'] . "' alt='" $row['admin_title'] . "' align='middle' border='0' />                    
                        <span><nobr>" 
$row['admin_title'] . "</nobr></span>
                        </a>
                    </div>
                </div>"
;
            }
            
?>

Вот здесь - при нажатии на ссылку должен подключиться соответствующий файл(название файла - из базы)

<?php
include("configs/dbopen.php");
$id $_GET['admin'] ? intval($_GET['admin']) : false;

            
$sql "SELECT file FROM `admin` WHERE id = $id";
            
$result mysql_query($sql);
            if(!
$result) exit("Error in $sql:" mysql_error());
            while(
$row mysql_fetch_assoc($result)){
            include (
$row['file']);
            }
?>

Файл не подключается.
Чтобы было понятно, см. прикрепленную картинку.
Нужно, чтобы при клике на каждой иконке подключался соответствующий файл.

  Ответить  
 
 автор: Николай2357   (29.12.2008 в 21:40)   письмо автору
 
   для: Лена   (29.12.2008 в 21:29)
 

Стесняюсь спросить, а зачем в цикле, если файл один?
Вот тут попробуйте кавычки поставить.
<?
WHERE id 
'$id'";

  Ответить  
 
 автор: Trianon   (29.12.2008 в 21:57)   письмо автору
 
   для: Николай2357   (29.12.2008 в 21:40)
 

не надо.

  Ответить  
 
 автор: Лена   (29.12.2008 в 21:58)   письмо автору
 
   для: Николай2357   (29.12.2008 в 21:40)
 

Мне нужно один ряд из базы вытянуть - ассоциативный массив, убираю цикл - все равно результат тот же.

  Ответить  
 
 автор: Лена   (29.12.2008 в 22:03)   письмо автору
 
   для: Николай2357   (29.12.2008 в 21:40)
 

Если уже исправлять, то так: WHERE id =" . $id;

  Ответить  
 
 автор: Trianon   (29.12.2008 в 22:10)   письмо автору
 
   для: Лена   (29.12.2008 в 22:03)
 

тогда - "... WHERE id =" . intval( $id);

  Ответить  
 
 автор: Trianon   (29.12.2008 в 21:56)   письмо автору
 
   для: Лена   (29.12.2008 в 21:29)
 

а что там - в $row['file'] ?

  Ответить  
 
 автор: Лена   (29.12.2008 в 22:01)   письмо автору
1.7 Кб
 
   для: Trianon   (29.12.2008 в 21:56)
 

Чтобы меньше вопросов было, вот вся таблица, из которой выборка идет.

  Ответить  
 
 автор: Николай2357   (29.12.2008 в 22:23)   письмо автору
 
   для: Лена   (29.12.2008 в 22:01)
 

Вы будете смеяться, но Ваш код работает. Цикл правда там явно лишний. Скорее всего проблема в самом файле.

  Ответить  
 
 автор: Trianon   (29.12.2008 в 22:25)   письмо автору
 
   для: Лена   (29.12.2008 в 22:01)
 

так, сдается мне, у Вас что-то неладное с путями.
А если временно заменить строку include ($row['file']); на include ('menu/menu.php'); - то хотя бы этот раздел вызывается?
По идее должен быть вызван файл /admin/menu/menu.php

между прочим, чтобы совсем вопросов не было - имена файлов со скриптами, из которых взяты цитируемые фрагменты, стоит указывать.

  Ответить  
 
 автор: Лена   (29.12.2008 в 22:43)   письмо автору
 
   для: Trianon   (29.12.2008 в 22:25)
 

>А если временно заменить строку include ($row['file']); на include ('menu/menu.php'); - то хотя бы этот раздел вызывается?
Не вызывается.

У меня точно с путями что-то. Одно к другому подключается, в результате запуталась.

>между прочим, чтобы совсем вопросов не было - имена файлов со скриптами, из которых взяты цитируемые фрагменты, стоит указывать.

Укажу, если не получится. Пока сама буду распутываться. Раз у Николая получилось, у меня тоже получится.

  Ответить  
 
 автор: Николай2357   (29.12.2008 в 22:45)   письмо автору
 
   для: Лена   (29.12.2008 в 22:43)
 

Если поможет, вот так я проверил, маленько кое что изменил:
<?php 
include("config.php"); 
$id $_GET['admin'] ? intval($_GET['admin']) : false
if(
$_GET['admin'])
{
            
$sql "SELECT file FROM `admin` WHERE id = $id"
            
$result mysql_query($sql); 
            if(!
$result) exit("Error in $sql:" mysql_error()); 
            
$row mysql_fetch_assoc($result);
            if(
$row['file'])
            include (
$row['file']); 
            
            
}            
            
$sql "SELECT * FROM `admin` ORDER BY `id`"
            
$result mysql_query($sql); 
            if(!
$result) exit("Error in $sql:" mysql_error()); 
            while(
$row mysql_fetch_assoc($result)){ 
            
$id $row['id']; 
            echo 
"<div style='float:left;'> 
                    <div class='icon'> 
                        <a href='?admin=
$id'> 
                        <img src='http://avart.ua/admin/img/" 
$row['icon'] . "' alt='" $row['admin_title'] . "' align='middle' border='0' />                     
                        <span><nobr>" 
$row['admin_title'] . "</nobr></span> 
                        </a> 
                    </div> 
                </div>"

            } 


?>

  Ответить  
 
 автор: Trianon   (29.12.2008 в 22:46)   письмо автору
 
   для: Лена   (29.12.2008 в 22:43)
 

а include ('../' . 'menu/menu.php' ); ?
если каталог menu и каталог admin находятся на одном уровне, логично предположить, что вызывать разделы нужно именно так.

Николай (как и я) о размещении файлов ничего не знает.
И то, что он сказал, что у него всё идет, может быть верно для его предположения о размещении этих файлов, и вовсе не выполняться для Вашей реальной картины.

  Ответить  
 
 автор: Лена   (30.12.2008 в 00:07)   письмо автору
2.3 Кб
 
   для: Trianon   (29.12.2008 в 22:46)
 

Файл admin.php лежит в корне.
Если коротко, то он такой:

<?php
$id 
$_GET['admin'] ? intval($_GET['admin']) : false;

if(isset(
$_POST['Enter'])){
//записываем логин-пароль в базу и выводим индекс-страницу админки
include("admin/index_admin.php");
//а вот это - вывод ссылки
                            
if($_GET['admin']){
                            
$sql "SELECT file FROM `admin` WHERE id = $id";
                            
$result mysql_query($sql);
                            if(!
$result) exit("Error in $sql:" mysql_error());
                                
$row mysql_fetch_assoc($result);
                                    include (
"admin/" $row['file']);
                            }
}
if(!isset(
$_POST['Enter']) || $error){
//выводим ошибки и саму форму
}



Полный вариант на всякий случай прикрепила.

И остался файл include("admin/index_admin.php"); - здесь находится ссылка
html и стили опускаю, сейчас он такой:

            <?php
            $sql 
"SELECT * FROM `admin` ORDER BY `id`";
            
$result mysql_query($sql);
            if(!
$result) exit("Error in $sql:" mysql_error());
            while(
$row mysql_fetch_assoc($result)){
            
$id $row['id'];
            echo 
"<div style='float:left;'>
                    <div class='icon'>
                        <a href='?admin=
$id'>
                        <img src='admin/img/" 
$row['icon'] . "' alt='" $row['admin_title'] . "' align='middle' border='0' />                    
                        <span><nobr>" 
$row['admin_title'] . "</nobr></span>
                        </a>
                    </div>
                </div>"
;
            }
            
?>


Когда я кликаю по ссылке, меня перебрасывает назад на страницу с формой. URL при этом - admin.php?admin=4(или другая цифра).

  Ответить  
 
 автор: Trianon   (30.12.2008 в 00:32)   письмо автору
 
   для: Лена   (30.12.2008 в 00:07)
 

>Файл admin.php лежит в корне.

тогда почему ссылка на него такая <a href='/admin/?admin=$id'>
а не такая <a href='/admin.php?admin=$id'>
или на худой конец такая <a href='/admin?admin=$id'> ?
Зачем было себя запутывать?

где лежит файл menu/menu.php ?

Нет, я в принципе допускаю, что для обращения к /admin.php?... можно использовать и такие ссылки как /admin/?...
Но человек, такое применяющий, однозначно в каталогах, путях, и их интерпретации браузером, апачем и самим php [должен] разбираться на отлично, вслепую, буквально на подкорке. Куда лучше меня, во всяком случае.

  Ответить  
 
 автор: Лена   (30.12.2008 в 01:12)   письмо автору
 
   для: Trianon   (30.12.2008 в 00:32)
 

>или на худой конец такая <a href='/admin?admin=$id'> ?
Посмотрите, пожалуйста, предыдущий пост.
У меня ссылка там вот такая - <a href='?admin=$id'> - почти что ваш худой конец. :)

>где лежит файл menu/menu.php ?
путь от корня: admin/menu/menu.php

Почему, когда я кликаю по ссылке, я попадаю на страницу с формой? Вот этого не могу понять. Если post-данные формы получены и получены get-данные, почему выводится форма, которая должна выводится при условии, когда не получены post-данные?

  Ответить  
 
 автор: Николай2357   (30.12.2008 в 01:41)   письмо автору
 
   для: Лена   (30.12.2008 в 01:12)
 

Ну а как Вы получаете POST, если кликаете по ссылке? Откуда ему взяться то?

  Ответить  
 
 автор: Trianon   (30.12.2008 в 09:57)   письмо автору
 
   для: Лена   (30.12.2008 в 01:12)
 

>>или на худой конец такая <a href='/admin?admin=$id'> ?
>Посмотрите, пожалуйста, предыдущий пост.
>У меня ссылка там вот такая - <a href='?admin=$id'> - почти что ваш худой конец. :)
то есть ссылка на тотже самый документ, который открыт в браузере, с пеедачей ему параметров GET.
А в браузере открыт admin.php

>Почему, когда я кликаю по ссылке, я попадаю на страницу с формой?
потому что при переходе по ссылке POST-параметры не передаются. А скрипт этого документа выводит форму при отсутствии оных.

  Ответить  
 
 автор: Лена   (31.12.2008 в 00:21)   письмо автору
 
   для: Trianon   (30.12.2008 в 09:57)
 

Сделала. Все получилось. Привязала ссылку к admin/index_admin.php.
Спасибо, что помогли.

  Ответить  
Rambler's Top100
вверх

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