|
|
|
| Доброго времени суток! Проблема такая, есть база данных, в ней 2 таблицы vopros и otvet. Нужно сформировать запрос таким образом чтобы поля выводились из двух таблиц и вставляли значение из одной таблицы в другую. Что вроде:
$result = mysql_query("SELECT * FROM otvet и поле из таблицы vopros ") и дальше нужно сделать так чтобы можно было в этом же запросе вытащить содержимое из таблицы vopros.
Так же и со вставкой:
$result2 = mysql_query("INSERT INTO otvet () VALUES ('') и из таблицы vopros вставить поле=>$поле")
Помогите пожалуйста, подскажите! :-o | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 08:49)
| | покажите структуру таблиц, по какому полю они связаны и расскажите что у вас за проект.
вставить нужно в третью таблицу? | |
|
|
|
|
|
|
|
для: Valick
(21.02.2012 в 09:02)
| | в таблице vopros идет всего 2 поля(id,question) в таблице otvet 5 полей(id,responce,question,ip,view). Результат должен быть следующий:
Пользователь отвечает на вопрос, при нажатии "Ответить" вылазеет его ответ,ip,вопрос на который он ответил и количество ответов на этот вопрос. Мне надо чтобы вопрос из таблицы vopros попадал в таблицу otvet в поле question. чтобы потом его вывести. Как то так. | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 09:07)
| | понятно
тогда значит так
таблица question
id_q - тип int первичный ключ с автоинкрементом
question - тип varchar или text
таблица otvet
id - тип int первичный ключ с автоинкрементом
id_q - тип int поле связи с таблицей вопросов
responce - тип varchar или text
ip - скорее всего тип int
view - скорее всего тип int (уточните назначение этого поля) | |
|
|
|
|
|
|
|
для: Valick
(21.02.2012 в 09:20)
| | таблица vopros:
id - (int) auto_increment первичный ключ
question - (varchar(255))
Таблица otvet:
id - (int) auto_increment первичный ключ
question - стояло text поставлю int
responce - (text)
ip - (varchar(100)) - потому что ip передается через переменную
view - (int) - так будет счётчик
Таблица выглядит таким образом, могу выложить код для большей ясности. | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 09:27)
| | question - стояло text поставлю int
лучше обозвать поля как я написал, так сразу видно по какому полю идет связь таблиц
сейчас перейдем к запросам
view - это счетчик чего? количества просмотров? или количества ответов на вопрос, если последнее то это неправильный подход. | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 09:27)
| | с формированием ссылки для ответа на вопрос проблемы есть? | |
|
|
|
|
|
|
|
для: Valick
(21.02.2012 в 09:43)
| | щас код выложу, он вес написан в одном файле, а вы посмотрите скажите что не так:
index.php
<?php
$db = mysql_connect("localhost","motvei","123456");
mysql_select_db("golos",$db);
$result = mysql_query("SELECT question FROM vopros ORDER BY rand() LIMIT 1");
$myrow = mysql_fetch_array($result);
if (isset($_POST['id'])) { $id = $_POST['id']; }
if (isset($_POST['responce'])) { $responce = $_POST['responce']; }
if (isset($_POST['ip'])) { $ip = $_POST['ip']; }
if (isset($_POST['view'])) { $view = $_POST['view']; }
if (isset($_POST['question'])) { $question = $_POST['question']; }
if ($_REQUEST['submit'])
{
if (strlen($responce) <=0 or strlen($responce) < 3) { echo "<p style='color:red;'>Вы не заполнили поле либо ввели менее 3-х символов</p>"; }
else {
$ip = $_SERVER['REMOTE_ADDR'];
$result2 = mysql_query("INSERT INTO otvet (responce,ip,view) VALUES ('$responce','$ip','$view')");
if ($result2 == 'true')
{ echo "<p style='color:green; font-weight:bold;'>Ваш ответ понятен!</p>"; }
}
}
if ($result2 == 'true')
{
$result3 = mysql_query("SELECT * FROM otvet",$db);
$myrow3 = mysql_fetch_array($result3);
echo " <fieldset><legend> ";
echo " <p><b>Ваш IP:</b> $ip</p> ";
echo "<p><b>Вопрос был:</b> $question</p>";
echo "<p><b>Ваш ответ:</b> <u>$responce</u></p>";
echo "<p><b>На данный вопрос ответило:</b>$view человек(а)</p>";
echo " </legend></fieldset> ";
}
?>
<html>
<head>
<title>Голосование!</title>
</head>
<body>
<p><? echo $myrow['question']; ?></p>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="post">
<textarea cols="40" rows="5" name="responce" id="responce"></textarea>
<input type="hidden" name="ip" value="ip">
<p><input type="submit" name="submit" value="Проголосовать!"></p>
</body>
</html>
Не судите строго, не профессионал))) | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 09:48)
| | постойте, так у вас всетаки голосование?
или вы на базе скрипта голосования пытаетесь сделать что-то другое? | |
|
|
|
|
|
|
|
для: Valick
(21.02.2012 в 10:13)
| | Это не голосование. Просто в базе есть вопросы они выпадают случайным образом, это никакой не скрипт который будет где то работать, это просто ТЗ. Поэтому я прошу вас помочь, как лучше сделать, чтобы не ударить лицом в грязь. Суть проблемы вам понятна? | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 10:33)
| | суть то понятна, но мне гораздо проще работать с конкретным ТЗ, а то фантазия слишком бурная :)
я уже начал писать свой вариант, но при таком раскладе думаю наверно придется докорректировать ваш вариант
сколько у меня времени на все по все? | |
|
|
|
|
|
|
|
для: Valick
(21.02.2012 в 10:46)
| | в принципе я не тороплю. Мне нужно так чтобы не кто то делал) а чтобы я в дальнейшем мог использовать такую конструкцию, короче надо догнать))) | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 11:21)
| | Мне нужно так чтобы не кто то делал)
цель не дать вам готовый код, а показать как нужно подходить к решению задачи как её разбить на подзадачи и тд. | |
|
|
|
|
|
|
|
для: Valick
(21.02.2012 в 11:56)
| | я вообще в правильном направлении шел? | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 12:00)
| | Ну почти, если не принимать во внимание решение проблемы "в лоб", ну и вам не хватает терминов, что бы грамотно объяснить ситуацию. Поэтому приходиться слегка додумывать и задавать кучу наводящих вопросов, что бы додумывать в правильном направлении. | |
|
|
|
|
|
|
|
для: Valick
(21.02.2012 в 12:38)
| | код сильно изменится? | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 12:40)
| | ну вообще да, и по хорошему будет состоять из не одного файла | |
|
|
|
|
|
|
|
для: Valick
(21.02.2012 в 12:43)
| | ну я надеюсь не больше 2 файлов? Чтобы я потом объяснить мог как я это всё делал. И по поводу книжки) | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 12:54)
| | я сейчас пытаюсь привести ваш код в порядок, у вас там одна логическая ошибка есть
потом если будет что не понятно спросите по коду | |
|
|
|
|
|
|
|
для: Valick
(21.02.2012 в 13:01)
| | как ваши дела? | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 13:48)
| | отлично, спасибо что спросили :)
посто работа приехала, занят сейчас и ваш код медленно продвигается | |
|
|
|
|
|
|
|
для: Valick
(21.02.2012 в 14:00)
| | до 18:00 успеете? | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 14:02)
| | ну примерно вот так
<?php
$db = mysql_connect("localhost","root","");
mysql_query('SET NAMES cp1251');
mysql_select_db("golos",$db);
if ($_REQUEST['submit']){
if (isset($_POST['id_q'])) { $id_q = $_POST['id_q']; }
if (isset($_POST['responce'])) { $responce = $_POST['responce']; }
if (isset($_POST['ip'])) { $ip = $_POST['ip']; }
if (strlen($responce) <=0 or strlen($responce) < 3){
echo "<p style='color:red;'>Вы не заполнили поле либо ввели менее 3-х символов</p>";
}else{
$query = "SELECT * FROM vopros WHERE id_q=$id_q";
$res = mysql_query($query);
$m = mysql_fetch_assoc($res);
$query = "INSERT INTO otvet (id_q,responce,ip,date_post) VALUES ($m[id_q],'$responce','$ip',NOW())";
$res = mysql_query($query) or die(mysql_error());
}
}
if ($res){
$query = "SELECT question, responce, date_post
FROM otvet
JOIN vopros
USING (id_q)
WHERE vopros.id_q=$id_q AND otvet.ip='$ip'";
$res = mysql_query($query);
$m = mysql_fetch_array($res);
echo "<p><b>Ваш IP:</b> $ip</p> ";
echo "<p><b>Вопрос:</b> $m[question]?</p>";
echo "<p><b>Ваши ответы:</b>(".mysql_num_rows($res).")<ul>";
mysql_data_seek($res, 0);
while($m = mysql_fetch_array($res)){
echo "<li>$m[responce] (ответ добавлен $m[date_post])</li>";
}
$query = "SELECT COUNT(DISTINCT ip) AS t FROM otvet WHERE id_q=$id_q";
$res = mysql_query($query);
$c = mysql_fetch_array($res);
echo "</ul><p><b>Количество пользователей ответивших на данный вопрос:</b>$c[t] человек(а)</p><hr />";
}
$ip = $_SERVER['REMOTE_ADDR'];
$query = "SELECT * FROM vopros ORDER BY rand()";
$res = mysql_query($query);
if($res){
if(mysql_num_rows($res) > 0){
$m = mysql_fetch_assoc($res);
}else{
echo "База данных не содержит вопросов"; exit;
}
}else{
echo "Ошибка выборки."; exit;
}
?>
<html>
<head>
<title>Голосование!</title>
</head>
<body>
<p>Всего вопросов в базе данных: <?=mysql_num_rows($res) ?></p>
<p>Текущий случайный вопрос: <br /><li><?=$m[question]; ?>?</li></p>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="post">
<textarea cols="40" rows="5" name="responce" id="responce"></textarea>
<input type="hidden" name="ip" value="<?=$ip ?>">
<input type="hidden" name="id_q" value="<?=$m[id_q] ?>">
<p><input type="submit" name="submit" value="Проголосовать!"></p>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: Valick
(21.02.2012 в 16:16)
| | Я так понял что и в таблице vopros и в таблице otvet поле id_q должно быть одинаковым? | |
|
|
|
|
|
|
|
для: Digidie
(22.02.2012 в 08:02)
| | да, это и есть связь таблиц | |
|
|
|
|
|
|
|
для: Valick
(22.02.2012 в 08:05)
| | и ещё откуда мы взяли date_post? | |
|
|
|
|
|
|
|
для: Digidie
(22.02.2012 в 08:09)
| | это я в таблице ненужное поле veiw заменил на date_post (DATETIME) | |
|
|
|
|
|
|
|
для: Valick
(22.02.2012 в 08:46)
| | заменил всё как должно пишет:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in X:\home\localhost\www\zadanie\index.php on line 28
Ваш IP: 127.0.0.1
Вопрос: ?
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in X:\home\localhost\www\zadanie\index.php on line 32
Ваши ответы:()
Warning: mysql_data_seek() expects parameter 1 to be resource, boolean given in X:\home\localhost\www\zadanie\index.php on line 33
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in X:\home\localhost\www\zadanie\index.php on line 34
Можете объяснить из за чего возникают такие ошибки? | |
|
|
|
|
|
|
|
для: Digidie
(22.02.2012 в 08:57)
| | вы код из браузера скопировали или руками меняли?
имена полей в таблице такая как в моем втором посте?
с учетом замены veiw на date_post
___
и еще учитесь пользоваться конструкцией or die(mysql_error())
сэкономит много нервов и времени :) | |
|
|
|
|
|
|
|
для: Valick
(22.02.2012 в 09:02)
| | я код сначала скопировал потом руками) менял. Имена полей точно такие же как в вашем коде, заменил view на date_post.
P.S. Посоветуйте какой нить мануал, чтобы просто и понятно и практика была. | |
|
|
|
|
|
|
|
для: Digidie
(22.02.2012 в 09:15)
| | если имена правильные проверяйте типы полей
ну а по поводу мануала я уже говорил - это книга... хорошая книга | |
|
|
|
|
|
|
|
для: Valick
(22.02.2012 в 10:16)
| | имена правильные. Сейчас код выглядит след. образом:
<?php
$db = mysql_connect("localhost","motvei","123456");
mysql_query('SET NAMES cp1251');
mysql_select_db("golos",$db);
if ($_REQUEST['submit']){
if (isset($_POST['id_q'])) { $id_q = $_POST['id_q']; }
if (isset($_POST['responce'])) { $responce = $_POST['responce']; }
if (isset($_POST['ip'])) { $ip = $_POST['ip']; }
if (isset($_POST['date_post'])) { $date_post = $_POST['date_post']; }
if (isset($_POST['question'])) { $question = $_POST['question']; }
if (strlen($responce) <=0 or strlen($responce) < 3){
echo "<p style='color:red;'>Вы не заполнили поле либо ввели менее 3-х символов</p>";
}else{
$result = mysql_query("SELECT * FROM vopros WHERE id_q=$id_q"); /*Выводим вопрос*/
$myrow = mysql_fetch_assoc($result); /*Кидаем в массив*/
$result2 = mysql_query("INSERT INTO otvet (id_q,responce,ip,date_post) VALUES ($myrow[id_q],'$responce','$ip')") or die(mysql_error()); /*заносим в базу информацию*/
}
}
if ($result2){
$result3 = mysql_query("SELECT question, responce, date_post
FROM otvet
JOIN vopros
USING (id_q)
WHERE vopros.id_q=$id_q AND otvet.ip='$ip'");
$myrow3 = mysql_fetch_array($result3);
echo "<p><b>Ваш IP:</b> $ip</p> ";
echo "<p><b>Вопрос:</b> $myrow[question]?</p>";
echo "<p><b>Ваши ответы:</b>(".mysql_num_rows($result3).")<ul>";
mysql_data_seek($result3, 0);
while($myrow3 = mysql_fetch_array($result3)){
echo "<li>$myrow3[responce] (ответ добавлен $myrow[date_post])</li>";
}
$result4 = mysql_query("SELECT COUNT(DISTINCT ip) AS t FROM otvet WHERE id_q=$id_q");
$myrow4 = mysql_fetch_array($result4);
echo "</ul><p><b>Количество пользователей ответивших на данный вопрос:</b>$myrow4[t] человек(а)</p><hr />";
}
$ip = $_SERVER['REMOTE_ADDR'];
$query = "SELECT * FROM vopros ORDER BY rand()";
$res = mysql_query($query);
if($res){
if(mysql_num_rows($res) > 0){
$m = mysql_fetch_assoc($res);
}else{
echo "База данных не содержит вопросов"; exit;
}
}else{
echo "Ошибка выборки."; exit;
}
?>
<html>
<head>
<title>Голосование!</title>
</head>
<body>
<p>Всего вопросов в базе данных: <?=mysql_num_rows($res) ?></p>
<p>Текущий случайный вопрос: <br /><li><?=$m[question]; ?>?</li></p>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="post">
<textarea cols="40" rows="5" name="responce" id="responce"></textarea>
<input type="hidden" name="ip" value="<?=$ip ?>">
<input type="hidden" name="id_q" value="<?=$m[id_q] ?>">
<p><input type="submit" name="submit" value="Проголосовать!"></p>
</body>
</html>
Но выдает ошибку:
Column count doesn't match value count at row 1
По поводу полей:
vopros
id_q(int)
question - (varchar(255))
otvet
id_q(int)
question(int)
responce(text)
ip(varchar(100))
date_post(datetime)
Помогите добить плз,сегодня край надо. | |
|
|
|
|
|
|
|
для: Digidie
(22.02.2012 в 10:52)
| | я же вам сказал сделать имена полей как в моем втором посте
это у вас
id_q(int) - первичный ключ автоинкремент
question(int)
responce(text)
ip(varchar(100))
date_post(datetime)
|
а надо вот так
id(int) - первичный ключ автоинкремент
id_q(int)
responce(text)
ip(varchar(100))
date_post(datetime)
|
если пока не понятно почему имена такие, то просто поверьте, потом поймете
и код скопируйте из темы без каких либо изменений | |
|
|
|
|
|
|
|
для: Valick
(22.02.2012 в 11:57)
| | спасибо большое и правда работает,буду разбираться, и всё таки на счёт книжки, какую можете посоветовать новичку чтобы было понятно написано и самое главное было побольше примеров и кода с объяснениями? | |
|
|
|
|
|
|
|
для: Digidie
(22.02.2012 в 12:13)
| | вы зря просите побольше примеров и кода
лучше начните с хорошей теории, иначе рискуете упустить важные моменты и MySQL так навсегда и останется "непобеждённой"
размышления
___
можете дойти до книжного магазина и переписать какие есть книги в наличии
напишите их сюда, а я попробую определиться с советом | |
|
|
|
|
|
|
|
для: Valick
(22.02.2012 в 12:21)
| | вот кстати эту книжку я вчера и скачал. А так мне нужно mysql и php, чтобы не путаться в элементарных функциях, а так же грамотно сочитать php и mysql. Вот многие например советуют PHP5 в подлиннике Котерова и Костарева, или Лари Ульман mysql конструкция языка, Лаура Томпсон и Люк Веллинг - php и mysql. Вы ведь тоже куда то заглядываете. Посоветуйте. | |
|
|
|
|
|
|
|
для: Digidie
(22.02.2012 в 12:43)
| | в том-то и дело, что лично я считаю что SQL нужно учить отдельно от других языков
я сейчас не могу объяснить детально почему
грамотное сочетание php и mysql - это так:
PHP - использовать по возможности только для вывода результата в браузер + функции работы с mysql а их так мало что там и учить нечего, весь остальной функционал это MySQL с его разнообразными запросами.
Самое главное уметь составлять правильные запросы, а тут ни PHP ни один другой язык не поможет.
Имея знания в PHP вы будете стараться непроизвольно переложить некоторый функционал на него, потому-что знаете как, а это в корне не верно, лучше при изучении запросов про РНР вообще забыть. | |
|
|
|
|
|
|
|
для: Valick
(22.02.2012 в 12:58)
| | Ну и на последок для уверенности, я повставлял комменты, посмотрите пожалуйста, я всё правильно понял?
P.S. Чтобы потом под себя изменить.
<?php
$db = mysql_connect("localhost","motvei","123456");
mysql_select_db("golos",$db);
if ($_REQUEST['submit']){
if (isset($_POST['id_q'])) { $id_q = $_POST['id_q']; }
if (isset($_POST['responce'])) { $responce = $_POST['responce']; }
if (isset($_POST['ip'])) { $ip = $_POST['ip']; }
if (strlen($responce) <=0 or strlen($responce) < 3){
echo "<p style='color:red;'>Вы не заполнили поле либо ввели менее 3-х символов</p>";
}else{
$query = "SELECT * FROM vopros WHERE id_q=$id_q"; /*Вытаскиваем все вопросы*/
$res = mysql_query($query); /*Заносим выполнение запроса в переменную*/
$m = mysql_fetch_assoc($res); /*Заносим вытащенные данные в массив а массив в переменную*/
$query = "INSERT INTO otvet (id_q,responce,ip,date_post) VALUES ($m[id_q],'$responce','$ip',NOW())"; /*Вставляем значения полей в базу---зачем нужен NOW не понятно---*/
$res = mysql_query($query) or die(mysql_error());
}
}
if ($res){ /*Если данные вставились формируем JOIN запрос и объединяем таблицу vopros и otvet ---тут немного непонятно,как это сделано---*/
$query = "SELECT question, responce, date_post
FROM otvet
JOIN vopros
USING (id_q)
WHERE vopros.id_q=$id_q AND otvet.ip='$ip'";
$res = mysql_query($query); /*Помещаем запрос в переменную*/
$m = mysql_fetch_array($res); /*создаем массив и помещаем его в переменную*/
echo "<p><b>Ваш IP:</b> $ip</p> "; /*тут выводим ip непонятно из какого запроса*/
echo "<p><b>Вопрос:</b> $m[question]?</p>"; /*тут выводим вопрос на который отвечал человек из последнего запроса*/
echo "<p><b>Ваши ответы:</b>(".mysql_num_rows($res).")<ul>"; /*Считаем сколько всего ответов на этот вопрос*/
mysql_data_seek($res, 0); /*непонял для чего нужно*/
while($m = mysql_fetch_array($res)){ /*выводим в цикле переменную с массивом до тех пор пока в поле responce есть записи*/
echo "<li>$m[responce] (ответ добавлен $m[date_post])</li>"; /*выводим дату и время добавления ответа*/
}
$query = "SELECT COUNT(DISTINCT ip) AS t FROM otvet WHERE id_q=$id_q"; /*считаем сколько раз человек зашел с одного ip и выводим без повторения*/
$res = mysql_query($query); /*заносим запрос в переменную*/
$c = mysql_fetch_array($res); /*заносим в переменную массив из результатов запроса*/
echo "</ul><p><b>Количество пользователей ответивших на данный вопрос:</b>$c[t] человек(а)</p><hr />"; /*выводим кол-во ответов с одного ip*/
}
$ip = $_SERVER['REMOTE_ADDR']; /*узнаем ip отвечавшего*/
$query = "SELECT * FROM vopros ORDER BY rand()"; /*формируем запрос по выводу вопроса из базы*/
$res = mysql_query($query);
if($res){ /*тут проверяем "если в базе есть вопросы то тогда заносим результат в массив и помещаем в переменную"*/
if(mysql_num_rows($res) > 0){
$m = mysql_fetch_assoc($res);
}else{
echo "База данных не содержит вопросов"; exit;
}
}else{
echo "Ошибка выборки."; exit;
}
?>
<html>
<head>
<title>Голосование!</title>
</head>
<body>
<p>Всего вопросов в базе данных: <?=mysql_num_rows($res) ?></p> <!--Здесь так понимаю выводяться вопросы сформированные в последнем запросе -->
<p>Текущий случайный вопрос: <br /><li><?=$m[question]; ?>?</li></p> <!--Здесь тоже вопрос из последнего запроса -->
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="post">
<textarea cols="40" rows="5" name="responce" id="responce"></textarea>
<input type="hidden" name="ip" value="<?=$ip ?>"> <!--Здесь передаем ip -->
<input type="hidden" name="id_q" value="<?=$m[id_q] ?>"> <!--Здесь тоже немного непонятно -->
<p><input type="submit" name="submit" value="Проголосовать!"></p>
</body>
</html>
|
И ещё у меня вопрос, вот у вас везде в запросах одни и те же переменные, разве так можно? Если я например вместо $query поставлю $result получится какая то путаница) | |
|
|
|
|
 3.8 Кб |
