26

Re: Подскажите с РНР, учу по книжке...

Отлично, в сто пятьдеся пятый раз, спасибо!..)))
Везде поменял, заработало, в строке $PAGE_TITLE тоже с фигурными скобками, как и в include поставил...

$PAGE_TITLE="Модуль {$_GET['mod']}";

Блин, протупил с этой записью... Плохо читал руководство... Теперь вообще всё стало ясно...)))
Ну, до очередных косяков!..)))

27

Re: Подскажите с РНР, учу по книжке...

А вот хотелось бы послушать ваш совет по поводу, где читать, или где искать?..

Увидел в HTML красивую кнопочку-закладочку, которая при наведении курсора сворачивается:

<a href="index.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image22','','images/m11.jpg',1)"><img src="images/m1.jpg" name="Image22" width="96" height="74" border="0"></a>

Каким образом такой же эффект изобразить в РНР?.. Или, как обычно, включать кусок HTML кода в РНР?..

28

Re: Подскажите с РНР, учу по книжке...

Freeware
PHP работает на стороне сервера и не занимается сворачиванием кнопочек, для этого существует JavaScript, который выполняется на стороне клиента.

onMouseOut="MM_swapImgRestore()" // Это означает, что при наведении на ссылку, тег <a>, выполняется функция MM_swapImgRestore().
onMouseOver="MM_swapImage('Image22','','images/m11.jpg',1)" // Здесь, при убирании курсора со ссылки выполняется следующая функция.

Для изучения JavaScript, используйте Firefox с установленным расширением Firebug.
Документация по JavaScript:
https://developer.mozilla.org/En
http://msdn.microsoft.com/en-us/library … S.85).aspx

Также обязательно понадобится изучение DHTML: http://msdn.microsoft.com/en-us/library … s.85).aspx

29

Re: Подскажите с РНР, учу по книжке...

Hanut сказал:

Freeware
В скрипте надо поменять все $mod на $_GET['mod']. Это единственно возможный и правильный синтаксис при выключенной register_globals, которая действительно считается небезопасной и рекомендуется к отключению.
http://www.php.net/manual/ru/reserved.variables.get.php

вот за это спасибо не знал.
получается указывается метод передачи данных?

30

Re: Подскажите с РНР, учу по книжке...

Jeison сказал:

получается указывается метод передачи данных?

Совершенно верно.

31

Re: Подскажите с РНР, учу по книжке...

Здравствуйте, снова я...
Подскажите пожалуйста...
Не пойму, как правильно привязываются отдельные файлы к базе данных, которые лежат в любой из папок, и где прописываются идентификаторы для них, и какие могут быть идентификаторы для этих файлов...
Может ссылку скинете, где почитать?..
Спасибо...

32

Re: Подскажите с РНР, учу по книжке...

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

33

Re: Подскажите с РНР, учу по книжке...

