Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: намогу сложить элементарно 1 +1.. =((
Форумы портала PHP.SU » PHP » Программирование на PHP » намогу сложить элементарно 1 +1.. =((

Страниц (1): [1]
 

1. wmz38 - 05 Декабря, 2007 - 09:59:43 - перейти к сообщению
Собственно уже час мучаюсь с этим кодом, надо чтобы к максимальному ID прибавлялось +1, при условии, что SID (нынешний, он 100% есть, и из базы - отличались) а затем ID заносится к нынешней записи с нынешним SID. Но, ничего не прибавляется в базах. Если делать чистый запрос на max(id) то пишет правильно, а если в пхп то пишет 0+1, как будто 0 это макс(ид)...
PHP:
скопировать код в буфер обмена
  1.  
  2.  $sid=session_id();
  3.  
  4.  $sql = "SELECT * FROM `cart` WHERE `id` = ( 'SELECT MAX(id) FROM cart' )";
  5.  $res = mysql_query($sql);
  6.  $row = mysql_fetch_object($res);
  7.  echo $max_id_sid=$row->sid;
  8.  echo "<br \>";
  9.  echo "id= ".$row->id;
  10.  echo "<br \>";
  11.  
  12.  #------  конец запроса --------------------------------------------------------#
  13.  
  14.  #------  Создаем считчик  для увеличения $max_id+1 --------------------------#
  15.  
  16.  
  17.  $a=1;
  18.  echo "new_id= ".$max_id=$row->id+$a;
  19.  echo "<br \>";
  20.  
  21.  #------  конец счетчика -------------------------------------------------------#
  22.  
  23.  #------  Условие для счетчика, затем обновление номера ----------------------#
  24.  
  25.  if ($sid <> $max_id_sid)
  26.  {
  27.  $sql = "UPDATE `cart` SET `id` = '".$max_id."' WHERE `sid` = '".$sid."'";
  28.  $res = mysql_query($sql);
  29.  }
  30.  

Уважаемые форумчане, подскажите пожалуйста как заставить работат этот код?
2. evgenijj - 05 Декабря, 2007 - 13:38:53 - перейти к сообщению
Я тебе как говорил?
SELECT sid FROM cart WHERE id=(SELECT MAX(id) FROM cart);
SELECT sid FROM cart WHERE id=(SELECT id FROM cart ORDER BY id DESC LIMIT 1);
А ты что написал?
SELECT * FROM `cart` WHERE `id` = ( 'SELECT MAX(id) FROM cart' );
Фактически, это выглядит так: найти в таблице cart запись, первичный ключ которой id (ЧИСЛО!!!) равен строке 'балалайка'
SELECT * FROM `cart` WHERE `id` = 'балалайка';
3. wmz38 - 05 Декабря, 2007 - 14:47:08 - перейти к сообщению
evgenijj пишет:
SELECT sid FROM cart WHERE id=(SELECT MAX(id) FROM cart);
SELECT sid FROM cart WHERE id=(SELECT id FROM cart ORDER BY id DESC LIMIT 1);


по идее первый и второй запросы не отличаются друг от друга, но разница в том что 1-ый запрос запрашивет на максимальное число в строке, а второй все строки с сортировкой - таким образом, что в первой строке максимальное число.
тогда вопрос :
1-ый запрос только 1-но число выбирает или все строки но с сортировкой или проще говоря 1-ый вариант это не упрощенная ли запись 2-го варианта?

понял где ошибся, убрал одиночные кавычки и все заработало... ппц я запутался с кавычками.
4. valenok - 08 Декабря, 2007 - 02:21:59 - перейти к сообщению
Цитата:
а второй все строки с сортировкой

А второй запрос тоже только одну строку

Только чтo это вообще?
Цитата:
SELECT `sid` FROM `cart` ORDER BY `id` DESC LIMIT 1
5. Роман_13 - 10 Мая, 2009 - 00:52:33 - перейти к сообщению
СПАСИБО БРАТАНЫ !!! Нашёл тему по интернету как раз такое решение искал !
Хороший вариант па максимальному значению отбор ! ))) Использовал всё сразу решилось! Хорошо
6. vitaliy_mad - 10 Мая, 2009 - 01:27:06 - перейти к сообщению

приятно, что есть люди умеющие поиском польщоваться

 

Powered by ExBB FM 1.0 RC1