Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: создание таблиц

Сообщения:  [1-10]   [11-16] 

 
 автор: pautina   (19.06.2008 в 11:28)   письмо автору
 
   для: pautina   (19.06.2008 в 09:37)
 

Извините нужно было писать вот так
print_r(mysql_result($num_vopr,0));

   
 
 автор: pautina   (19.06.2008 в 09:37)   письмо автору
 
   для: AcidTrash   (18.06.2008 в 17:49)
 

Оказывается везде при создании таблиц БД всегда для полей id_name лучше использовать PRIMARU KEY и AUTO_INCREMENT.
Теперь у меня есть БД и 2 таблицы, у меня возник такой вопрос как вытащить название вопроса (поле name_vopros таблицы vopros БД useropros)
Я использовал следующий код

<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$w=mysql_query("select name_vopros from vopros where id_voprosa=1");
//print_r(mysql_fetch_row($w));
//print_r(mysql_fetch_assoc($w)); 
//print_r(mysql_fetch_array($w));  
//print_r(mysql_result($w));
print_r(mysql_fetch_object($w))
?>

Пробовал такие варианты вывода, Но выводится не то, хотелось сделать просто вывод ответа.

   
 
 автор: AcidTrash   (18.06.2008 в 17:49)   письмо автору
 
   для: pautina   (18.06.2008 в 15:05)
 

>И ещё когда в radmin я стер все значения, после этого запись произошла сразу в 2 таблицах, >но только 1 раз, если потом запускать этот же код запись уже не происходит и выдаётся та >же ошибка.


Так правильно, вы пытаетесь повторным запуском скрипта создать туже базу, теже таблицы, и тд, но они уже есть с предыдущего запуска скрипта. Вот и выдается такая ошибка

   
 
 автор: ronin80   (18.06.2008 в 15:54)   письмо автору
 
   для: pautina   (18.06.2008 в 15:05)
 

можете показать show create table этих таблиц (соответственно после их создания) ?

возможно создан индекс unique по внешнему ключу

   
 
 автор: pautina   (18.06.2008 в 15:05)   письмо автору
 
   для: pautina   (18.06.2008 в 14:28)
 

Вы знаете сейчас весь код выглядит так

<?php
 $a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
 
mysql_query"CREATE DATABASE vopros" ); 
 
mysql_select_db"vopros");
 
mysql_query("CREATE TABLE vopros (  
                    id_voprosa INT NOT NULL, 
                    name_vopros TINYTEXT NOT NULL,  
                    PRIMARY KEY (id_voprosa)  
                    )"
); 
 
// Создаём таблицу вопросов                 
 
mysql_query("insert into vopros(id_voprosa, name_vopros) values(1, 'Какие из этих видов транспорта передвигаются по земле?')") or die (mysql_error());
mysql_query("insert into vopros(id_voprosa, name_vopros) values(2, 'Какой из этих предметов по геометрической форме представляет сферу?')") or die (mysql_error());
mysql_query("insert into vopros(id_voprosa, name_vopros) values(3, 'Кто из нижеперечисленного умеет летать?')") or die (mysql_error());    


// Создаём таблицу ответов
mysql_query("CREATE TABLE var_otveta (  
                    id_var_otveta INT NOT NULL AUTO_INCREMENT, 
                    id_parent INT NOT NULL,                     
                    var_otveta TINYTEXT NOT NULL,
                    PRIMARY KEY (id_var_otveta)                    
                    )"
); 
mysql_query("insert into var_otveta(id_parent, var_otveta) values(1, 'Подводная лодка')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(1, 'Поезд')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(1, 'Самолёт')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(1, 'Дерижабль')") or die (mysql_error());

mysql_query("insert into var_otveta(id_parent, var_otveta) values(2, 'Куб')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(2, 'Пирамида')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(2, 'Мяч')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(2, 'Конус')") or die (mysql_error());

mysql_query("insert into var_otveta(id_parent, var_otveta) values(3, 'Птица')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(3, 'Корова')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(3, 'Крокодил')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(3, 'Жираф')") or die (mysql_error());
 
?>

Данная ошибка Duplicate entry '1' for key 1 (Двойной вход '1' для {ключа} 1)
Всё равно не изчезла. Что делать.
Вы знаете я пробовал коментарить таблицы данная ошибка возникает в участке кода который формирует таблицу вопросов (я закоментарил табл. ответов ошибка осталась, потом закоментарил таблицу вопросов запись осуществилась)
И ещё когда в radmin я стер все значения, после этого запись произошла сразу в 2 таблицах, но только 1 раз, если потом запускать этот же код запись уже не происходит и выдаётся та же ошибка.
Может это как то поможет.

   
 
 автор: pautina   (18.06.2008 в 14:28)   письмо автору
 
   для: AcidTrash   (18.06.2008 в 14:25)
 

Прошу прощения моя вина.

   
 
 автор: AcidTrash   (18.06.2008 в 14:25)   письмо автору
 
   для: pautina   (18.06.2008 в 14:10)
 

Вы внимательно мой запрос смотрели
mysql_query("insert into var_otveta(id_parent, var_otveta) values(1, 'Подводная лодка')") or die (mysql_error());  

Во всех запросах на добавление уберите id_var_otveta.

   
 
 автор: pautina   (18.06.2008 в 14:10)   письмо автору
 
   для: AcidTrash   (18.06.2008 в 14:01)
 

Сейчас вторая таблица выглядит так

// Создаём таблицу ответов
mysql_query("CREATE TABLE var_otveta (  
                    id_var_otveta INT NOT NULL AUTO_INCREMENT, 
                    id_parent INT NOT NULL,                     
                    var_otveta TINYTEXT NOT NULL,
                    PRIMARY KEY (id_var_otveta)                    
                    )"); 
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(1, 'Подводная лодка')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(1, 'Поезд')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(1, 'Самолёт')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(1, 'Дерижабль')") or die (mysql_error());

mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(2, 'Куб')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(2, 'Пирамида')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(2, 'Мяч')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(2, 'Конус')") or die (mysql_error());

mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(3, 'Птица')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(3, 'Корова')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(3, 'Крокодил')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(3, 'Жираф')") or die (mysql_error());

Но сообщение Duplicate entry '1' for key 1 выводится всё равно от повторяющихся значений поля id_parent я избавится не могу они обеспечивают связь с таблицей 1

   
 
 автор: AcidTrash   (18.06.2008 в 14:01)   письмо автору
 
   для: pautina   (18.06.2008 в 13:52)
 

Вообще это поле не трогать
mysql_query("insert into var_otveta(id_parent, var_otveta) values(1, 'Подводная лодка')") or die (mysql_error()); 

   
 
 автор: pautina   (18.06.2008 в 13:52)   письмо автору
 
   для: AcidTrash   (18.06.2008 в 13:42)
 

Да пусть во 2-ой таблице id_var_otveta будет ключевым,

mysql_query("CREATE TABLE var_otveta (  
                    id_var_otveta INT NOT NULL AUTO_INCREMENT, 
                    id_parent INT NOT NULL,                     
                    var_otveta TINYTEXT NOT NULL,
                    PRIMARY KEY (id_var_otveta)                    
                    )"); 
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(0, 1, 'Подводная лодка')") or die (mysql_error());

Если id_var_otveta AUTO_INCREMENT в values на это место писать 0 или нет

   

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования