Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (20) « Первая ... 3 4 [5] 6 7 ... Последняя » ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Простой тест на PHP
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 23 дня
Карма: 1




Вот что получилось
Про это вы твердили?

user posted imageuser posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 17 дней
Карма: 167




Цитата (maruo @ 15.11.2015 - 23:31)
А вот как в phpmyadmin это сделать будет идентично?

Командная строка для администраторов, phpmyadmin для программистов.
Цитата (maruo @ 15.11.2015 - 23:31)
Надо будет question_id соединить с id_qiestion с первой таблицы?
что мне это даст?

Это даст то, что таблицы будут связаны, без этого невозможно работать с данными на уровне СУРБД. Правильность ответа на вопрос можно будет проверить всего одним SQL запросом к базе данных. И более того, правильность любого количества ответов можно проверить всего одним (этим же) SQL запросом. Вы просто пока не понимаете, что по части обработки данных РНР (скриптовый, но по сути императивный язык) и рядом не стоит с MySQL (декларативный язык).


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 23 дня
Карма: 1




Цитата (Valick @ 16.11.2015 - 08:06)
Цитата (maruo @ 15.11.2015 - 23:31)
А вот как в phpmyadmin это сделать будет идентично?

Командная строка для администраторов, phpmyadmin для программистов.
Цитата (maruo @ 15.11.2015 - 23:31)
Надо будет question_id соединить с id_qiestion с первой таблицы?
что мне это даст?

Это даст то, что таблицы будут связаны, без этого невозможно работать с данными на уровне СУРБД. Правильность ответа на вопрос можно будет проверить всего одним SQL запросом к базе данных. И более того, правильность любого количества ответов можно проверить всего одним (этим же) SQL запросом. Вы просто пока не понимаете, что по части обработки данных РНР (скриптовый, но по сути императивный язык) и рядом не стоит с MySQL (декларативный язык).

Ну я так понял командную строку все равно придется изучать.
Просто это очень нудный процесс, Естественно интерфейс лучше)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 17 дней
Карма: 167




Цитата (maruo @ 16.11.2015 - 10:01)
Ну я так понял командную строку все равно придется изучать.

зачем?


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 23 дня
Карма: 1




Ну вот снова недопонимания.

user posted image

Я вроде бы связал их или нет? я не пойму.

В одной из таблиц я нажал связь, потом выбрал в поле внутренняя связь таблицу и поле с чем якобы связать?

Вопрос ? Ограничение внешнего ключа (INNODB)? что это
И связались ли они?

При заполнении столбцов в поле q_id был выпадающий список из первой таблицы в полем q_id.

Да и потом решил я вывести все данные из таблицы ответов где q_id который якобы связал по 1 идентификатору.
Я то думал что мне в массив попадут все данные которые под q_id 1 , но оказывается только первая строка.

тут нужен цикл? что бы вывести все?
Или же тут в запросе проблема?

Сколько щас не копался в рунете не нашел ничего о том как вывести по внешнему ключу)
Или я плохо ищу

Это сообщение отредактировал maruo - 16.11.2015 - 12:37
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 17 дней
Карма: 167




Для начала можно отказаться от INNODB в пользу MyISAM где поняте внешнего ключа условное и БД ничего не делает за вас.
Цитата (maruo @ 16.11.2015 - 11:34)
Да и потом решил я вывести все данные из таблицы ответов где q_id который якобы связал по 1 идентификатору

подкрепляйте вопрос запросом, лучше один раз увидеть запрос, чем сто раз его описывать словами smile.gif
По поводу цикла, при работе с БД возмите за правило, что циклов нет в природе. Как только у вас появляется желание сделать ту или иную выборку с помощь. цикла, у вас как у собаки павлова должна загораться лампочка в голове, и вы должны вспомнить мои слова и понять что вы на ложном пути.
Цитата (maruo @ 16.11.2015 - 11:34)
Или я плохо ищу