То есть, если я правильно понял, для каждой папки должна быть своя таблица с имеющимися только в данной папке именами файлов?.. И ID будет INT с автоувеличением?.. Или можно сделать ещё столбец с названиями папок?.. Тогда можно будет выбирать по папке, и по файлу?..
Вот ещё, знакомый подсказал, что лучше создать две таблицы, одну с ИД и названием тем, а другую с Ид, Темами, и названиями строк, и чтобы темы во второй таблице прописывались ИД из первой... Вопросы: Даёт ли пользу такой приём?.. И как это правильно осуществить в phpmyadmin?..
Я думаю, что во второй таблице должен сослаться на ИД из первой, но у меня не получается так сделать, и не пойму как...(((

34

Re: Подскажите с РНР, учу по книжке...

А ещё столкнулся с такой же проблемой, как здесь: http://forum.php-myadmin.ru/viewtopic.php?id=1179
Пробую ввести данные из текстового файла, выбираю кодировку cp1251, русские буквы не выводятся... Вместо них, характерные квадратики с вопросиками, латинские попробовал, выводятся нормально...
Где косяк?..

35

Re: Подскажите с РНР, учу по книжке...

Нашёл вот такой совет, по поводу вопросиков http://dev.kinokpk.com/viewtopic.php?f= … a0d9439b46

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

36

Re: Подскажите с РНР, учу по книжке...

Freeware
Установите последнюю версию phpMyAdmin, там есть возможность использовать для связей таблиц графический Дизайнер.
По импорту текстового файла, сперва попробуйте осуществить импорт с помощью последней версии phpMyAdmin.

37

Re: Подскажите с РНР, учу по книжке...

Здравствуйте, по последнему вопросу с кодировками решения так и не нашёл, пошёл самым лёгким путём, установил все новые версии и кодировку поставил utf8...
При дальнейшем продолжении изучения столкнулся с трудностями при взаимодействии с базой данных:

При октрытии страницы Мозилла выдаёт следующее:

Warning: mysql_list_tables(): supplied argument is not a valid MySQL-Link resource in E:\usr\apache\localhost\www\engine1\elib.php on line 45

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in E:\usr\apache\localhost\www\engine1\elib.php on line 47

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in E:\usr\apache\localhost\www\engine1\elib.php on line 58

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in E:\usr\apache\localhost\www\engine1\elib.php on line 62

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in E:\usr\apache\localhost\www\engine1\elib.php on line 9

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in E:\usr\apache\localhost\www\engine1\elib.php on line 10

Сам файл копирую ниже... (Глобальные переменные включены)

<?php
// Функция, заполняющая меню
function fill_menu(){
    global $out,$MV;
    //$out="";
    //include ("db_connect.inc");
    //$MV=mysqli_connect($db_host,$db_user,$db_psw);
    $query="SELECT test * FROM articles";
    $res=mysql_query($query,$MV);
    while(($ar=mysql_fetch_assoc($res)) !== false){
        $out['menu'].="<a href=\"?action=show&id={$ar['id']}\">";
        $out['menu'].=$ar['header'].'</a><br>';
    }
}

function e_list(){
    global $out;
    $out['center'].='<a href="?action=list">Главная</a><br>';
    $out['center'].='<center><b>Главная страница</b></center>';
}

function e_show(){
    global $out,$MV;
    $id=(integer)$_GET['id'];
    if($id<1){$id=1;}
    $tpl=file_get_contents('templates/article.tpl');
    $query="SELECT * FROM articles WHERE id=$id";
    $res=mysql_query($query,$MV);
    $rec=mysql_fetch_assoc($res);
    $out['center'].='<a href="?action=list">Главная</a> => ';
    $out['center'].="<a href=\"?action=show&id=$id\">{$rec['header']}</a><br>";
    $ar=array(
        '<!-- title -->' => $rec['header'],
        '<!-- text -->'  => $rec['text']
    );
    $out['center'].=str_replace(array_keys($ar),array_values($ar),$tpl);
}

function check_db(){
    global $MV;
    $maindir=mysql_escape_string(getcwd());
    //$query="DROP TABLE IF EXISTS articles";
    //mysql_query($query, $MV);
    //$id=(integer)$_GET['id'];
    //$query="SELECT * FROM articles WHERE id=$id";
    $res=mysql_list_tables($MV,'test');
    $ok=false;
    for ($i = 0; $i < mysql_num_rows($res); $i++){
        if(mysql_tablename($res, $i) == 'articles'){
            $ok=true; break;
        }
    }
    if(!$ok){
        $query="CREATE TABLE articles(
            id INT PRIMARY KEY AUTO_INCREMENT,
            header VARCHAR(1024),
            text VARCHAR(5120)
        )";
        mysql_query($query, $MV);
        print mysql_error();
        $query="LOAD DATA INFILE '$maindir/bases/articles.txt'
        INTO TABLE articles";
        if(!mysql_query($query, $MV)){print mysql_error();}
    }
}

?>
Буду очень признателен, за тыканье носом, где искать, и что искать...
Спасибо...)))

38

Re: Подскажите с РНР, учу по книжке...

Freeware
Не вижу функции соединения с MySQL (mysql_connect).

39

Re: Подскажите с РНР, учу по книжке...

