Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не работает сортировка по title
 
 автор: franko   (30.04.2011 в 21:28)   письмо автору
 
 

<?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>&nbsp; %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];
как решить проблему не знаю

  Ответить  
 
 автор: cheops   (30.04.2011 в 21:34)   письмо автору
 
   для: franko   (30.04.2011 в 21:28)
 

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

  Ответить  
 
 автор: franko   (30.04.2011 в 21:47)   письмо автору
 
   для: 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);
понятно объяснил?

  Ответить  
 
 автор: cheops   (30.04.2011 в 22:22)   письмо автору
 
   для: franko   (30.04.2011 в 21:47)
 

Пока не очень понятно... Т.е. сортировка на самом деле работает, только вы извлекаете данные по одному значению, а хотите сразу много извлечь? Тогда поместите все извлеченные $id_speciality в отдельный массив (скажем $specialities) и формируйте затем SQL-запрос с участием этого массива и конструкции IN
<?php
  $query 
"SELECT * FROM specialities
       WHERE id_speciality='"
.implode(","$specialities)."'
       ORDER BY title"
?>

  Ответить  
 
 автор: franko   (01.05.2011 в 19:57)   письмо автору
 
   для: 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>&nbsp; %s</p>"$myrow12["kod"], $myrow12["title"]);
}
while (
$myrow12 mysql_fetch_array($result12));
}
}
?>

  Ответить  
 
 автор: cheops   (01.05.2011 в 20:41)   письмо автору
 
   для: franko   (01.05.2011 в 19:57)
 

Потому что вы не сформировали массив $specialities, а просто подставили фрагмент в SQL-запрос (на месте этого SQL-запроса как раз должен формироваться массив $specialities, а запрос должен находиться вне цикла).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования