Да, это нормально для вложенных операторов while.
Основная проблема, которую я сначала не обнаружил, заключается в том, что вы закрываете свое соединение в середине запроса, поэтому удалите все mysql_close
заявления.
Однако, после того как вы решите это, вы столкнетесь с другой проблемой, так как вы используете только одно соединение MySQL, второй запрос теряет все результаты первого запроса, поэтому, вероятно, вы остановитесь на первомrow или в первый раз, когда выполняется ветка else
.
Чтобы заставить ее работать, вы можете выбрать один из двух вариантов:
- использовать два соединения MySQL иукажите, какой из них использовать с параметром
$link_identifier
mysql_query ( string $query [, resource $link_identifier ] )
- , запустите первый запрос, сохраните все результаты в массиве, а затем запустите другие запросы, чтобы запросы не перекрывались.Используйте эту опцию, только если ваша таблица не слишком большая.
Майкл также предложил проверить, что ваш $urloriginal
был продезинфицирован с помощью mysql_real_escape_string()
, или вы столкнулись с риском внедрения SQL.