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

Форум MySQL

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

 

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

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

тема: Сколько всего строк в таблице
 
 автор: dream-x   (23.08.2008 в 23:56)   письмо автору
 
 

Вобщем я не знаю как узнать максимальное число столбца id?

  Ответить  
 
 автор: BinLaden   (24.08.2008 в 00:00)   письмо автору
 
   для: dream-x   (23.08.2008 в 23:56)
 

Так максимальный id или количество строк?

  Ответить  
 
 автор: Trianon   (24.08.2008 в 00:02)   письмо автору
 
   для: dream-x   (23.08.2008 в 23:56)
 

>Вобщем я не знаю как узнать максимальное число столбца id?

в теме совсем другой вопрос.
Сколько строк в таблице выясняется с помощью SELECT COUNT(*) FROM tbl
А максимальное значение первичного ключа Вам в подавляющем большинстве случаев знать не нужно, а то и вовсе вредно.
Только что добавленный ключ выясняется путем вызова mysql_insert_id() в php (или LAST_INSERT_ID() в MySQL)

  Ответить  
 
 автор: dream-x   (24.08.2008 в 00:33)   письмо автору
 
   для: Trianon   (24.08.2008 в 00:02)
 

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

  Ответить  
 
 автор: Trianon   (24.08.2008 в 00:38)   письмо автору
 
   для: dream-x   (24.08.2008 в 00:33)
 

Максимальное - не нужно. Ряд ключей вовсе не обязан быть непрерывным.
А пройтись по всему набору данных Вы можете и не зная максимального значения ключа.

  Ответить  
 
 автор: dream-x   (24.08.2008 в 00:39)   письмо автору
 
   для: Trianon   (24.08.2008 в 00:38)
 

ну а как же мне тогда выводить текст. Мне нужно узнать по id количество статей и сделать цикл по нему и вывести их.

  Ответить  
 
 автор: Trianon   (24.08.2008 в 00:42)   письмо автору
 
   для: dream-x   (24.08.2008 в 00:39)
 

Количество статей узнается не по id. Значение id - это не нумератор. Это лишь ключ для доступа к строке таблицы.

Давайте уж пример кода чтоли...

  Ответить  
 
 автор: dream-x   (24.08.2008 в 00:45)   письмо автору
 
   для: Trianon   (24.08.2008 в 00:42)
 

ну я изучаю mysql вот и пытаюсь разобраться... а код какой показать?

  Ответить  
 
 автор: Trianon   (24.08.2008 в 00:49)   письмо автору
 
   для: dream-x   (24.08.2008 в 00:45)
 

который будет таблицу выводить.

  Ответить  
 
 автор: dream-x   (24.08.2008 в 00:50)   письмо автору
 
   для: Trianon   (24.08.2008 в 00:49)
 

$story_sql = "select * from stories
        where id = $i";
        
  $story_result = $handle->query($story_sql);
   
  if ($story_result->num_rows) 
  {
    $story = $story_result->fetch_assoc();

      echo "<div align='center'><h2>{$story['headline']}</h2></div><br/>
      {$story['story_text']}
              
          </div>
                 ";    
    }

  Ответить  
 
 автор: Trianon   (24.08.2008 в 00:53)   письмо автору
 
   для: dream-x   (24.08.2008 в 00:50)
 

<?
  $story_sql 
"select * from stories order by id"
     
  
$story_result $handle->query($story_sql);
   
   while((
$story $story_result->fetch_assoc() ) != 0)
      echo 
"<div align='center'><h2>{$story['headline']}</h2></div><br/>
      
{$story['story_text']}
              
          </div>
                 "
;    

  Ответить  
 
 автор: dream-x   (24.08.2008 в 01:01)   письмо автору
 
   для: Trianon   (24.08.2008 в 00:53)
 

  $story_sql = "select * from stories order by id";
        
  $story_result = $handle->query($story_sql);
   
  while(($story = $story_result->fetch_assoc() ) != 0)
  
      echo "{$story['headline']}
              <p align='right' class='morelink'>
                <a href='news_one_one.php?id=$i'>
                Читать дальше...
                </a>
              </p>
          </div>
            <hr/>     ";
    

вот смотрите чтобы мне оперделить впринципе я могу переменную $i каждый раз инкременировать $i = $i++; вот. Но я щас попробовал и всеравно не получается,
и второй вопрос тогда как мне сделать чтобы статьи выводились в обратном порядке когда я делал с for то там все понятно.

  Ответить  
 
 автор: Trianon   (24.08.2008 в 01:08)   письмо автору
 
   для: dream-x   (24.08.2008 в 01:01)
 

>вот смотрите чтобы мне оперделить впринципе я могу переменную $i каждый раз инкременировать $i = $i++;
не можете.
То есть, просто переменную $i вы можете инкрементировать сколько хотите. К примеру так:
 <? 
  $story_sql 
"select * from stories order by id";
        
  
$story_result $handle->query($story_sql);
   
  for(
$i 1; ($story $story_result->fetch_assoc() ) != 0$i++)
  
      echo 
"$i{$story['headline']}
              <p align='right' class='morelink'>
                <a href='news_one_one.php?id=
$i'>
                Читать дальше...
                </a>
              </p>
          </div>
            <hr/>     "


Только не вздумайте в нее засовывать значение первичного ключа.

id - хоть и число, но что-либо добавлять к нему нельзя. Выражения id+1 и id-1 не несут никакого физического смысла.
Это всё равно как пытаться инкрементировать номер телефона. Или номер паспорта.

  Ответить  
 
 автор: Trianon   (24.08.2008 в 01:10)   письмо автору
 
   для: dream-x   (24.08.2008 в 01:01)
 

Чтобы выводить записи в обратном порядке нужно всего лишь указать этот обратный порядок в SQL-запросе.
SELECT * FROM stories ORDER BY id DESC

  Ответить  
 
 автор: dream-x   (24.08.2008 в 01:19)   письмо автору
 
   для: Trianon   (24.08.2008 в 01:10)
 

Ага спасибо огромное я просто знал о вуыс но почему то думал что она выводит только последнюю добавленную статью (это я практировался). Вот извините меня но могу ли я задать еще 1 вопрос т.к. непойму почему у меня было 10 статей нумеровались от 1 до 10 а теперь я удалил 1,3,7,4,9 статью и у меня в таблице остались номера какие бли им присвоены когда были все 10 новостей. т.е.2,5,6,8,10, а вопрос такой как мне сбросить чтоли нумерацию или просто перезаписать их?

Вот еще вопрос созрел :) мне всеравно надо же считывать id т.к. чтобы полностью прочитать статью надо знать id.

  Ответить  
 
 автор: Trianon   (24.08.2008 в 01:26)   письмо автору
 
   для: dream-x   (24.08.2008 в 01:19)
 

Вы читать умеете?
id это не нумератор!
Я уже пятый раз Вам эту простую мысль пытаюсь вдолбить в голову.
Его нельзя увеличивать, уменьшать, и от него глупо ожидать, что он окажется последовательным рядом чисел!
Хотите нумеровать записи - нумеруйте их сами при выводе, как я показал это в посте (24.08.2008 в 01:08) . Не приплетайте сюда id!

UPD. Считывать id , печатать его (не как номер, а как ключ) , указывать в ссылках на связанные страницы (или в hidden-полях форм) Вам никто не запрещает. Это к вопросу о том, что его надо знать, чтобы прочитать статью. Да, надо. Но лишь для этого. А не для того, чтобы его менять туда-сюда.

  Ответить  
 
 автор: dream-x   (24.08.2008 в 01:34)   письмо автору
 
   для: Trianon   (24.08.2008 в 01:26)
 

