[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Какой тип данных?
denis79513
Какой тип данных необходимо присвоить столбцу, чтобы в нем можно было использовать как числа, так и символы с буквами?



Спустя 2 минуты, 52 секунды (3.11.2010 - 09:38) vagrand написал(а):
Если мы говорим о MySQL то можно varchar

Спустя 10 минут, 35 секунд (3.11.2010 - 09:48) denis79513 написал(а):
Тогда вылетает ошибка при создании таблицы, код:

CREATE TABLE users
(id MEDIUMINT NOT NULL AUTO_INCREMENT,
login varchar,
Password varchar,
Mail varchar,
Inform varchar,
YearB text,
MonthB text,
DayB text,
PRIMARY KEY (id))

Ошибка:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' Password varchar, Mail varchar, Inform varchar, YearB text, MonthB tex' at line 3

Спустя 1 минута, 42 секунды (3.11.2010 - 09:50) denis79513 написал(а):
Все, нашел ошибку.

Спустя 3 минуты, 34 секунды (3.11.2010 - 09:54) linker написал(а):
Тип varchar требует указания максимальной длины. Например
...
`login` varchar(64),
...

Спустя 19 минут, 39 секунд (3.11.2010 - 10:13) denis79513 написал(а):
Так вот еще один вопросик возник, пытаюсь реализовать регистрацию, скрипт должен проверять, занят такой логин или нет, если нет, то продолжать регистрацию, если да, то выдавать ошибку, что данный логин уже используется, это я реализовал, но вот только если логин уже используется, выбрасывается моя ошибка, что логин занят и еще ошибка
Warning: mysql_query() expects parameter 1 to be string, resource given in Z:\home\test1.ru\www\registr.php on line 30
как ее устранить и какая причина, код тут:

<?php
include "config.php";
include "conect.php";
?>
<?php

$login=$_POST['login'];
$pas=$_POST['pas'];
$repas=$_POST['repas'];
$mail=$_POST['mail'];
$inform=$_POST['inform'];
$gr=$_POST['gr'];
$mr=$_POST['mr'];
$dr=$_POST['dr'];
If (!$conect) {echo('Соединение с сервером не было установлено!<br>');}
$condb=mysql_select_db($dbname,$conect);
If (!$condb) {echo('Соединение с базой данных не было установлено!<br>');}
$result=mysql_query("CREATE TABLE users
(id MEDIUMINT NOT NULL AUTO_INCREMENT,
login varchar(30),
Password varchar(20),
Mail varchar(20),
Inform varchar(450),
YearB text,
MonthB text,
DayB text,
PRIMARY KEY (id))"
,$conect);
$sql='SELECT * FROM users WHERE Login='.$login;
if (!($result=mysql_query($sql)) || (mysql_num_rows($result) == 0))
{$result="INSERT INTO users VALUES('', '$login', '$pas', '$mail', '$inform', '$gr', '$mr', '$dr')";} else { echo 'Введенный вами логин уже существует!';}
if(mysql_query($result))
{echo ('Пользователь успешно зарегистрирован! <a href="index.php">Форма для входа.');}
else
{echo ('При регистрации произошла ошибка, <a href="index.php">повторите попытку</a>.');}
mysql_close($conect);
?>

Спустя 3 минуты, 32 секунды (3.11.2010 - 10:17) linker написал(а):
if (!mysql_num_rows($result)) 
{
echo 'Введенный вами логин уже существует!';
}
else
{
$sql = "INSERT INTO users VALUES('', '$login', '$pas', '$mail', '$inform', '$gr', '$mr', '$dr')";
if(mysql_query($sql))
echo ('Пользователь успешно зарегистрирован! <a href="index.php">Форма для входа.');}
else
echo ('При регистрации произошла ошибка, <a href="index.php">повторите попытку</a>.');
}
mysql_close($conect);

Спустя 25 минут, 27 секунд (3.11.2010 - 10:42) denis79513 написал(а):
Спасибо, но вот теперь другая ошибка:)
Немного подправил:
<?php
include "config.php";
include "conect.php";
?>
<?php

$login=$_POST['login'];
$pas=$_POST['pas'];
$repas=$_POST['repas'];
$mail=$_POST['mail'];
$inform=$_POST['inform'];
$gr=$_POST['gr'];
$mr=$_POST['mr'];
$dr=$_POST['dr'];
If (!$conect) {echo('Соединение с сервером не было установлено!<br>');}
$condb=mysql_select_db($dbname,$conect);
If (!$condb) {echo('Соединение с базой данных не было установлено!<br>');}
$result=mysql_query("CREATE TABLE users
(id MEDIUMINT NOT NULL AUTO_INCREMENT,
login varchar(30),
Password varchar(20),
Mail varchar(20),
Inform varchar(450),
YearB text,
MonthB text,
DayB text,
PRIMARY KEY (id))"
,$conect);
if ($pas==$repas)
{
$sql='SELECT * FROM users WHERE Login='.$login;
$result=mysql_query($sql);
if (mysql_num_rows($result))
{echo 'Введенный вами логин уже существует!';}
else
{$sql = "INSERT INTO users VALUES('', '$login', '$pas', '$mail', '$inform', '$gr', '$mr', '$dr')";
if (mysql_query($sql)) {echo ('Пользователь успешно зарегистрирован! <a href="index.php">Форма для входа.');}
else { echo ('При регистрации произошла ошибка, <a href="index.php">повторите попытку</a>.');}}
}

mysql_close($conect);
?>

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in Z:\home\test1.ru\www\registr.php on line 31
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in Z:\home\test1.ru\www\registr.php on line 31

Спустя 2 минуты, 31 секунда (3.11.2010 - 10:45) linker написал(а):
Я уже поправлял где-то n-ми постами выше
$sql = "INSERT INTO users VALUES('0', '$login', '$pas', '$mail', '$inform', '$gr', '$mr', '$dr')";

Спустя 3 минуты, 53 секунды (3.11.2010 - 10:49) denis79513 написал(а):
У меня так и есть, а если ставлю в 1 столбец 0 то все равно та же ошибка вылетает, и зачем его туда ставить, ведь AUTO_INCREMENT сам присваивает значение.

Спустя 3 минуты, 10 секунд (3.11.2010 - 10:52) linker написал(а):
Нет, там есть условия.
$sql = "INSERT INTO users "
. "(`Login`, `Password`, `Mail`, `Inform`, `YearB`, `MonthB`, `DayB`) "
. "VALUES('$login', '$pas', '$mail', '$inform', '$gr', '$mr', '$dr')";

Спустя 17 минут, 6 секунд (3.11.2010 - 11:09) denis79513 написал(а):
ну допустим, но я 0 поставил и все равно ошибка та же

Спустя 6 минут, 19 секунд (3.11.2010 - 11:15) linker написал(а):
Продолжай ставить ноль, ошибка тут
$sql = 'SELECT * FROM users WHERE Login= ' . $login;
Надо
$sql = "SELECT * FROM users WHERE Login= '$login'";
Плюс, я не знаю какие у тебя настройки мускула, но при
...
login varchar(30),
...
и использовании
SELECT * FROM users WHERE Login...
вполне возможны ошибки. При регистро-зависимых именах баз данных, таблиц, полей имеет значение заглавная или строчная буква.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.