Извлечение шаблона записи из базы данных

#php #mysql #pattern-matching

#php #MySQL #Сопоставление с шаблоном

Вопрос:

У меня в базе данных есть такая таблица.

 |   id   |   yes_answer   |   no_answer  |
|   a01  |      a05       |     a04      |
|   a03  |      a16       |     a32      |
|   a04  |      c01       |     a05      |
|   a05  |      a06       |     c06      |
|   a06  |      a08       |     a09      |
|   a08  |      c03       |     a09      |
|   a09  |      a03       |              |
|   a16  |      a33       |     a02      |
|   a32  |      c04       |     a16      |
|   a33  |      c05       |              |
  

В качестве объяснения :
1. id столбец представляет идентификатор вопроса. он связан с другой таблицей в моей базе данных.
2. yes_answer столбец представляет следующий вопрос (например a01 ) или вывод (например c04 ), который вы получаете, когда отвечаете на вопрос, представленный id столбцом со yes TRUE 1 значением или или.
3. no_answer обычно это то же yes_answer column самое, что и, за исключением того, что вы получаете его, когда отвечаете на вопрос, представленный id столбцом со no FALSE 0 значением , , .
4. Все id , yes_answer , no_answer связаны друг с другом. Результатом является шаблон. Когда вы хотите найти путь, который приведет к ответу c01 , это будет похоже c05 -> a33 , a16 , a32 , a03 , a09 , a06 , a05 , a01 .

И здесь я пытаюсь отследить шаблон из answer столбца, отмеченного c как c01 или c02 как выше. И я смог отследить только его начальное значение, например ( c05 -> a33 ), а остальное пусто.

Вот мой код

 $sqlQueryYes="SELECT * FROM tbl_path_inference WHERE yes_answer='c05'";
$execQueryYes=mysql_query($sqlQueryYes);<br />
$queryStatus=mysql_num_rows($execQueyYes); //Getting Query Status<br />
if($queryStatus == 1) {
    $getDataYes=mysql_fetch_array($execQueryYes);
    $ansPath=$ansPath." ".$getDataYes['id'];
} else { // if cant find answer on column yes_answer try on no_answer
    $sqlQueryNo="SELECT * FROM tbl_path_inference WHERE no_answer='c05'";
    $execQueryNo=mysql_query($sqlQueryNo);
    $getDataNo=mysql_fetch_array($execQueryNo);
    $ansPath=$ansPath." ".$getDataNo;
}
  

У кого-нибудь есть решение по этому вопросу. Я все еще работаю над этим сейчас.

Комментарии:

1. Вот полезный сайт: mikehillyer.com/articles/managing-hierarchical-data-in-mysql

2. Я это исправил. Вот мой пример кода

3. Пожалуйста, поместите этот ответ в блок ответов ниже в качестве самостоятельного ответа, хорошо?

4. Это не ответ. Мой код может извлекать только один путь. Не полный путь, например, когда я пытаюсь найти путь c05 , я могу только извлечь a33 . Вот и все. Только один путь.

5. Почему вы так пишете каждое слово с заглавной буквы? Это действительно трудно читать. Это глупое мобильное устройство?