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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: и снова о данных из формы

Сообщения:  [1-10]    [11-20]  [21-30] 

 
 автор: Valick   (11.07.2008 в 01:14)   письмо автору
 
   для: Trianon   (10.07.2008 в 14:23)
 

Продолжение темы http://softtime.ru/forum/read.php?id_forum=1&id_theme=55425&page=1

   
 
 автор: Valick   (10.07.2008 в 23:16)   письмо автору
 
   для: Trianon   (10.07.2008 в 21:49)
 

Спасибо, немного непонятно для меня.
Это я так понимаю объектно-ориентированный подход?

   
 
 автор: Trianon   (10.07.2008 в 21:49)   письмо автору
 
   для: Valick   (10.07.2008 в 21:40)
 

тогда уж
function name_id($result)

  for($i = 0;$k = mysql_fetch_field($result, $i); ++$i)
     if($k->primary_key)
         return $k->name;
  return false;
}

   
 
 автор: Valick   (10.07.2008 в 21:40)   письмо автору
 
   для: Trianon   (10.07.2008 в 17:22)
 

А как такой вариант?

// *******************************************************************
// Функция определения первичного ключа таблицы из результата запроса
// *******************************************************************
function name_id($result)
    {
    $num=0;
    do
     {
      if (strpos($flag=mysql_field_flags($result,$num),"primary_key")) 
       {$field=mysql_field_name($result,$num); break;}
      $num++;
     }while ($num<mysql_num_fields($result));
    return $field;
    }

   
 
 автор: Trianon   (10.07.2008 в 21:30)   письмо автору
 
   для: Valick   (10.07.2008 в 21:25)
 

Я лишь привел пример, как можно добыть ключ.
В коде нет ни одной проверки - больше чем на реплику в диалоге он не тянет.

   
 
 автор: Valick   (10.07.2008 в 21:25)   письмо автору
 
   для: Trianon   (10.07.2008 в 17:22)
 

Само собой, в продакшн этот код пускать нельзя
В смысле?

   
 
 автор: Trianon   (10.07.2008 в 17:22)   письмо автору
 
   для: Valick   (10.07.2008 в 16:46)
 

  $tablesource = mysql_result(mysql_query("SHOW CREATE TABLE `$table`"),0,1);
  preg_match('/PRIMARY[\s]+KEY[\s]*\(`([^`]+)`\)/',$tablesource, $out);
  $keyname = $out[1];
  //................
  while ($row=mysql_fetch_assoc($name))
  {
    $keyval = $row[$keyname];
    unset($row[$keyname]);
    $new[$keyval]=$row;
  }

Само собой, в продакшн этот код пускать нельзя.

   
 
 автор: Valick   (10.07.2008 в 17:04)   письмо автору
 
   для: Valick   (10.07.2008 в 16:46)
 

mysql_field_flags?

   
 
 автор: Valick   (10.07.2008 в 16:46)   письмо автору
 
   для: Trianon   (10.07.2008 в 14:03)
 

Что предложите? У меня первичный ключ тоже в таблицу попадает если делать так:

while ($row=mysql_fetch_assoc($name))
{

$new[$row['id']]=$row;
}

Подскажите как его получить запросом? Чтобы избавится от $row['id'] а то получается привязываемся к конкретной таблице (на худой конец сойдёт, но хочется универсальности)
И как его грамотно исключить из конечного массива $new
по условию или какую функцию для массивов применить
(в этом месте у меня теория хромает)

   
 
 автор: Trianon   (10.07.2008 в 14:23)   письмо автору
 
   для: Stasycat   (10.07.2008 в 14:11)
 

мама...

   

Сообщения:  [1-10]    [11-20]  [21-30] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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