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

Форум MySQL

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

 

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

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

тема: вывод вывод данных по условию
 
 автор: moonfox   (27.01.2006 в 22:28)   письмо автору
 
 

выполняем запрос
$r=mysql_query("select * from arhiv_infa where server_date=$period order by month desc LIMIT $start,$per_page");

получаем все данные из таблицы cортированные по столбику month...
как теперь отобразить толька те: - например строки в которых столбик "а" = '123'
?

   
 
 автор: Loki   (27.01.2006 в 23:02)   письмо автору
 
   для: moonfox   (27.01.2006 в 22:28)
 


$r=mysql_query("select * from arhiv_infa where server_date=$period AND a='123' order by month desc LIMIT $start,$per_page");

   
 
 автор: moonfox   (28.01.2006 в 00:03)   письмо автору
 
   для: Loki   (27.01.2006 в 23:02)
 

Loki
проблема в том что из всего выбранного мне теперь нужно разделить данные на ... и на... и вывести их одни под другими

   
 
 автор: Саня   (28.01.2006 в 00:16)   письмо автору
 
   для: moonfox   (28.01.2006 в 00:03)
 

<?php
$r 
mysql_query("SELECT * FROM 'arhiv_infa' WHERE
    server_date="
.$period." ORDER BY 'month' DESC LIMIT 
    "
.$start.", ".$per_page);
// Выводим все поля, в которых а=123
while (list($field1$field2$a) = mysql_fetch_row($r)) {
  if (
$a == "123") {
    echo(
$field1." ".$field2);
  }
}
// "перематываем" указатель на начало
mysql_data_seek($r0);
// Выводим результаты, в который a!=123
while (list($field1$field2$a) = mysql_fetch_row($r)) {
  if (
$a !== "123") {
    echo(
$field1." ".$field2);
  }
}
?>


Количество переменных в функции list() должно совпадать с количеством полей.

   
 
 автор: moonfox   (28.01.2006 в 00:54)   письмо автору
 
   для: Саня   (28.01.2006 в 00:16)
 

СПАСИБО!

   
 
 автор: moonfox   (28.01.2006 в 01:06)   письмо автору
 
   для: Саня   (28.01.2006 в 00:16)
 

еще нюанс

нужно чтоб вначале этих блоков был заголовок
типа
- строки 123
000
999
888
- строки не 123
444
555
222


если вставить
тут
echo "text";
$r = mysql_query("SELECT * FROM 'arhiv_infa' WHERE
server_date=".$period." ORDER BY 'month' DESC LIMIT
".$start.", ".$per_page);
// Выводим все поля, в которых а=123
while (list($field1, $field2, $a) = mysql_fetch_row($r)) {
if ($a == "123") {
echo($field1." ".$field2);
}
}
то припереходе на другую страницу если
вторая часть незакончилась а первая закончилась..
надпись эта 'text' - остается а снизу уже второй блок с заголовком идет

   
 
 автор: Саня   (28.01.2006 в 01:17)   письмо автору
 
   для: moonfox   (28.01.2006 в 01:06)
 

<?php 
$r 
mysql_query("SELECT * FROM 'arhiv_infa' WHERE 
    server_date="
.$period." ORDER BY 'month' DESC LIMIT 
    "
.$start.", ".$per_page); 
// Выводим все поля, в которых а=123 
echo("Строки 123:<br />");
while (list(
$field1$field2$a) = mysql_fetch_row($r)) { 
  if (
$a == "123") { 
    echo(
$field1." ".$field2); 
  } 

// "перематываем" указатель на начало 
mysql_data_seek($r0); 
// Выводим результаты, в который a!=123 
echo("Строки не 123:<br />");
while (list(
$field1$field2$a) = mysql_fetch_row($r)) { 
  if (
$a !== "123") { 
    echo(
$field1." ".$field2); 
  } 

?>

Что-то я не понял про надпись "text".

   
 
 автор: moonfox   (28.01.2006 в 01:50)   письмо автору
 
   для: Саня   (28.01.2006 в 01:17)
 

"text".
- это условность

вобщем получается так как нужно выберает нужные строки вначале одни показывает потом снизу другие, всего на странице 10 записей выводится - потом если больше то формируем другую страницу [1] [2] [3] etc/

нужно чтоб первая часть имела заголовок и вторая
это можно если всиавить echo перет циклом
но!
если например в первом блоке 4 строки а во втором 8 то следовательно будет 2 страницы
при этом на следующей странице уже не будет строк из первого блока так как их было всего 4 и они поместились на первой странице... но заголовок то остается!
потом уже идет заголовок второго блока и сами строки...

   
 
 автор: Саня   (28.01.2006 в 02:01)   письмо автору
 
   для: moonfox   (28.01.2006 в 01:50)
 

// Выводим все поля, в которых а=123 
$var1 = 1; 
while (list($field1, $field2, $a) = mysql_fetch_row($r)) { 
  if ($a == "123") { 
    // Переменная $var1 будет иметь значение "1"
    // только один раз поэтому вывод заголовка
    // можно поставить внутри цикла
    if ($var1 == 1) echo("Строки 123:<br />");
    $var1++;
    echo($field1." ".$field2); 
  }
}



// Выводим результаты, в который a!=123 
$var2 = 1;
while (list($field1, $field2, $a) = mysql_fetch_row($r)) { 
  if ($a !== "123") { 
    // Всё сказанное про $var1 можно применить
    // и к $var2
    if ($var2 == 1) echo("Строки не 123:<br />");
    $var2++;
    echo($field1." ".$field2); 
  }
}


Всё равно я не понял про "text". Может вместо "text" имелось ввиду "Строки не 123:"?

   
 
 автор: moonfox   (28.01.2006 в 02:23)   письмо автору
 
   для: Саня   (28.01.2006 в 02:01)
 

да любой заголовок
строки не 123 - втрой блок
строки 123 - первый

спасибо за помощь!

   
 
 автор: moonfox   (28.01.2006 в 02:32)   письмо автору
 
   для: moonfox   (28.01.2006 в 02:23)
 

хотел ешо узнать
что для данного примера
$var++;

значит?

   
 
 автор: babilonian   (28.01.2006 в 02:46)   письмо автору
 
   для: moonfox   (28.01.2006 в 02:32)
 

При каждом выполнении цикла значение переменной $var увеличивается на единицу.

   
Rambler's Top100
вверх

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