тогда как еще мне связать статью и ссылку на нее? я просто хотел id связать со статьей мне просто казалось так удобнее.

  Ответить  
 
 автор: Trianon   (24.08.2008 в 01:37)   письмо автору
 
   для: dream-x   (24.08.2008 в 01:34)
 

<? 
echo "<a href=\"letter.php?id={$story['id']}\" >... </a>"

id - это первичный ключ. И поэтому здесь (в качестве ключа доступа) применение id абсолютно оправдано.

  Ответить  
 
 автор: dream-x   (24.08.2008 в 01:43)   письмо автору
 
   для: Trianon   (24.08.2008 в 01:37)
 

Спасибо вам большое за подробное объяснение и понятные примеры. И всеже последний вопрос как мне сбросить нумерацию в таблице а то чепуха получается,
--у меня было 10 статей нумеровались от 1 до 10 а теперь я удалил 1,3,7,4,9 статью и у меня в таблице остались номера какие бли им присвоены когда были все 10 новостей. т.е.2,5,6,8,10, а вопрос такой как мне сбросить чтоли нумерацию или просто перезаписать их?

  Ответить  
 
 автор: dream-x   (24.08.2008 в 01:43)   письмо автору
 
   для: Trianon   (24.08.2008 в 01:37)
 

Спасибо вам большое за подробное объяснение и понятные примеры. И всеже последний вопрос как мне сбросить нумерацию в таблице а то чепуха получается,
--у меня было 10 статей нумеровались от 1 до 10 а теперь я удалил 1,3,7,4,9 статью и у меня в таблице остались номера какие бли им присвоены когда были все 10 новостей. т.е.2,5,6,8,10, а вопрос такой как мне сбросить чтоли нумерацию или просто перезаписать их?

  Ответить  
 
 автор: Trianon   (24.08.2008 в 01:45)   письмо автору
 
   для: dream-x   (24.08.2008 в 01:43)
 

не следует с ними ничего делать.

Блин, ну я же привел пример с паспортами!

Ну представьте себе, идете Вы получать паспорт втроем с приятелями.
Вы получаете последним.
Потом у приятеля паспорт крадут.
Он пишет заявление. Его паспорт аннулируют.
Вам что теперь номер в своем паспорте менять?!

  Ответить  
 
 автор: dream-x   (24.08.2008 в 02:43)   письмо автору
 
   для: Trianon   (24.08.2008 в 01:45)
 

:) спасибо еще раз все объяснили теперь дальше читать буду книжки...

  Ответить  
 
 автор: sl1p   (24.08.2008 в 03:27)   письмо автору
 
   для: Trianon   (24.08.2008 в 01:45)
 

>Ну представьте себе, идете Вы получать паспорт втроем с приятелями.
>Вы получаете последним.
>Потом у приятеля паспорт крадут.
>Он пишет заявление. Его паспорт аннулируют.
>Вам что теперь номер в своем паспорте менять?!

так а чё норм UPDATE pasports SET pasport_id = pasport_id-1 WHERE pasport_id >= stolen_id-1
:D

  Ответить  
 
 автор: dream-x   (24.08.2008 в 01:39)   письмо автору
 
   для: Trianon   (24.08.2008 в 01:26)
 

т.е. при добавлении статьи мне надо записывать id это й статьи а потом просто делать ссылку уже вписанной туда ключом чтобы не перебирать его а чтобы он был привязан к статье?

  Ответить  
 
 автор: Trianon   (24.08.2008 в 01:43)   письмо автору
 
   для: dream-x   (24.08.2008 в 01:39)
 

Если Вам требуется узнать id непосредственно только что добавленной строки таблицы, Вы можете получить его с помощью функции mysql_insert_id() - я написал об этом в первом посте.

  Ответить  
 
 автор: dream-x   (24.08.2008 в 01:47)   письмо автору
 
   для: Trianon   (24.08.2008 в 01:43)
 

это понятно. Еще раз спасибо очень вам благодарен, но значения поля id ненадо менять получается.

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

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