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

Форум MySQL

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

 

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

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

тема: Из ассоциативного массива в базу данных MySQL?
 
 автор: xpom   (04.11.2006 в 15:25)   письмо автору
 
 

Помогите, плиз, занести данные из ассоциативного массива в одно поле таблицы, т.е. после обработчика получатся несколько значений и их нужно разместить в одно определенное поле Town таблицы Dan, чтобы они соответствовали одному ключу этой таблицы

if(!empty($_POST))   
  {   
    if(!preg_match("|^[\d]+$|",$_POST['d'])) exit("Не верный формат запроса");  
    $query = "SELECT * FROM Towns WHERE Kan = ".$_POST['d'];  
    $twn = mysql_query($query);  
    if(!$twn) exit(mysql_error());  
    $arr = array();  
    if(mysql_num_rows($twn))  
    {  
      while($town = mysql_fetch_array($twn))  
      {  
        if(!empty($_POST[$town['TID']])) $arr[] = $town['TID']  
      }  
    }  

foreach($i = 0; $i < count($arr); $i++) $arr[$i] = "('".$arr."')"; 
mysql_query("INSERT INTO Dan (Town)  
            VALUES  
            ".implode(",",$arr)."",$db); 



вот в этой строке

foreach($i = 0; $i < count($arr); $i++) $arr[$i] = "('".$arr."')"; 



почемуто выдает ошибку?

   
 
 автор: cheops   (04.11.2006 в 16:05)   письмо автору
 
   для: xpom   (04.11.2006 в 15:25)
 

Замените блок
<?php
      
while($town mysql_fetch_array($twn))   
      {   
        if(!empty(
$_POST[$town['TID']])) $arr[] = $town['TID']   
      } 
?>

на
<?php
      
while($town mysql_fetch_array($twn))   
      {   
        if(!empty(
$_POST[$town['TID']])) $arr[] = $town['TID'];
      } 
?>

   
 
 автор: xpom   (04.11.2006 в 17:10)   письмо автору
 
   для: cheops   (04.11.2006 в 16:05)
 

Это почемуто не помогло?

Может быть вместо вот этого блока


foreach($i = 0; $i < count($arr); $i++) $arr[$i] = "('".$arr."')";  
mysql_query("INSERT INTO Dan (Town)   
            VALUES   
            ".implode(",",$arr)."",$db);  

Сделать такой блок

 foreach($arr as $val){
                  $val[$i] = "('".$arr."')";
                    mysql_query("INSERT INTO Dan (Town)
                   VALUES
                   ".implode("AND",$arr)."",$db);
                  }

Они отличаются друг от друга?

У меня не получается сделать запрос к ячейки Town таблицы Dan, чтобы проверить что там находится, вот делаю


$opr = mysql_query("SELECT * FROM Dan WHERE Lat= $fil",$db);

            while ($tyt = mysql_fetch_row($opr))
      {
                $frt=$tyt[9];
        
       print ("$frt");

        }


и вот что выводит Array)Array)
Как правильно сделать запрос?

   
 
 автор: xpom   (04.11.2006 в 21:58)   письмо автору
 
   для: xpom   (04.11.2006 в 17:10)
 

Ассоциативный массив содержит вот такой вид


Array 

    [0] => 4 
    [1] => 5 




Можно так сделать чтобы числакоторые справа, в нашем случае 4 и 5, заносились в поле Town таблицы Dan через запятую, которые можно было бы использовать для запроса вывода данных, если есть такое число выводились бы данные, если нет не выводились.
Ну а усли нельзя так сделать тогда сделать запрос с этими 4 и 5 к таблице Towns, а потом сами имена заносить через запятую в поле Town таблицы Dan, которые можно было б отдельно использовать для запроса вывода данных?

   
 
 автор: xpom   (05.11.2006 в 09:52)   письмо автору
 
   для: xpom   (04.11.2006 в 21:58)
 

Help please!!!

   
 
 автор: cheops   (05.11.2006 в 12:30)   письмо автору
 
   для: xpom   (04.11.2006 в 21:58)
 

>Ассоциативный массив содержит вот такой вид
Это какой (его название)?

   
 
 автор: xpom   (05.11.2006 в 17:51)   письмо автору
 
   для: cheops   (05.11.2006 в 12:30)
 

>Это какой (его название)?
Вот эта ж переменная имеет ассоциативный массив

$arr = array();


После обработчика

if(!empty($_POST))    
  {    
    if(!preg_match("|^[\d]+$|",$_POST['d'])) exit("Не верный формат запроса");   
    $query = "SELECT * FROM Towns WHERE Kan = ".$_POST['d'];   
    $twn = mysql_query($query);   
    if(!$twn) exit(mysql_error());   
    $arr = array();   
    if(mysql_num_rows($twn))   
    {   
      while($town = mysql_fetch_array($twn))   
      {   
        if(!empty($_POST[$town['TID']])) $arr[] = $town['TID']   
      }   
    }   


переменная $arr имеет ассоциативный массив, можно с него сделать обычный массив?

   
 
 автор: cheops   (05.11.2006 в 21:59)   письмо автору
 
   для: xpom   (05.11.2006 в 17:51)
 

Хм... а почему ассоциативный? Вроде же индексный массив?

PS поставьте в конце строки точку с запятой
<?php
      
if(!empty($_POST[$town['TID']])) $arr[] = $town['TID'];
?>


PPS Выведите дамп $tut
<?php
$opr 
mysql_query("SELECT * FROM Dan WHERE Lat= $fil",$db); 
while (
$tyt mysql_fetch_row($opr)) 

  
$frt=$tyt[9]; 
  echo 
"<pre>"
  
print_r($tyt);
  echo 
"</pre>"
}
?>

   
 
 автор: xpom   (06.11.2006 в 20:46)   письмо автору
 
   для: cheops   (05.11.2006 в 21:59)
 

>Хм... а почему ассоциативный? Вроде же индексный массив?
Да все правильно индексный массив! Это я ошибался. Я думал что если array то это ассоциативный :) Я только начинающий, совсем не опытный!

>PS поставьте в конце строки точку с запятой
Да я поставил там точку с запятой, это я просто с форума брал!



>PPS Выведите дамп $tut
Вывел:


Array
(
    [0] => 23
    [1] => 3
    [2] => dfgghhfhgf
    [3] => tup
    [4] => fhgfghfhf
    [5] => jhgffhjgj
    [6] => fghfhfgh
    [7] => vghfvgjfg
    [8] => 
    [9] => 
)

Это я так понял оно вывело все поля!

   
 
 автор: cheops   (06.11.2006 в 22:19)   письмо автору
 
   для: xpom   (06.11.2006 в 20:46)
 

Тогда давайте объясняйте фразу
>переменная $arr имеет ассоциативный массив, можно с него сделать обычный массив?
что под ней имеете в виду :)?

   
 
 автор: xpom   (06.11.2006 в 22:26)   письмо автору
 
   для: cheops   (06.11.2006 в 22:19)
 

Раз это не ассоциативный массив, нужно просто сделать так, чтобы те элементы которые будут с флажками после обработчика занеслись в

[9] =>
поле перечислением?

   
 
 автор: xpom   (07.11.2006 в 19:08)   письмо автору
 
   для: xpom   (06.11.2006 в 22:26)
 

Help please!!!

   
 
 автор: xpom   (07.11.2006 в 22:30)   письмо автору
 
   для: xpom   (07.11.2006 в 19:08)
 

Плиз!!!

   
 
 автор: xpom   (07.11.2006 в 22:58)   письмо автору
 
   для: xpom   (07.11.2006 в 22:30)
 

Подскажите пожалуйста, как переменную $arr которая имеет нескалько значений занести в одно поле таблицы?

   
Rambler's Top100
вверх

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