SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 02.12.2007 13:42:26

raven20081981
Участник
Зарегистрирован: 02.12.2007
Сообщений: 4

Помогите начинающему!

Здравствуйте!
Вот такой вопросик.

Объясните почему в этом скрипте выдается фраза "Table 'phonelist' already exists" ?
И что вообще нужно сделать, чтобы произошел вывод таблицы в браузер?   
Я тонкостей не знаю, хочу понять элементарное...

Спасибо заранее...



<?php

$user="root";
$pass="";
$db="spoon";

mysql_connect("localhost",$user,$pass)
  or die("not connect: ".mysql_error());
@mysql_query("CREATE DATABASE $db");
mysql_select_db($db)
  or die("Could not select database:".mysql_error());

mysql_query('CREATE TABLE phoneList(
               id INT PRIMARY KEY,
        name VARCHAR(15),
        family VARCHAR(15),
        email VARCHAR(20),
        phone VARCHAR(15)
        )') or die (mysql_error());

mysql_query("INSERT INTO phoneList SET
        id='0',
        name='Roman',
        family='Kojin',
        email='roma@ya.ru',
        phone='123-456-678'
        ") or die (mysql_error());

$r=mysql_query('SELECT*FROM phoneList  ORDER BY id')
  or die (mysql_error());

for($data=array();$row=mysql_fetch_assoc($r);$data[]=$row);
echo "<pre>";print_r($data); echo "</pre>";

?>

Неактивен

 

#2 02.12.2007 14:45:50

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Помогите начинающему!

Ошибка означает, что у Вас уже есть таблица phoneList.

Можете поменять CREATE TABLE -> CREATE TABLE IF NOT EXISTS,
тогда таблица будет создаваться только в случае ее отсутствия.

Неактивен

 

#3 02.12.2007 17:05:45

raven20081981
Участник
Зарегистрирован: 02.12.2007
Сообщений: 4

Re: Помогите начинающему!

Всё... спасибо, заработало)))
Что же в книгах то так сразу не пишут)))
Из-за таких ситуаций многие люди и бросают изучение.

Неактивен

 

#4 02.12.2007 19:46:21

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Помогите начинающему!

Позволю себе с вами не согласится.
Из за ТАКИХ вещей БРОСАЮТ обучение либо безнадежные лентяи либо люди не способные к самообразованию. И тех. и тех поменьше бы в программировании - всем было бы легче, потому что эти люди пишут в итоге хреновые программы. Не принимайте это на свой счет - я говорю именно про этих абстрактных "многих людей". Ведь ни для кого не секрет что плохих программистов гораздо больше чем хороших, так же как и художников, слесарей, водителей....

Ни одна книга не может осветить все нюансы, и все возможные их комбинации. Есть вещи которые многим могут быть очевидны, в частности данная, ведь подумайте как можно создать таблицу, если она уже существует? Вы например пробовали создать файл с именем уже существующего файла в том же каталоге?

Приходя в мир программирования  надо быть готовым рыть, копать, искать.. Причем самому. в крайнем случае спрашивая совета у дргих, более опытных. Ваш вопрос не относится к сложным, ответ на него легко находится самостоятельно. Вот два подвернувшихся под руку варианта:

1. открываю книжку MySQL5 Максим Кузнецов, Игорь Симдянов.
Читаю - глава 12. Создание и удалене таблиц.
Синтаксис оператора CREATE TABLE:

Код:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
........

2. Открываю документацию Mysql. раздел 12.1.10. CREATE TABLE Syntax:
Читаю:

Код:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    (create_definition,...)
    [table_option ...]
    [partition_options]

Достаточно бегло взглянуть, чтобы заметить это самое IF NOT EXISTS, и я думаю даже не надо сильно знать инглиш, чтобы понять что это значит, разве нет?

Или вы считаете, что в каждой книге все таки должно быть разжевано ВСЁ, до последней капли? Распечатайте себе доку по mysql и посмотрите какого она объёма, теперь добавьте мысленно чисто книжных-учебных текстов + листинги кодов примеров. Представили себе такую книгу? Удобно ею будет пользоваться?

Приучайте себя читать и искать а не надеятся на то что все что вам понадобится будет написано в книге.

Неактивен

 

#5 02.12.2007 19:56:39

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Помогите начинающему!

Я думаю, что Вы зря так резко ответили smile

Скорее всего, проблема в том, что в какой-то книге есть листинг, который
человек набрал и запустил два раза. А вот на втором проходе получил
ошибку, что вполне закономерно. И правильно, что написал на форуме, а не
бросил изучение smile

Удачи!

P.S. Но я тоже за то, чтобы программы писались качественно smile

Неактивен

 

#6 02.12.2007 20:04:02

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Помогите начинающему!

не, это я не резко, чессное слово smile Я даже попросил не принимать это на свой счет smile

никого не хочу обидеть и не буду. Умный меня поймет и не обидится, глупый... ну чтоя могу поделать, я просто высказал свое мнение, полученное на собственном опыте Бывало и меня посылали, хоть и редко, и когда то я обижался smile

Потом понял, что выгляжу идиотом, задавая вопросы написанные в первых строчках мануала, еще хуже когда я с таким вопросом не первый а 100-ый или больше. Понятно, что отвечающим становится плохо. Понимание этого избавляет от многих потенциальных недопониманий.

Впрочем это все OFF.


raven20081981.
По теме замечу что когда натнкетесь на необходимость удалять таблицу имейте ввиду, что у DROP TABLE есть такое же ключевое слово.

Отредактированно Shopen (02.12.2007 20:06:08)

Неактивен

 

#7 02.12.2007 20:24:56

raven20081981
Участник
Зарегистрирован: 02.12.2007
Сообщений: 4

Re: Помогите начинающему!

Да всё нормально)) Хоть послушал мнение)))

Ответ:
Например. Книжка по PHP Дмитрия Котерева.
Он расписывает как установить Апач, Php и mysql...
C первыми 2-мя проблем нет... А с mysql были проблемы, причём у многих...
Не помню уже что там писалось... вроде что "путь длинный"..
Так вот, когда ему задали вопрос "в чём проблема?" на каком-то форуме..
Он ответил "ставьте ДЕНВЕР". Вот после такого иногда не охота продолжать изучать...
Уже изначально понимаешь.. что с одной тока настройкой заколебешься (photoshop настраивать не надо))) ну я утрировано конечно говорю..... Суть вы должны уловить...
Это ладно я, и до PHP сам дошёл и этот пример по MySQL спросил...
Многие мои знакомые даже продолжать не стали...

Для успешного изучения - нужен толчок (чтобы что-то получилось).
Я поэтому и написал... Не бойтесь.. Я в ближайшее время вас не побеспокою)))
Для меня было важно чтобы я увидел что это работает...

Ну и закончу так)))
Каждый изучает так, как может... Не надо всех равнять...
Кому то надо тока прочитать... кто-то изучит с 5-го раза, а кто-то так и останется во "Введении"..
Я считаю, если человек хочет изучать, то не надо ему мешать...
Жизнь покажет кем он станет... Хотя с вами я согласен....
Хороших программистов действительно мало...

p.s. книжек у меня таких нет.... пока тока прочитал Котерова...
там не большая вставка по Mysql (всё-таки он про PHP писал)..
ваши киниги теперь обязательно почитаю!
буду умнее))

Спасибо за мнение!

Неактивен

 

#8 02.12.2007 20:44:16

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Помогите начинающему!

Начать сложнее всего, так как еще нет в голове полной картины, а нужно заставить части целого уже работать. Данный раздел форума для того и служит, поэтому не стесняйтесь задавать вопросы. И надеюсь в будущем Вас увидеть в разделе "Оптимизация производительности MySQL".

Про установку PHP, MySQL, Apache у нас на сайте есть статья http://sqlinfo.ru/articles/info/6.html

Я бы порекомендовал книгу Энди Харриса, PHP/MySQL для начинающих. Ее плюс в том, что она маленькая, следовательно там мало неправильного написано - только основы. Электронный вариант можно найти в инете в djvu.

Мало хороших программеров во многом не в силу качеств людей, а из-за недостатка обучающих программ для среднего уровня, а во многом из-за массовых ошибок проектирования самого языка PHP, который для многих, к сожалению, первый язык.

Неактивен

 

#9 03.12.2007 01:24:47

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 847

Re: Помогите начинающему!

raven20081981,
мы скоро запустим проект, в котором можно будет задавать вопросы также по PHP, HTML и некоторым другим технологиям.
Сейчас проект находится на стадии альфа-тестирования, но на вопросы мы там все равно уже отвечаем.
Если Вас это заинтересовало - пишите.

Неактивен

 

#10 03.12.2007 01:55:06

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Помогите начинающему!

raven20081981 написал:

p.s. книжек у меня таких нет.... пока тока прочитал Котерова...
там не большая вставка по Mysql (всё-таки он про PHP писал)..
ваши киниги теперь обязательно почитаю!

Вы под книжками чего имеете ввиду? Я упоминал только одну, вторая называется RTFM - доступна всегда тут:
http://dev.mysql.com/doc/refman/5.1/en/index.html
в частности по CREATE TABLE:
http://dev.mysql.com/doc/refman/5.1/en/ … table.html

Кстати не знал, что Котеров книгу выпустил, нада будет почитать smile
Ваш пример про ДЕНВЕР не очень ясен, нужен контекст, чтобы понимать почему он так вот развернул в сторону денвера (хотя, кстати, денвер - оч удобен, сейчас вышел 3-й, вроде как с 5 mysql наконец то, и много чем еще)

