Литерал - постоянное выражение определённого типа ("Вася", 14, 0.314159e1, false).
isSet() возвращает true, если аргумент - переменная, которая была инициализирована в скрипте (самим скриптом или, как в случае с GET-, POST- и т. п. переменными - окружением скрипта). А вообще, по всем функциям есть справка на php.net, там же есть ссылки на частично русскоязычную оффлайн-версию руководства.
Кодировка? Просто надо читать и писать в базу из скриптов, работающих в одной и той же кодировке. Если речь идёт о PHPMyAdminе, то там тоже всё настраивается парой ударов в бубен (в разных версиях бубен разный). У меня, например, скрипты чата работают в utf-8 без всяких проблем; MyAdmin не настраивал, в нём кракозябры, ну да и пёс с ними.
21. Furax - 14 Марта, 2008 - 11:43:28 - перейти к сообщению
22. Systemnik - 14 Марта, 2008 - 11:45:33 - перейти к сообщению
Так.. еще раз таблица у меня в вин 1251 сай тоже в вин 1251.. видимо конект между мускулом и сайтов не вин 1251 ка это исправить? Ведь есть какой то скул запрос...
23. Furax - 15 Марта, 2008 - 01:08:17 - перейти к сообщению
Systemnik
Что видишь, скажем, после такого запроса (таблицу сам выберешь)?
Что видишь, скажем, после такого запроса (таблицу сам выберешь)?
CODE:
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=windows-1251">
</head>
<body>
<?php
$str = 'Проверка кодировки';
echo "$str<br>";
//Подключаемся к БД
mysql_query("INSERT INTO `table`(`id`, `text`) VALUES (1, '$str')");
$result = mysql_query('SELECT text FROM `table` WHERE `id` = 1');
$str = mysql_fetch_row($result);
echo $str[0];
?>
</body>
</html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=windows-1251">
</head>
<body>
<?php
$str = 'Проверка кодировки';
echo "$str<br>";
//Подключаемся к БД
mysql_query("INSERT INTO `table`(`id`, `text`) VALUES (1, '$str')");
$result = mysql_query('SELECT text FROM `table` WHERE `id` = 1');
$str = mysql_fetch_row($result);
echo $str[0];
?>
</body>
</html>
24. Systemnik - 15 Марта, 2008 - 02:08:42 - перейти к сообщению
"Проверка кодировки" странно.. почему так..
пхп майадмин показывает оПНБЕПЙЮ ЙНДХПНБЙХ
а те записи в эой же таблице которые я делал через него нормальные.. значит это пхп май админ записывает анные в неправильно для моих скриптов кодировке
Как пофиксить?
А вот еще вопрос почему вы в вашем скул запросе где переменная засунули в ' '
а 1 незатолкниули?
Если лиразница между символами ` и ' " в запросе или моно использовать только ` ?
И еще подскажите пожалуйста запрос для удаления определенной строки из бд..
определяя её по id как сделать?
пхп майадмин показывает оПНБЕПЙЮ ЙНДХПНБЙХ
а те записи в эой же таблице которые я делал через него нормальные.. значит это пхп май админ записывает анные в неправильно для моих скриптов кодировке
Как пофиксить?
А вот еще вопрос почему вы в вашем скул запросе где переменная засунули в ' '
а 1 незатолкниули?
Если лиразница между символами ` и ' " в запросе или моно использовать только ` ?
И еще подскажите пожалуйста запрос для удаления определенной строки из бд..
определяя её по id как сделать?
25. Furax - 15 Марта, 2008 - 07:22:43 - перейти к сообщению
Systemnik
А PHPMyAdmin вообще нужен? Лучше добавлять сразу из своего скрипта - меньше проблем будет на сервере. А вообще, настраиваются кодировки таблиц и сопоставление соединения. Занеси из скрипта в базу данные в win-1251 и тыкай все настройки подряд - когда увидишь русский текст, значит, всё мазёво.
1 - это число, зачем его в кавычки заключать? В SQL в прямых кавычках обычно сидят строки, в обратных - имена таблиц и столбцов.
Удаление - 'DELETE FROM `table` WHERE `id` = 123 LIMIT 1'. LIMIT лучше писать всегда от греха подальше...
А PHPMyAdmin вообще нужен? Лучше добавлять сразу из своего скрипта - меньше проблем будет на сервере. А вообще, настраиваются кодировки таблиц и сопоставление соединения. Занеси из скрипта в базу данные в win-1251 и тыкай все настройки подряд - когда увидишь русский текст, значит, всё мазёво.
1 - это число, зачем его в кавычки заключать? В SQL в прямых кавычках обычно сидят строки, в обратных - имена таблиц и столбцов.
Удаление - 'DELETE FROM `table` WHERE `id` = 123 LIMIT 1'. LIMIT лучше писать всегда от греха подальше...
26. Systemnik - 16 Марта, 2008 - 05:40:31 - перейти к сообщению
Цитата:
1 - это число, зачем его в кавычки заключать?
Так вопрос мне теперь во всех языках (пхп джаваскрипт скул перл)
писать цифры без кавычек (100 200 56 99 итд)??
А почему переменные тогда в кавычках?
Цитата:
Лучше добавлять сразу из своего скрипта
Я написал админку ток вот она удалять и создавать может и все как редактироавние сделать.. причем не прсто редактирование а что бы например в екстовое поле старое значение загружалось..
27. Furax - 16 Марта, 2008 - 06:06:50 - перейти к сообщению
Systemnik пишет:
Смотря какой тип данных ты хочешь иметь. Лично я не знаю языка, в котором бы литералы численных типов писались в кавычках. Кавычки подразумевают строку (в JS это String, в PHP - string, в С - const char* и т. д.).Так вопрос мне теперь во всех языках (пхп джаваскрипт скул перл)
писать цифры без кавычек (100 200 56 99 итд)??
писать цифры без кавычек (100 200 56 99 итд)??
Systemnik пишет:
Не понял? Ты про обратные кавычки вокруг имён столбцов? Чтобы SQL знал, что это имена столбцов (таблиц, etc.). А если вот про это:А почему переменные тогда в кавычках?
Цитата:
То это, опять же, чтобы получился строковый литерал."INSERT INTO `table`(`id`, `text`) VALUES (1, '$str')"
Почитай что-нибудь на тему типов данных, а то у тебя, я вижу, по этому поводу каша в голове.
28. Systemnik - 16 Марта, 2008 - 06:49:51 - перейти к сообщению
Я так понял когда в скриптах пишут
это неправильно надо писать так
??
Ой да у меня много по каким поводам каша в голове
ничего, я научусь самое главное - желание
А у вас ненайдется ссылочки?
CODE:
@mail($to, $subj, $text, $from, $headers);
это неправильно надо писать так
CODE:
@mail('$to', '$subj', '$text', '$from', '$headers');
??
Цитата:
по этому поводу каша в голове.
Ой да у меня много по каким поводам каша в голове
ничего, я научусь самое главное - желание
Цитата:
Почитай что-нибудь
А у вас ненайдется ссылочки?
29. Furax - 16 Марта, 2008 - 07:39:29 - перейти к сообщению
Systemnik пишет:
Неправильно понял.Я так понял когда в скриптах пишут
CODE:
это неправильно надо писать так@mail($to, $subj, $text, $from, $headers);
CODE:
@mail('$to', '$subj', '$text', '$from', '$headers');
В большинстве языков с сишной нотацией (к которым относятся и PHP, и JavaScript) правила таковы: в кавычки заключается набор символов, который компилятор (или интерпретатор) должен считать не программным кодом, а строкой. Например, если написать на том же PHP
CODE:
То PHP попробует вывести значение константы по имени Hello, которую можно определить ранее функцией define(). (Есть, правда, одна тонкость: если такой константы нет, интерпретатор создаст её сам и присвоет ей строковое значение 'Hello', так что если error_reporting отключен, ты и не заметишь, что произошла манипуляция с константами.)echo Hello;
Если же написать:
CODE:
То интерпретатор поймёт, что Hello - это строка, и выведет именно эту строку (без кавычек!).echo 'Hello';
Дальше начинаются тонкости. JavaScript не видит разницы между строкой в одинарных кавычках и строкой в двойных (за исключением того, что в строке в одинарных кавычках можно свободно использовать двойные и наоборот). C/C++ считает строкой (или, если быть точным, const char*ом) только строку в двойных кавычках, а содержимое одинарных относит к символьному типу (const char) и требует, чтобы там стоял только один символ. PHP относит к строковому типу содержимое обоих типов кавычек, но есть разница в обработке: так, в двойных кавычках осуществляется подстановка значений переменных вместо их имён, а в одинарных - нет. Попробуй разобраться с кодом:
CODE:
<?php
$a = 'Вася';
print '$a ушёл гулять.';
print '<br>';
print "$a ушёл гулять.";
?>
$a = 'Вася';
print '$a ушёл гулять.';
print '<br>';
print "$a ушёл гулять.";
?>
Строки, заключённые в кавычки, называются строковыми литералами, также как числа, встречающиеся в коде, - численными.
С другой стороны, если присвоить строку переменной (как в предыдущем примере делалось с переменной $a), то переменная будет относиться к строковому типу. Обрати внимание, литералом она уже не является. Так, все GET-, SET-, COOKIE- и т. п. переменные относятся к строковому типу.
Если функция требует строки в качестве своих аргументов, то ей можно передать как литерал (что-то в кавычках), так и переменную, содержащую строку. Так что в твоём примере нет смысла в кавычках, если переменные и так относятся к строковому типу. Кроме того, в одинарных кавычках подстановка значений переменных не осуществляется.
Всё же иногда имеет смысл писать имена переменных в кавычках. Это один из способов привести переменную к строковому типу. Например, следующий код выясняет, содержится ли семёрка в первых знаках десятичной записи синуса числа 0.3:
CODE:
(Почему в первых знаках? Потому что функция sin считает синус всё же с конечной точностью.)$sin = sin(0.3); //Обрати внимание: переменная $sin - числового типа!
$str = "$sin"; //$str - уже строка
if (strpos($str, '7') !== FALSE)
echo 'Есть семёрка!';
else
echo 'Нету...';
$str = "$sin"; //$str - уже строка
if (strpos($str, '7') !== FALSE)
echo 'Есть семёрка!';
else
echo 'Нету...';
Ссылочки не найдётся, к сожалению... Подумываю о том, чтобы замутить проект online-учебника по Web-программированию (не один, конечно), но пока это только задумка...
30. Systemnik - 16 Марта, 2008 - 08:29:07 - перейти к сообщению
Спасибо насчет переменных и ' " понял и даже попробовал
все работает я даже не замечал такой особенности
А насчет отличия строковых литералов и строкового типа..
я заметил ока отличия в том что строковыелитералы пишутся в кавычках а строковый тип без них (тоесть переменная) какая разница литерал или не литерал что это дает??
я прекрасно понял что
print 'dsd'; надо писать в кавычках а если dsd переменная без них.
это понятно но зачем переменную специально превращать в строковый литерал?
стоп ее раз для усвоения
строковый литерал это "текст" или переменная "$dsd" и также это строковый тип?
строковый тип = строковый литерал?
Блин я некогда не отличался тупизной чет несовсем понял
все работает я даже не замечал такой особенности
А насчет отличия строковых литералов и строкового типа..
я заметил ока отличия в том что строковыелитералы пишутся в кавычках а строковый тип без них (тоесть переменная) какая разница литерал или не литерал что это дает??
я прекрасно понял что
print 'dsd'; надо писать в кавычках а если dsd переменная без них.
это понятно но зачем переменную специально превращать в строковый литерал?
стоп ее раз для усвоения
строковый литерал это "текст" или переменная "$dsd" и также это строковый тип?
строковый тип = строковый литерал?
Блин я некогда не отличался тупизной чет несовсем понял