51

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

А ещё
mysql_query("SELECT header, text FROM articles")
по такому запросу не выводятся два столбца (хочу выводить название и текст одновременно)
Выводятся только данные второго столбца...
Почему так происходит, и можно ли сделать запрос на вывод на страницу данных сразу из двух столбцов... Или придётся делать это по отдельности?..

52

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

Freeware
Запрос правильный, но как происходит вывод?

53

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

Здравствуйте,Hanut
Причина: Есть ссылка:
$user['form'].= '<a href=?action=add_reg>Регистрация</a><br>';
по которой должна включаться функция:
function add_reg(){
    global $out,$MV;
    //echo "Ошибка кода...";
    $out['center'].='<a href="?action=list">Главная</a> =>';
    $out['center'].='<a href="?action=add_reg">Регистрация</a><br><br><br><br>';
    include("reg/reg.php");
    }
, и выводить в центральное поле шаблона файл... При нажатии на ссылку файл выводится, работает, но когда я нажимаю другую ссылку, для другой функции (которая работает, если эту отключить совсем), то другая функция больше не выводится, эта остаётся на месте и не переключается...
Вопрос: Не могу исправить ошибку, или неправильно подключаю рабочий файл... Подскажите пожалуйста, как правильно подключать нужные файлы для работы именно (по переходной ссылке, или как-то по-другому)?..
Спасибо...

54

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

Freeware
Как обрабатывается GET парметр action?

55

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

Здравствуйте,
по предыдущему вопросу с файлами так и не смог сделать, пошёл путём наименьшего сопротивления, вместо отдельных файлов сделал функции и вписал их в файл с функциями...((( Но зато работает...)))
Вопрос: Хочу ввести данные из текстового файла... Через phpmyadmin, выбираю Иморт с LOAD DATE, но не пойму, как правильно выбрать формат, чтобы загружалась текущая дата... При создании поля проставил DATE, в преобразовании dateformat... Подскажите пожалуйста, где почитать про правильный (нужный) вывод даты?.. (В текстовом файле дату не пишу) Сейчас у меня выводится 1 Января 1970г.
Спасибо...

56

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

Freeware
Если необходимо, чтобы при вставке данных в поле записывалось время выполнения импорта, то поле необходимо сделать типа TIMESTAMP, а в списке "По умолчанию" выбрать CURRENT_TIMESTAMP.

57

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

