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

Форум PHP

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

 

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

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

тема: переменная вида $mas_

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

 
 автор: Евгений Петров   (28.08.2005 в 23:14)   письмо автору
 
   для: denvor   (28.08.2005 в 22:38)
 

Вообще говоря плохая идея. Но если все переменные представляют собой только числа, то можно написать свою функцию по упаковке и распаковке массивов. Например
<?
  
function my_serialize($arr)
  {
    if(
$arr)
      foreach(
$arr as $value)
        
$string.= "i:$value;";
    return 
$string;
  }

  function 
my_unserialize($string)
  {
    
preg_match_all("/i:([0-9])+;/i",$string,$arr);
    return 
$arr[1];
  }
?>
Первая функция упаковывает массив в строку, вторая распаковывает строку в массив. И тогда можно управлять переменными средствами БД при помощи регулярных выражений
[code]<?
  $num 
5// число которое содержится в массиве, который находится в записе которую надо выделить :)
  
mysql_query("SELECT * FROM tbl WHERE  AND arr REGEXP 'i:$num;'");
?>

   
 
 автор: denvor   (28.08.2005 в 22:38)   письмо автору
 
   для: Евгений Петров   (28.08.2005 в 14:36)
 

Спасибо!
Но как я понял, сериализация упаковывает весь массив в одну переменную, так что работать с переменными средствами базы не получится :(
Так что хотелось бы зазобраться с тем, как раскидать элементы массива по ячейкам базы

   
 
 автор: Евгений Петров   (28.08.2005 в 14:36)   письмо автору
 
   для: denvor   (28.08.2005 в 12:27)
 

<?
  
for($i=0;$i<3;$i++)
  {
    
$tmp "s".intval($i+1);
    
$mas[$i] = $$tmp;
  }
  
print_r($mas);
  
// для того чтобы загнать в БД нужно воспольоваться ф-ей serialize()
  
$mas serialize($mas);
  echo 
$mas;
  
// а после извлечения ф-ей unserialize()
  
$mas unserialize($mas);
  
print_r($mas);
?>

   
 
 автор: denvor   (28.08.2005 в 12:27)   письмо автору
 
   для: Евгений Петров   (11.08.2005 в 00:40)
 

А у меня методом POST передается 30-50 переменных :( точно не обойтись без массивов для обработки, проверки , вывода..
Так вот, если переменные вида s1,s2...s50 как их загнать в массив?

и второй вопрос: как этот массив загнать в базу?

Я пока только с проверкой-обработкой массива могу справится :(

Спасибо!

   
 
 автор: cheops   (11.08.2005 в 00:58)   письмо автору
 
   для: Евгений Петров   (11.08.2005 в 00:19)
 

Из этой же оперы, можно использовать следующий код
<?php
  $name 
"mas_$num";
  if(isset($
$name)) echo "Переменная определена";
?>

   
 
 автор: Евгений Петров   (11.08.2005 в 00:40)   письмо автору
 
   для: isset   (11.08.2005 в 00:37)
 

Вот вот и я о том же.

   
 
 автор: isset   (11.08.2005 в 00:37)   письмо автору
 
   для: Евгений Петров   (11.08.2005 в 00:29)
 

Скажите, в каких случаях у вас будет столько переменных?

Никаких eval-ов здесь не надо, и не надо вообще использовать. А автору топика можно лишь посоветовать использовать массивы.

   
 
 автор: Евгений Петров   (11.08.2005 в 00:29)   письмо автору
 
   для: totx   (11.08.2005 в 00:26)
 

ООО! Не друг так никаких ресурсов не напасешся. А если переменных 1000000?

   
 
 автор: totx   (11.08.2005 в 00:26)   письмо автору
 
   для: Mootch   (10.08.2005 в 23:37)
 

if(!$mas_1, || !$mas_2, || !$mas_3 ... || !$mas_1000);
{
echo 'Заданы не все параметры':
}

   
 
 автор: Евгений Петров   (11.08.2005 в 00:19)   письмо автору
 
   для: Mootch   (10.08.2005 в 23:37)
 

А не массив использовать?
Ну или можно:
eval("if(isset(\$mas_$num))")

где $num - это номер того что надо проверить.

   

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

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

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