Вы просто еще не знаете точно что нужно искать, и это нормально. Начинать всегда тяжело.


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 23 дня
Карма: 1




Цитата (Valick @ 16.11.2015 - 14:28)
Для начала можно отказаться от INNODB в пользу MyISAM где поняте внешнего ключа условное и БД ничего не делает за вас.
Цитата (maruo @ 16.11.2015 - 11:34)
Да и потом решил я вывести все данные из таблицы ответов где q_id который якобы связал по 1 идентификатору

подкрепляйте вопрос запросом, лучше один раз увидеть запрос, чем сто раз его описывать словами :)
По поводу цикла, при работе с БД возмите за правило, что циклов нет в природе. Как только у вас появляется желание сделать ту или иную выборку с помощь. цикла, у вас как у собаки павлова должна загораться лампочка в голове, и вы должны вспомнить мои слова и понять что вы на ложном пути.
Цитата (maruo @ 16.11.2015 - 11:34)
Или я плохо ищу

Вы просто еще не знаете точно что нужно искать, и это нормально. Начинать всегда тяжело.

Допустим. ищу не могу найти информацию по внешнему ключу.
Везде описываю где применяют их как создать связь.А о том как вывести из таблицы ни слова ни строки кода.

Вот и проблема вся, не получается вывести выводится только 1 строка .

$result = mysql_query("SELECT * FROM question WHERE q_id='1'",$db) or die(mysql_error());
$myrow = mysql_fetch_array($result);
$result_ans = mysql_query("SELECT * FROM answer WHERE q_id='1'",$db) or die(mysql_error());
$myrow_ans = mysql_fetch_array($result_ans);


q_id и есть внешний ключ первой таблицы, скрины 2х таблиц есть несколькими постами выше.

Если читать запрос как учили, то получается
выбери все поля из таблицы answer Где q_id равна единице.
но На деле не получается так)
Тут либо я не создал между ними связь, либо запрос неверный) одно из двух)

Это сообщение отредактировал maruo - 16.11.2015 - 14:58
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 17 дней
Карма: 167




Цитата (maruo @ 16.11.2015 - 13:55)
Вот и проблема вся, не получается вывести выводится только 1 строка

вы получаете только первую строку из результирующего набора
сам запрос выбрал все строки удовлетворяющие условию. а вот, что бы
получить их все в РНР mysql_fetch_array() должен быть в цикле


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 23 дня
Карма: 1




Цитата (Valick @ 16.11.2015 - 16:34)
Цитата (maruo @ 16.11.2015 - 13:55)
Вот и проблема вся, не получается вывести выводится только 1 строка

вы получаете только первую строку из результирующего набора
mysql_fetch_array() должен быть в цикле

По поводу цикла, при работе с БД возмите за правило, что циклов нет в природе. Как только у вас появляется желание сделать ту или иную выборку с помощь. цикла, у вас как у собаки павлова должна загораться лампочка в голове, и вы должны вспомнить мои слова и понять что вы на ложном пути.

вот поэтому я и спросил у вас значит тут место имеет быть цикл?)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 17 дней
Карма: 167




Я думал вы имели ввиду запрос в цикле. Запросов в цикле быть не должно
а для получения результата применяется цикл while()

$result_ans = mysql_query("SELECT * FROM answer WHERE q_id='1'",$db) or die(mysql_error());
if($result_ans){
if(mysql_num_rows($result_ans)>0){
while($myrow_ans = mysql_fetch_array($result_ans){
echo '<pre>';
print_r($myrow_ans);
echo '</pre>';
}
}
}


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 23 дня
Карма: 1




Вот что и хотел узнать)
Спасибо)ЗА помощь) Все же здесь быстрее и точные ответы получаем нежели на киберфоруме)
Да, вы скобку забыли)
while($myrow_ans = mysql_fetch_array($result_ans)){


Это сообщение отредактировал maruo - 16.11.2015 - 17:16
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Razzwan  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Землянин
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 622
Пользователь №: 40774
На форуме: 1 год, 10 месяцев, 21 день
Карма: 10




Цитата (Valick @ 15.11.2015 - 23:37)
одна сущность - одна таблица
в моем сознании правильный ответ и неправильный вариант - это разные сущности. Например, у правильного ответа может быть еще столбец с объяснением, почему этот ответ правильный. Для неправильного варианта такое поле не имеет смысла. Можно и другие отличия выдумать, но это самое очевидное.

Есть еще одно преимущество: в момент формирования вопросов мы никак не можем узнать, какой ответ правильный - потому как указатель на правильный вариант хранится в отдельной таблице.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 17 дней
Карма: 167




Цитата (Razzwan @ 16.11.2015 - 17:07)
в моем сознании правильный ответ и неправильный вариант - это разные сущности

ну тут уж я точно не виноват
Цитата (Razzwan @ 16.11.2015 - 17:07)
Например, у правильного ответа может быть еще столбец с объяснением, почему этот ответ правильный.

а у неправильных ответов этот же столбец может объяснять почему этот ответ не правильный
Цитата (Razzwan @ 16.11.2015 - 17:07)
Есть еще одно преимущество: в момент формирования вопросов мы никак не можем узнать, какой ответ правильный - потому как указатель на правильный вариант хранится в отдельной таблице.

а этот перл я оставлю без комментария


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Razzwan  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Землянин
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 622
Пользователь №: 40774
На форуме: 1 год, 10 месяцев, 21 день
Карма: 10




Цитата (maruo @ 16.11.2015 - 14:55)
Допустим. ищу не могу найти информацию по внешнему ключу.
Везде описываю где применяют их как создать связь.А о том как вывести из таблицы ни слова ни строки кода.
Valick уже выше отвечал на этот вопрос, но мне кажется, ответ был не очень ясен.

Внешний ключ, как и все в программировании - это условность. Ясно, что каждый вариант ответа принадлежит какому-то вопросу. Т.е. id вопроса УСЛОВНО является внешним ключом для вариантов ответа. Внешний ключ - это еще один идентификатор. Просто указатель на то, какому вопросу принадлежит данный вариант ответа - ничего более. Другими словами: внешний ключ - это договоренность помечать, какому вопросу принадлежит данный вариант ответа в таблице с ответами. Поэтому какого-то особого синтаксиса при запросах здесь быть не может.

Т.к. в базах данных очень часто существуют такие связи, то в формате INNODB даже придумали встроенный механизм работы с внешними ключами. Механизм этот заключается в том, что можно, например, удалять все варианты ответа, принадлежащие конкретному вопросу, удаляя лишь вопрос. Согласитесь, удобно. Ведь нам ни к чему засорять таблицу вариантами ответов, вопрос для которых удален.

Этот пример использования внешнего ключа НЕ является единственным. Есть и другие. Но он достаточен для понимания сути.

Вот так должна выглядеть связь в типе таблицы INNODB:
user posted image


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Razzwan  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Землянин
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 622
Пользователь №: 40774
На форуме: 1 год, 10 месяцев, 21 день
Карма: 10




Цитата (Valick @ 16.11.2015 - 18:18)
> Цитата (Razzwan @ 16.11.2015 - 17:07)
> Например, у правильного ответа может быть еще столбец с объяснением, почему этот ответ правильный.

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

Цитата (Valick @ 16.11.2015 - 18:18)
> Цитата (Razzwan @ 16.11.2015 - 17:07)
> Есть еще одно преимущество: в момент формирования вопросов мы никак не можем узнать,
> какой ответ правильный - потому как указатель на правильный вариант хранится в отдельной таблице.

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

Я не знаю, можно ли для разных таблиц указывать разные права доступа, но, создав такую возможность, мой аргумент станет гарантированно оправданным.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (20) « Первая ... 3 4 [5] 6 7 ... Последняя » Ответ в темуСоздание новой темыСоздание опроса