|
|
для: Digidie
(22.02.2012 в 13:26)
| | прикрепил | |
|
|
|
|
|
|
|
для: Valick
(22.02.2012 в 14:15)
| | Спасибо большое, разобрался, теперь если вопросы будут возникать, буду обращаться))) если не против) | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 08:49)
| | Обычно в этом случае прибегают к двухтабличному запросу,
SELECT
vopros.question AS question,
otvet.responce AS responce,
otvet.ip AS ip,
otvet.view AS view
FROM
vopros
LEFT JOIN
otvet
ON
vopros.id = otvet.question
| только otvet.question должен иметь тип и значение совпадающее с vopros.id. | |
|
|
|
|
|
|
|
для: cheops
(21.02.2012 в 11:18)
| | в какой кусок кода вставить в result3 ??? | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 11:40)
| | Зависит от того, чего вы хотите добиться... да вы сначала просто запрос выполните и посмотрите что он выдает (и вообще работает ли, у меня же нет вашего дампа, чтобы проверить/отладить), это то, что вам нужно или нет? Лучше к цели двигаться маленькими шагами, на каждом шаге четко разбираясь, что происходит. | |
|
|
|
|
|
|
|
для: cheops
(21.02.2012 в 12:19)
| | тот запрос который вы написали не дал ничего. А добиться я хочу того чтобы из таблицы vopros поле question вставлялось в таблицу otvet в аналогичное поле. А затем в echo "Вопрос был: $question"; вывести сам вопрос на который ответил пользователь. Как то так. И если есть дайте пожалуйста ссылку на какой нибудь мануал по вот таким запросам? | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 12:28)
| | Без хорошей книги вам ни одна ссылка не поможет (немного утрированно).
В интернете столько лажи, что не зная правильного ответа практически не возможно его найти. Хорошая книга дает вам базу с учетом которой вы уже сможете самомтоятельно оценить правильность ответа на свои вопросы. | |
|
|
|
|
|
|
|
для: Valick
(21.02.2012 в 12:42)
| | в теории можно быть с 7 пядями во лбу))) а на практике накласть. Но как говориться нет дыма без огня. А так можете что нить посоветовать из книжки? И ещё, код сильно изменится? | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 12:47)
| | >И ещё, код сильно изменится?
Лучше сначала спроектировать базу данных, не обращая внимания на код. Когда вы будете уверены, что все сущности описаны и связи расставлены, можно начинать кодировать. Код можно переписать в любой момент, это не сложно, а вот живую работающую базу перекраивать гораздо сложнее и потребуется составлять много довольно изощренных запросов. Если такого опыта нет, лучше сразу с самого начала тщательно проектировать базу данных. | |
|
|
|
|
|
|
|
для: Digidie
(21.02.2012 в 12:28)
| | Потому, что сначала нужно преобразовать otvet.question таким образом, чтобы таблицы были связаны. Вам не обязательно вставлять данные физически, достаточно связать таблицы друг с другом и вы получите возможность в запросе получать данные сразу из двух таблиц.
>И если есть дайте пожалуйста ссылку на какой нибудь мануал по вот таким запросам?
Мы написали несколько книг по MySQL, они правда бумажные. Если хотите именно электронную документацию, можно обратиться к русской документации на нашем сайте. Это, конечно, старенький перевод, но там есть руководство (глава 4, если не ошибаюсь), которое вводит в курс дела. Однако, SQL, как и любой язык программирования нужно серьезно изучать - он далеко не прост и имеет декларативную природу (т.е. допустим знание императивного языка программирования в его освоении вам уже не поможет). | |
|
|
|