Спасибо, всё получилось с базой!..))) Ещё вопрос...
Причина: В коде Индексного файла есть постоянный вывод функции заполнения меню... Который выводит меню в Индексном файле, независимо от включения других функций...
Встала задача: при наличии нажатия на одну из ссылок этого меню, вывести сюда же массив из других ссылок (названий из базы), вместо основного меню...
Вопрос: Можно ли прописать условие проверки $_GET['action'], и при соответствии этого условия временно отключать функцию вывода меню, и вместо меню выводить данные, полученные другой функцией, а при отсутствии именно этого нажатия снова включать "вывод меню"?.. Пробую if...else, пока не получается, наверное делаю неправильно, потому что if реагирует на все action...(((
Код:
if(isset ($_GET['action'])!=="add_articles()"){
fill_menu();
}
//else{
//add_articles();
//}

58

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

Freeware
Если URL имеет вид: .../index.php?action=add
То проверить можно так:

if (isset($_GET['action']) && $_GET['action'] == 'add') { // Обратите внимание на логическое "И" из двух амперсандов (&&).
  add_articles();
} else {
  fill_menu();
}

59

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

Здравствуйте, Hanut
с предыдущими вопросами всё получилось, со вторым правда пришлось помутить, не хотело сбрасываться первое меню (дописывало в конец), но потом получилось...
Теперь возник новый вопрос:
Причина: В форму выбора вариантов ХТМЛ хочу ввести данные из базы, не получается сделать списком для выбора, или одно наименование выходит, или все, но создают каждый своё окно... Делать пробую через While, но пока радости нет...
Вопрос: В интернете снова не нашёл (когда что-то нужно, оно почему-то не находится!..))) Может подскажете ссылку, где есть вывод данных именно в такую форму ХТМЛ из базы MySQL?..
Спасибо...

60

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

Нашёл кое-что,
...
<FORM ACTION="receive.cgi">
<SELECT NAME="OS" MULTIPLE>
    <OPTION VALUE="DOS">MS-DOS
    <OPTION VALUE="WinXP">MS Windows98
    <OPTION VALUE="Unix" SELECTED>UNIX
    <OPTION VALUE="WinNT">MS Windows NT
</SELECT>
<INPUT TYPE="submit" VALUE="Послать">
</FORM>
...

понял, почему у меня только одно выводилось наименование, только не пойму, как мне прописать вывод всех значений, которые найдутся, а они ведь ещё и меняться будут?.. (их число)

61

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

Freeware
<FORM ACTION="receive.php" method="post">
<SELECT NAME="OS[]" MULTIPLE="multiple">
    <OPTION VALUE="DOS">MS-DOS
    <OPTION VALUE="WinXP">MS Windows98
    <OPTION VALUE="Unix" SELECTED>UNIX
    <OPTION VALUE="WinNT">MS Windows NT
</SELECT>
<INPUT TYPE="submit" VALUE="Послать">
</FORM>

Далее, получаем данные:

<?php
if (isset($_POST['OS'])) {
  foreach ($_POST['OS'] as $os) {
    print $os . "<br />\n";
  }
}
?>

62

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

Здравствуйте, Hanut...
Не вставляет значения в базу, такое ощущение, что не подключается... (Новую базу создаёт, значит подключение работает)...
Можете подсказать, где косяк?..

// проверяем на валидность данные и если они валидны, записываем их в базу

$err='';
$res=is_valid($_POST['message'],$_POST['www'],$_POST['icq'],$_POST['email'],$_POST['nick']);
$query="SELECT MAX(id) FROM gb_messages";
$ress=mysql_query($query);
$maxid=mysql_fetch_array($ress);
if(is_numeric($maxid[0])){
    $query="SELECT * FROM gb_messages WHERE id=$maxid[0]";
    $ress=mysql_query($query);
    $ress=mysql_fetch_assoc($ress);
}else{
    unset($ress);
    $ress['time']=0;
}

if($ress['time']+5>time()){
    $res=array(
        'Вам нельзя писать в гостевую книгу как минимум еще 5 секунд'
    );
}

if($res){
    $err='';
    foreach ($res as $i){
        $err.='- '.$i.'<br>';
    }
    table('<!-- Обнаружены следующие ошибки:<br><br> -->'.$err,false,'сообщение',10);
}else{
    parse_post();
    //if(!parse_post()){print 'Error Парсе Пост'; die();}   
    //$normal_time=time();   
    $query="INSERT INTO test.gb_messages (id,time,nick,homepage,email,ICQ,message) VALUES(NULL,NULL,{$_POST['nick']},{$_POST['www']},{$_POST['email']},{$_POST['icq']},{$_POST['message']})";
    $res=mysql_query($query,$M);
    //if(!mysql_query($query)){print 'Error соединения с базой'; die();}
    table('Всё ок.',true,'Сообщение',2);
}

Спасибо...

63

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

Freeware
$res=mysql_query($query,$M);
Смотрите откуда идет переменная $M, которая должна содержать ссылку на идентификатор соединения возвращаемый функцией mysql_connect(). Другие запросы у вас без данной переменной, попробуйте ее убрать, тогда будет использовано текущее соединение с MySQL.

64

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

Здравствуйте, Hanut...
Вопросы по хостингу:
1. Можно ли размещать сайт сделанный в Винде на платформе Юникс?..
2. Сталкивался с информацией, что есть хостинги, которые поддерживают CMS и тому подобное... Вопрос, а если CMS самописная, это влияет на совместимость?..
Спасибо...

65

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

Freeware
1. Можно.
2. CMS вы используете либо свою, либо предустановленную и совместить их никак нельзя, да и просто нет смысла.

66

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

Здравствуйте, Hanut
Подскажите пожалуйста:
1. Какой параметр желательно (как удобнее и безопаснее) выбирать для создания поля hide (видел и варчар, и инт), и можно ли в phpmyadmin сделать поле с выбором вариантов (например hide и show)?..
2. Если данные хранятся в базе, каким образом нужно прописывать ССЫЛКУ на текст находящийся в другой статье (другом поле базы)?.. Правильно ли будет, если я открою нужный текст, и скопирую полностью ссылку в тег?..
3. Не пойму по хостингу, если хостер предлагает несколько сайтов на одно доменное имя, то как будет выглядеть УРЛ этих сайтов?.. Типа вот так -- forum.php-myadmin.ru?.. То есть через точку от основного имени?.. С точки зрения пользователей неудобно ведь набирать длинный адрес?..
Спасибо...

67

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

Первые два вопроса не смог понять.

По хостингу лучше узнать у хостера, но несколько сайтов на один домен можно сделать только с помощью поддоменов, как вы и указали forum.php-myadmin.ru

68

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

Здравствуйте, Hanut...
Попробую снова спросить:
1. Есть поле hide, в котором указывается видима статья, например, или нет... И вопрос, как удобнее делать это поле varchar, или int?.. И ещё вопрос, можно ли в phpmyadmin сделать форму для внесения данных с выбором вариантов (например hide и show)?..
И ещё вопрос, могу ли я прописав в базе ключ, сделать условие, если ключ=1, то вывести это изображение вертикально?.. Или есть более лёгкие способы вывода вертикальных фоток?..
Спасибо...

69

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

Freeware
Есть тип BOOL (булево значение), которому можно присваивать значение 1 или 0. Аналог - TINYINT(1).

Можно сделать поле типа ENUM('hide','show'). Это позволит выбрать необходимое значение из списка в phpMyAdmin.

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

70

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

Здравствуйте,Hanut...
1. Пытаюсь внести данные из файла в базу через phpMyAdmin, ставлю галочку замещать (потому что по мере заполнения файла, мне удобнее заместить, чем добавить) данные в базе данными из файла, но они прописываются (добавляются, а не замещаются) дальше и не удаляют уже находящихся данных...
Вопрос: Что я делаю не так?..
2. Есть вход зарегистрированных пользователей, но возникло условие, при выполнении функции проверки на валидность пользователя, оставаться именно на той же странице, с которой он ввёл имя-пароль...
Вопрос: Не получается остаться но той же странице...((( Подскажите пожалуйста, как сделать проверку с какой страницы было осуществлено нажатие?.. (Пробовал делать через проверку функции, задавал уже такой вопрос, не получается, потому что основную функцию забивает "функция проверки имя-пароль")...
Спасибо...

71

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

1. Как я понял речь идет о импорте CSV файла. Данные замещаются по первичному ключу или уникальному индексу, если такого в таблице нет, то будет происходить добавление.

2. Если проверку пользователь не проходит, просто сделайте перенаправление на исходную страницу:
header('Location: http://www.---.com/');

Если понадобится, то адрес страницы с которой пришел пользователь хранится в глобальной переменной $_SERVER['HTTP_REFERER']

72

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

Здравствуйте, Hanut...
Со страницами всё получилось! Спасибо!
Возник новый вопрос: У меня есть функция, которая выводит случайную цитату из базы, но если цитата огромная, тогда получается некрасивый вид на сайте, хочу сделать проверку до 100 знаков, но не получается сделать правильный цикл... Или бесконечный получается, или совсем никак...
Можете посмотреть?.. (закомментированные, это мои попытки)

function day_zit(){
    global $out,$MV;   
    $amount = mysql_query("SELECT COUNT(1) FROM `zitata`");
    $amount_array = mysql_fetch_array($amount);
    $total = $amount_array['0'];   
    //Генерируем случайное число:
    $s = mt_rand(1,$total);
    $s = intval($s);
    //Ищем в базе запись:   
    $r = mysql_query("SELECT `id_zitata`,`zitata` FROM `zitata` WHERE `id_zitata`='$s'");
    //if(strlen($r) < 100){   
    //$f = mysql_fetch_array($r);
    $out['zitatka'].="<br>".$f['zitata'];
    //}   
}

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

73

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

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

function day_zit(){
    global $out;   
    $r = mysql_query("SELECT `id_zitata`, `zitata`, RAND() AS `rand`
                      FROM `zitata`
                      WHERE CHAR_LENGTH(`zitata`) < 100
                      ORDER BY `rand`
                      LIMIT 1");
    if (mysql_num_rows($r) > 0) {
        $f = mysql_fetch_array($r);
        $out['zitatka'] .= "<br>" . $f['zitata'];
    }   
}

74

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

Супер!.. Спасибо...
Блин, покупаю книгу по базе данных!..
Такой красивый запрос!.. Никогда бы не догадался...
(Единственное, возникло ощущение, что несколько снизилась скорость первой загрузки... Последующие загрузки страниц грузятся с нормальной скоростью где-то 0,0135-0,0157с... Ну это не страшно...)
Кстати, какую книгу по MySQL можете порекомендовать для начала?..

75

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

Freeware
Свои рекомендации по  книгам я дал здесь: Библиотека веб-разработчика