|
|
|
|
<?php
$result11 = mysql_query("SELECT * from TABLE1 WHERE id_university='$id_university'", $db);
if (!$result11)
{
echo "<p>Запрос не прошел. </p>";
}
if (mysql_num_rows($result11) > 0)
while ($myrow11 = mysql_fetch_array($result11))
{
$id_speciality = $myrow11[id_speciality];
$result12 = mysql_query("SELECT * from TABLE2 WHERE id_speciality='$id_speciality' ORDER BY title", $db);
if (!$result12)
{
echo "<p>Запрос не прошел. </p>";
exit (mysql_error());
}
if (mysql_num_rows($result12) > 0)
{
$myrow12 = mysql_fetch_array($result12);
do
{
printf ("<p><strong>%s</strong> %s</p>", $myrow12["kod"], $myrow12["title"]);
}
while ($myrow12 = mysql_fetch_array($result12));
}
}
?>
|
не работает сортировка
$result12 = mysql_query("SELECT * from TABLE2 WHERE id_speciality='$id_speciality' ORDER BY title
|
потому меняется в цикле $id_speciality = $myrow11[id_speciality];
как решить проблему не знаю | |
|
|
|
|
|
|
|
для: franko
(30.04.2011 в 21:28)
| | Не очень понятно, нужно бы более подробно описать, что у вас получается и что вы ожидаете (у нас дампа базы данных нет, поэтому воспроизвести ситуацию невозможно). | |
|
|
|
|
|
|
|
для: cheops
(30.04.2011 в 21:34)
| | из table 1 (id_university, id_speciality) имея id_university вытаскиваем id_speciality
далее цикл
имея id_speciality вытаскиваем kod из table 2 (id_speciality, kod)
но так как
в цикле идет перезначение $id_speciality = $myrow11[id_speciality];
то соответственно в $result12 заносится только одно значение и соответственно сортировка осуществляется только по одному значению.
$result12 = mysql_query("SELECT * from specialities WHERE id_speciality='$id_speciality' ORDER BY title", $db);
понятно объяснил? | |
|
|
|
|
|
|
|
для: franko
(30.04.2011 в 21:47)
| | Пока не очень понятно... Т.е. сортировка на самом деле работает, только вы извлекаете данные по одному значению, а хотите сразу много извлечь? Тогда поместите все извлеченные $id_speciality в отдельный массив (скажем $specialities) и формируйте затем SQL-запрос с участием этого массива и конструкции IN
<?php
$query = "SELECT * FROM specialities
WHERE id_speciality='".implode(",", $specialities)."'
ORDER BY title"
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(30.04.2011 в 22:22)
| | Ошибка выходит
Warning: implode() [function.implode]: Invalid arguments passed in
<?php
$result11 = mysql_query("SELECT * from universities_specialities WHERE id_university='$id_university'", $db);
if (!$result11)
{
echo "<p>Запрос на выборку данных из базы не прошел. <br> <strong>Код ошибки:</strong></p>";
}
if (mysql_num_rows($result11) > 0)
while ($myrow11 = mysql_fetch_array($result11))
{
$id_speciality = $myrow11[id_speciality];
$result12 = mysql_query("SELECT * from specialities WHERE id_speciality='".implode(",", $specialities)."' ORDER BY title", $db);
if (!$result12)
{
echo "<p>Запрос на выборку данных из базы не прошел. <br> <strong>Код ошибки:</strong></p>";
exit (mysql_error());
}
if (mysql_num_rows($result12) > 0)
{
$myrow12 = mysql_fetch_array($result12);
do
{
printf ("<p><strong>%s</strong> %s</p>", $myrow12["kod"], $myrow12["title"]);
}
while ($myrow12 = mysql_fetch_array($result12));
}
}
?>
|
| |
|
|
|
|
|
|
|
для: franko
(01.05.2011 в 19:57)
| | Потому что вы не сформировали массив $specialities, а просто подставили фрагмент в SQL-запрос (на месте этого SQL-запроса как раз должен формироваться массив $specialities, а запрос должен находиться вне цикла). | |
|
|
|