Соединение прописано в файле index.php, после соединения там должен подругрузиться этот файл, который я скинул, а в этом, для МЕНЮ я пытался прописать соединение (закомментированные строчки оставил, чтобы вы посмотрели) ничего не вышло...
Вопрос: Или нужно указать: function mysql_connect() ?..
Вопрос2: Или может в самом начале файла нужно указать переменную для подключения?.. Но, как я понял $MV является глобальной и берётся из index.php, или я неправильно понял?..
Спасибо...

40

Re: Подскажите с РНР, учу по книжке...

Freeware
Возможно проблема в том, что используются разные расширения. Видно это mysqli_connect , а затем идет mysql_query - такого быть не может. Либо используется расширение mysqli, либо mysql.

41

Re: Подскажите с РНР, учу по книжке...

Спасибо, сейчас попробую...
И вопрос, может ли быть такое, что для разных расширений и команды разные?.. Или команды должны быть одинаковыми?..

42

Re: Подскажите с РНР, учу по книжке...

Вот, не пойму, что за ошибки выскочили, когда поменял расширение:

Warning: mysqli_escape_string() expects exactly 2 parameters, 1 given in E:\usr\apache\localhost\www\engine1\elib.php on line 41

Fatal error: Call to undefined function mysqli_list_tables() in E:\usr\apache\localhost\www\engine1\elib.php on line 45

Может не соответствуют команды?..

43

Re: Подскажите с РНР, учу по книжке...

А эта функция mysqli_list_tables() наверное не может работать, нигде в инете не нашёл о ней, только описание просто mysql_list_tables...(((
Вопрос: Могу ли я использовать какую-нибудь другую функцию для выполнения аналогичных действий с расширением mysqli ???

44

Re: Подскажите с РНР, учу по книжке...

Freeware
Возможно проще было бы поменять mysqli_connect на mysql_connect.
Механически менять имена функций (добавляя i) для расширений нельзя, у них не только могут быть другие названия, но и разный набор параметров.

У функции mysqli_escape_string(), в отличие от mysql_escape_string(), два параметра: первый - ссылка на идентификатор соединения возвращаемый mysqli_connect(); и второй - собственно строка.

Для замены функции mysql_list_tables при использовании расширения mysqli следует использовать запрос вида:

SHOW TABLES FROM `db_name`

Полученные данные следует разобрать обычным образом.

45

Re: Подскажите с РНР, учу по книжке...

Если я меняю mysqli_connect на mysql_connect, файл вообще не хочет коннектиться к базе... Может в базе отключить библиотеку mysqli?.. Но это ведь не выход?.. Пробую дальше ваши советы по текущему файлу...

46

Re: Подскажите с РНР, учу по книжке...

Freeware
Надо не механически добавлять/убирать i в функции, а смотреть параметры и последующие функции.

47

Re: Подскажите с РНР, учу по книжке...

Здравствуйте, подстановками для вывода ошибок обнаружил, что с базой скрипты коннектятся, и даже на mysql_select_db базы не ругается... Но вот на mysql_query и некоторые другие выдаёт ошибку...
Вопрос: Может у меня где-то в настройках ошибка?..

48

Re: Подскажите с РНР, учу по книжке...

Уважаемый, Hanut
Я нашёл ошибку, были неправильно названы базы данных...

49

Re: Подскажите с РНР, учу по книжке...

Здравствуйте,
не могу правильно вывести нужные данные при переходе на страницу по ссылке в меню...
Всё выводится, только не там, где нужно, и чтобы вывести по метке в шаблоне, мне нужно выводить данные по условию, только, если мы пришли по ссылке...
Вопрос: Не пойму, как правильно записать такое условие?.. (проверки по какой ссылке мы сюда пришли, или какая страница открыта в данный момент)...
Спасибо...

50

Re: Подскажите с РНР, учу по книжке...

Freeware
Если для перехода на страницу используется url, то добавьте в него параметр уточняющий откуда был осуществлен переход, а в скрипте сделайте проверку этого параметра выбрав его из GET массива.