Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > [MySQL]"unknown column" при выполнении запроса


Автор: darknesmonk 31.7.2008, 00:45
Народ помогите вот сегодня начал изучение Mysql и не могу понять в чем проблема,
Просто хотел проверить,


>CREATE DATABASE main;
>CREATE TABLE sys (name VARCHAR(25),  des VARCHAR(25));
>INSERT INTO sys VALUES('WINDOWS','XP');

Код

<?
$host="127.0.0.1";
$name="main";
$pass="1234";
$table="sys";
mysql_connect($host,$name,$pass) or die ("Невозможно подключится к Mysql серверу");
mysql_select_db($name) or die(mysql_error());
$query = "SELECT * FROM $table WHERE choise = 'WINDOWS'";
$t=mysql_query($query) or die(mysql_error());
$nu=MYSQL_NUMROWS($t) or die(mysql_error());
mysql_close();
?>


Выходит ошибка Unknown column 'choise' in 'where clause'
Что делать? какая ошибка в запросе?

Автор: naxellar 31.7.2008, 00:59
darknesmonk, ты пишешь:
SELECT * FROM $table WHERE choise = 'WINDOWS'
Делаешь выборку по полю choise со значением WINDOWS, но в раннее созданной таблице у тебя есть поля name и des.

Автор: darknesmonk 31.7.2008, 11:11
 smile  точно блин я тупанул, 
 вчера все быстро хотел и не заметил,  думал как будто  choise это выбор,

Вот как будет правельно

Код

SELECT * FROM $table WHERE name = 'WINDOWS'

Автор: darknesmonk 31.7.2008, 11:49
Ну теперь я сделал так для проверки

>CREATE DATABASE main;
>CREATE TABLE sys (name VARCHAR(50), des VARCHAR(50), rand  VARCHAR(50))

Код

<?
$host="127.0.0.1";
$name="main";
$pass="1234";
$userstable="sys";
    mysql_connect($host,$name,$pass) or die ("Невозможно подключится к Mysql серверу");
        mysql_select_db($name) or die(mysql_error());
$rand=rand("1","999");
    $sql="INSERT INTO $userstable VALUES('WINDOWS','xp','$rand')";
mysql_query($sql) or die(mysql_error());
    $query = "SELECT * FROM $userstable WHERE name = 'WINDOWS'";
$t=mysql_query($query) or die(mysql_error());
$nu=MYSQL_NUMROWS($t) or die(mysql_error());
for($u="0"; $u<$nu; $u++){
$rm=mysql_result($t,$u,"name")or die(mysql_error());
    $re=mysql_result($t,$u,"des")or die(mysql_error());
        $rn=mysql_result($t,$u,"rand")or die(mysql_error());
print("$u. $rm - $re  число: $rn<br> ");}
mysql_close();
?>



При обновлении добавляется строчка прономерованная WINDOWS - xp  с случайным числом

типа так

0. WINDOWS - xp число: 352
1. WINDOWS - xp число: 859
2. WINDOWS - xp число: 471
3. WINDOWS - xp число: 521
4. WINDOWS - xp число: 219
5. WINDOWS - xp число: 931
6. WINDOWS - xp число: 700
7. WINDOWS - xp число: 585
8. WINDOWS - xp число: 989
9. WINDOWS - xp число: 572
10. WINDOWS - xp число: 880


какой нужно сделать запрос для удаления  строк, например №4 

Я правельно думаю что нужно создать дополнительное поле в базе с нумерации 
после удалять через их номер например вот новое поле num
Код

DELETE FROM $userstable WHERE num = 'Номер строки' 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)