raven20081981 написал:

Каждый изучает так, как может... Не надо всех равнять...
Кому то надо тока прочитать... кто-то изучит с 5-го раза, а кто-то так и останется во "Введении"..
Я считаю, если человек хочет изучать, то не надо ему мешать...
Жизнь покажет кем он станет...

А кто то мешает или равняет? Если не трудно покажите в каком месте я сравнял кого то с чем то?
Я лишь развернуто возразил так сказать свое возражение на два ваших постулата, которые я считаю глубоко ошибочными.
Первый - это о том что все ситуации должны быть рассмотрены в книгах. Это неверно, потому что это просто невозможно, почему - см. выше.
Второй - это ваше сожаление по поводу того, что из-за этого (п.1) люди бросают начатое. Я совершенно убежден, что тот кто в этой ситуации бросит начатое - не программист, нет не потому что он не достоин или еще что то - а потому что не умеет добиваться своих целей. Ведь вы же не бросили, пошли спросили в форуме, кто то пойдет в документации прочтет, кто-то на курсы - вот они пойдут вперед, а кто бросит - ну и слава богу, значит это не его. И не жалко, понимаете?

И я не слова не сказал о том, что спрашивать например не надо - надо, спрашивайте, кто знает - ответит, и даже с удовольствием, например как это принято на этом форуме smile
Но не забывайте про RTFM, потому что там есть ответы на примерно 90% всех вопросов, заведите ее себе как настольную книгу smile

Отредактированно Shopen (03.12.2007 01:57:12)

Неактивен

 

#11 03.12.2007 02:14:57

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Помогите начинающему!

rgbeast написал:

Мало хороших программеров во многом не в силу качеств людей, а из-за недостатка обучающих программ для среднего уровня, а во многом из-за массовых ошибок проектирования самого языка PHP, который для многих, к сожалению, первый язык.

И согласен и не очень. Литературы, в частности по mysql - навалом, и даже неплохой. Информации в интернете -- еще больше. Про php я вообще молчу.
Умение систематизации и обобщения разнородной информации - это не дают на курсах и семинарах - это дают в университетах высшего образования, особенно технического профиля. Как нам говорил один уважаемый лектор - "в институтах вам более всего необходимо научится пользоваться справочной литературой" smile
Впрочем кому то (редко) это дается и от бога, но таких единицы.

А у нас за частую программируют школьники и студенты первых курсов, потому что это модно (а также круто, прикольно и/или просто интересно). Это не плохо само по себе, просто это отражается в конечном счете в низкой культуре программирования, усредненной на количество людей в этой области. Достаточно походить по интернету и посмотреть какие вопросы наиболее часто задаваемы. И сразу видно, что на большую часть самых распространенных вопросов уже есть ответы, причем прямо в "инструкции по эксплуатации" mysql, но и не только там. Это говорит о том, что по большей части спрашивающие НЕ УМЕЮТ ИСКАТЬ!!!, а часть из них, даже и не хочет - и это проблема, искать нигде не учат.

А php к сожалению нормальной альтернативы на данный момент нет

Неактивен

 

#12 03.12.2007 03:02:12

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Помогите начинающему!

В PHP есть принципиальные проблемы дизайна - магические кавычки разнообразных
типов, например. Или глобальные переменные. Даже разумный человек, не будет никогда
читать раздел мана про магические кавычки, если он их не собирается использовать. Или
про глобальные переменные.

Типичный пример с глобальными переменными - рассчитывать, что переменная в начале
сценария не определена. В PHP это не так. И для этого надо прочитать _специальную_
страничку в мане.

Кавычки... тоже классная дикость. Особенно когда человек начинает на них полагаться.
Не говоря уж о том, что это абсолютно непереносимый код. Даже между PHP (ведь кавычки
могут быть отключены)

Брр... много написал.. ну, не люблю я его smile

А альтернатива есть - Perl, XSL... просто это не так популярно...

Неактивен

 

#13 03.12.2007 03:11:27

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Помогите начинающему!

Ну... Perl... это совсем другой язык, он во первых не погружен в код, и чтобы его "погрузить" нужны неслабые телодвижения, отсюда все сразу становится на порядок сложнее. Да и просто Perl очень сложен, особенно для начинающих q и qq чего стоят smile

А XSL - вообще трудно назвать серверным языком программирования, это скорее что-то из разряды css smile по крайней мере именно так он задумывался.

а php прост и доступен - отсюда и много проблем, с другой стороныsmile (я его тоже не люблю)

Впрочем бог с ним, мы то здесь про mysql в основном smile

Неактивен

 

#14 03.12.2007 14:02:33

raven20081981
Участник
Зарегистрирован: 02.12.2007
Сообщений: 4

Re: Помогите начинающему!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson