$count =0;
$result1 = mysql_query("SELECT fwid FROM sbsw WHERE fword = '".$searchText."'");
while ($result2= mysql_fetch_array($result1))
{
$result3 = mysql_query("SELECT fsyn FROM wrsyn WHERE fwid = '".$result2[$count]."'");
$result4= mysql_fetch_array($result3);
print $result4[$count].'<br>';
$count++;
}
mysql_free_result($result1);
mysql_free_result($result3);
ответ
Давайте посмотрим, как mysql_fetch_array работ - например, если у вас есть структуру таблицы как
id | name | surname | role
1 John Smith user
2 Peter Qeep user
3 Mark Ziii admin
При выполнении запроса SELECT * FROM table
, а затем цикл $result = mysql_fetch_array($query)
, $result
всегда будет массив (4), содержащий
[0] => id,
[1] => name,
[2] => surname,
[3] => role
Таким образом, при выполнении запроса $result3 = mysql_query("SELECT fsyn FROM wrsyn WHERE fwid = '".$result2[$count]."'");
, в первой итерации, $count
будет 0
, который является ключевым для результат, возвращаемый предыдущим запросом, однако в любой дальнейшей итерации он будет увеличиваться, и это приведет к неопределенному ключу. Это означает, что вам нужно прекратить использовать переменную $count
и просто использовать вместо этого $result2[0]
.
Кроме того, способ лучше подход к этому будет использовать MySQL JOIN
, в вашем примере это будет SELECT w.fsyn FROM sbsw s JOIN wrsyn w ON s.fwid = w.fwid WHERE s.fword = "'.$searchText.'";
Спасибо, cypher! – Astraport
Пожалуйста, используйте разумные имена переменных и отступ правильно. Вы получаете один столбец из каждой строки, поскольку вы печатаете только один раз для каждой итерации по вашим строкам.
В принципе: для каждой строки напечатайте значение столбца.
$ count-variable определил, какой столбец, но, очевидно, не имеет смысла, он подсчитывает строку, в которой вы находитесь.
Что-то вроде этого следует сделать это: (не тестировалось)
$result1 = mysql_query("SELECT fwid FROM sbsw WHERE fword = '".$searchText."'");
while ($result2= mysql_fetch_array($result1))
{
$result3 = mysql_query("SELECT fsyn FROM wrsyn WHERE fwid = '".$result2['fwid']."'");
$result4= mysql_fetch_row($result3);
for($x = 0; $x < count($result4); $x++){
print $result4[$x].'<br>';
}
}
mysql_free_result($result1);
mysql_free_result($result3);
О, и я изменил fetch_array к fetch_row во внутреннем цикле, чтобы облегчить итерации.
Это не решает главной проблемы -' $ result2 [$ count] ', поэтому это не сработает. – cypher
О, мой, спасибо :) Должен теперь работать, как самое близкое решение для его подхода, хотя соединение, очевидно, лучше –
После редактирования он тоже не будет работать, вы используете mysql_fetch_array, который по умолчанию DEFAULT возвращает число- индексированный массив, вам нужно будет использовать опцию 'MYSQL_ASSOC' (' mysql_fetch_array ($ query, MYSQL_ASSOC); ') для получения ассоциативных ключей массива :-) – cypher
- 1. mysqli_fetch_assoc возвращает ТОЛЬКО первый элемент массива
- 2. table.unpack() возвращает только первый элемент
- 3. jQuery возвращает только первый элемент
- 4. Почему array [length] возвращает первый элемент списка?
- 5. getJSON получает только первый элемент возвращаемого массива
- 6. возвращает только один элемент массива
- 7. Функция, возвращающая только первый элемент массива
- 8. Почему моя функция Perl max() всегда возвращает первый элемент массива?
- 9. Почему этот код печатает только первый элемент?
- 10. Почему мой метод возвращает только первый элемент IEnumerable?
- 11. Почему каждый только проходит первый элемент?
- 12. Export-CSV возвращает только первый элемент
- 13. JQuery $ .each возвращает только первый элемент JSON
- 14. jQuery возвращает только первый сопоставленный элемент
- 15. Возвращает только первый элемент в массиве строк
- 16. Android: onItemClick возвращает только первый выбранный элемент
- 17. Pyparsing запятыми список только возвращает первый элемент
- 18. XML-запрос возвращает только первый элемент
- 19. Генератор в Python только возвращает первый элемент
- 20. Метод фильтра возвращает только первый элемент Android
- 21. Почему функция использует только первый элемент массива? (C++)
- 22. Android-указатель, показывающий только первый элемент массива
- 23. Первый неотрицательным элемент массива
- 24. Мой цикл проверяет только первый элемент массива
- 25. как рассматривать только первый элемент массива
- 26. При вызове массива используется только первый элемент?
- 27. Обновлен только первый элемент массива Compute Shader.
- 28. PHP получает только первый элемент массива
- 29. Где/когда/почему первый элемент массива падает?
- 30. Почему мой HeapSort пропускает первый элемент массива?
Я не вижу никакого возвращения происходит. Пожалуйста, уточните свой вопрос. – NullUserException
Также вам нужно научиться использовать 'JOIN' – NullUserException