|
|
|
|
|
для: Trianon
(29.03.2006 в 14:35)
| | Вообщем вот это
$sql = mysql_query("select * from users where CharsNick = \"$name\"");
:) | |
|
|
|
|
|
|
|
для: Бамси
(29.03.2006 в 14:23)
| | >Бооольшое спасибо! :) использовал (/").
Большое пожалуйста. Использовать (/") Вы не смогли бы.
Вероятно, Вы использовали (\"). Потому что слэши тоже бывают разные. :-/ :-| :-\ :-) | |
|
|
|
|
|
|
|
для: Trianon
(29.03.2006 в 10:59)
| | Ух.. все понял большое спасибо.
select * from users where CharsNick = "Solker"
К сожалению, данное имя уже зарегистрировано. Поробуйте другое.
|
Бооольшое спасибо! :) использовал (/"). | |
|
|
|
|
|
|
|
для: Бамси
(29.03.2006 в 04:36)
| | Вот так писать нельзя:
$sql = mysql_query("select * from users where CharsNick = $name");
echo "select * from users where CharsNick = '".$name."';";
|
Вы печатаете (и разглядываете потом) одну строку, а исполнять пытаетесь совершенно другую.
Следует печатать и исполнять одну и ту же строку:
$query = "select * from users where CharsNick = '".$name."';";
$sql = mysql_query($query);
echo $query;
|
Вот тот вариант с двойными кавычками, который Вам показала elenaki:
$query = 'select * from users where CharsNick ="'. $name.'"';
|
Могу показать еще один.
$query = "select * from users where CharsNick =\"$name\"";
|
Могу показать Вам вариант с одинарными кавычками:
$query = "select * from users where CharsNick ='$name'";
|
И еще один с одинарными кавычками:
$query = 'select * from users where CharsNick =\''.$name.'\'';
|
Все эти четыре варианта - рабочие.
Работают любые кавычки - что двойные, что одинарные.
>Дак вот мне надо что бы переменная $name отображалась с
>двух сторон двойными ковычками, но зделать это у меня не
>получаеться, т.к. он щитает кавычки частью php кода, и
>ввыодит сообщение о ошибки в синтаксе.
Не надо путать кавычки обрамления строк PHP и кавычки обрамления строк MYSQL.
Последние вы должны расписать по правилам PHP как обычные символы, т.е. сменить с двойных на одинарные (или наоборот) , либо заэкранировать, если менять тип не хотите.
PHP забирает свой слой кавычек, MySQLу достается свой слой, если Вы его правильно оформили.
Теперь об отличиях двойных и одинарных кавычек. Для PHP (т.е. для наружного слоя кавычек) есть разница - В одинарных кавычках PHP не будет подставлять значения $переменных, и Вам придется сцеплять строку из кусков с помощью точек. С двойными кавычками наружного слоя в этом плане проще. Все $переменные будут подставлены.
А вот MYSQL'у совершенно пофигу, какие ему достанутся кавычки - двойные или одинарные. Он будет работать с любыми. Вообще без них он работать не будет, поскольку текст должен быть чем-то ограничен, иначе возникнет синтаксическая путаница. PHP ведь тоже без кавычек со строками грубо говоря не работает - Вы же этому не удивляетесь?
PS. Вообще-то одинарные кавычки правильно называются апострофами.
PPS. У MySQL есть еще один вид кавычек для обрамления имен таблиц и столбцов - обратные одинарные косые кавычки (кнопка на клавиатуре между Esc и Tab), которые правильно называются слабыми ударениями. Правда этот форум их корёжит, и их в здешних сообщениях можно угадывать только силой мысли. :) | |
|
|
|
|
|
|
|
для: Бамси
(29.03.2006 в 04:36)
| |
$sql = mysql_query('select * from users where CharsNick ="'. $name.'"');
|
| |
|
|
|
|
|
|
|
для: Trianon
(28.03.2006 в 17:30)
| | Вообщем вот что понял и в чем не могу разобраться, написал вот такой скрипт.
<?
// Выясняем не зарегистрировано ли уже это имя
$name = "Solker";
$link = mysql_connect("localhost", "root", "toor");
mysql_select_db("perepis", $link);
$sql = mysql_query("select * from users where CharsNick = $name");
echo "select * from users where CharsNick = '".$name."';";
print "<br>";
echo mysql_error();
#проверяем количество строк с CharsName=Solker если таких нет то mysql_num_rows($sql)=0
if(mysql_num_rows($sql)!=0){
echo "К сожалению, данное имя уже зарегистрировано. Поробуйте другое.";
}else{
echo "Это имя свободно";
}
?>
|
Вот что мне выводит скрипт:
select * from users where CharsNick = 'Solker';
Unknown column 'Solker' in 'where clause'
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\WebServer\WWW\test.php on line 11
Это имя свободно
|
Тоесть криво выполняеться запрос в SQL.
select * from users where CharsNick = 'Solker';
Не хочет выполняться не в какую, а
select * from users where CharsNick = "Solker";
Работает прекрастно.
Без кавычек кстати не работает тоже.
Дак вот мне надо что бы переменная $name отображалась с двух сторон двойными ковычками, но зделать это у меня не получаеться, т.к. он щитает кавычки частью php кода, и ввыодит сообщение о ошибки в синтаксе.
Вообщем помогите мне зделать что бы запрос выводился в виде
select * from users where CharsNick = "Solker";
А не без ковычек или с одинарными ковычками. | |
|
|
|
|
|
|
|
для: Бамси
(28.03.2006 в 16:37)
| | У меня такое подозрение, что переменная CharsNick используется у Вас
$sql = mysql_query("select * from users where (CharsNick='$CharsNick')");
|
раньше чем определяется
$CharsNick = substr($_POST["CharsNick"],0,32);
|
| |
|
|
|
|
|
|
|
для: Бамси
(28.03.2006 в 01:26)
| | Ну не понимаю я почему не работает, помогите :) | |
|
|
|
|
|
|
|
для: Shorr Kan
(28.03.2006 в 00:55)
| | не понел, но это же работает.
if (empty($_POST["CharsNick"]))
{
$action = "";
$error = $error."<LI>Вы не ввели имя вашего персонажа.\n";
}
|
| |
|
|
|
|
|
|
|
для: Бамси
(27.03.2006 в 21:59)
| | Вы проверять-то проверяете, но выполнение - продолжаете.... даже если mysql_num_rows($sql)!=0 . | |
|
|
|
|