Преобразовать строку в массив - присвоить значение - записать

Используй вместо array_merge -> array_combine Для просмотра ссылки Войди или Зарегистрируйся где фамилия это ключ, а сумма - значение.
спс сработало +) но теперь снова трабла - я то тяну изначально строку - и строку я должен записать - а у меня получается строка из значений масива если я перевожу масив в строку через implode()

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

в принципе всем спс огромное - разобрался. Решение правда не совсем хорошое но пока что для меня подойдет.
Суть в том что беру строку из бд - делаю массив через explode(), далее в цикле foreach() вывожу поля инпут в котором 1 поле имеет значение имени исполнителя второе для введение значение :

foreach ($massiv as $key => $value) {
echo "<input class='moneyname' name='mass[]' disabled='disabled' type='text' value=".$value." /><input class='moneymoney' name='mass2[]' type='text' />";
// продолжение магии говна в обработчике

}?>


и передаю в обработчик.

в обработчике принимаю через $_POST значение с полей, там у нас получаются массивы, делаю из 2ух массивов третий где ключ массива = имени а значение = тому что мы ввели в поле инпут и пишу в бд :
$mass = ($_POST['mass']);
$mass2 = ($_POST['mass2']);
// комбинируем массивы и делаем третий массив в котором ключ массива это имя а значение массива - заработок
$result = array_combine($mass, $mass2);
$programmist_money = serialize($result);


Из-за того, что использовал serialize() на самой же странице вывожу просто текстовое значение, конвертируя строку из бд в массив.

Получилось из серии "мы вывели массив в массив что бы ты мог работать с массивом когда работаешь с массивом" велосипед и костыль - но по скорости меня утраивает и работает не плохо.
Огромное спасибо Для просмотра ссылки Войди или Зарегистрируйся за помощь с массивами - плюсанул =)
И прошу сильно мой говнокод не судить )
 
Последнее редактирование модератором:
Написал для вас небольшой простой пример. Без защиты от SQL-инъекций и другого.
Поковыряйте)))
PHP:
<?php
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', true);
ini_set('html_errors', true);
ini_set('error_reporting', E_ALL ^ E_STRICT);
ini_set('default_charset', 'utf-8');

date_default_timezone_set('Europe/London');

header('Content-Type: text/html; charset=utf-8', true);

// Перед "употреблением" создать базу данных с именем "test". Или с другим именем, но отдедактировать имя базы данных ниже.

$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db_name = 'test';

if(!$db = @mysqli_connect($db_host, $db_user, $db_pass, $db_name)) die(mysqli_connect_error()); 

// создаём таблицу, если её до сих пор нет
mysqli_query($db, "CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `email` varchar(256) COLLATE utf8_unicode_ci DEFAULT '',
  `chislo` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`),
  UNIQUE KEY `email` (`email`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;");

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
html,body{width:600px;margin-right:auto;margin-left:auto;}
form{margin:6px;padding:6px;border:1px solid #D4D0C8;}
form h3{font-size:110%;color:#FF6600;margin:0px;padding:0px;}
ul{margin:6px;padding:6px;border:1px solid #D4D0C8;}
li{margin:0px;padding:0px;list-style-type:none;}
.m_input{width:300px;}
</style>
</head>
<body>
<?php

$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
$stop = '';

// Если добавляем юзера
if($action == 'user_add'){
  $name = isset($_REQUEST['name']) ? trim($_REQUEST['name']) : '';
  if($name === ''){
    $stop .= '<li>Не заполнено имя</li>';
  }
  else{
    $result = mysqli_query($db, "SELECT * FROM `user` WHERE `name`='".$name."'");
    if(mysqli_num_rows($result)){
      $stop .= '<li>Юзер с таким именем уже существует</li>';
    }
  }
  $email = isset($_REQUEST['email']) ? trim($_REQUEST['email']) : '';
  if($email === ''){
    $stop .= '<li>Не заполнено email</li>';
  }
  else{
    $result = mysqli_query($db, "SELECT * FROM `user` WHERE `email`='".$email."'");
    if(mysqli_num_rows($result)){
      $stop .= '<li>Юзер с таким email уже существует</li>';
    }
  }
  $chislo = isset($_REQUEST['chislo']) ? intval($_REQUEST['chislo']) : 0;

  if(!$stop){
    $sql = "INSERT INTO `user` (`name` , `email` , `chislo`) VALUES ('".$name."', '".$email."', ".$chislo.")";
    mysqli_query($db, $sql);
  }
}
// Если редактируем юзеров
elseif($action == 'user_edit'){
  if($data = isset($_REQUEST['data']) ? (array) $_REQUEST['data'] : array()){
    foreach($data as $id => $value){
      $id = intval($id);
      // Проверяем существование юзера с таким ID
      $result = mysqli_query($db, "SELECT * FROM `user` WHERE `id`=".$id);
      // Если не существует - пропускаем цикл
      if(!mysqli_num_rows($result)) continue;
      // Если удаляем юзера
      if(isset($value['del']) and $value['del'] = intval($value['del'])){
        mysqli_query($db, "DELETE FROM `user` WHERE `id`=".$id);
        continue;
      }
      $value['name'] = isset($value['name']) ? trim($value['name']) : '';
      if($value['name'] === '') continue;
      // У каждого юзера у нас уникальное name. Поэтому проверяем, что бы новое name уже не существовало у другого юзера
      $result = mysqli_query($db, "SELECT * FROM `user` WHERE `id` != ".$id." AND `name` = '".$value['name']."'");
      if(mysqli_num_rows($result)) continue;
      $value['email'] = isset($value['email']) ? trim($value['email']) : '';
      if($value['email'] === '') continue;
      // У каждого юзера у нас уникальное email. Поэтому проверяем, что бы новое email уже не существовало у другого юзера
      $result = mysqli_query($db, "SELECT * FROM `user` WHERE `id` != ".$id." AND `email` = '".$value['email']."'");
      if(mysqli_num_rows($result)) continue;
      $value['chislo'] = isset($value['chislo']) ? intval($value['chislo']) : 0;
      // Собственно обновляем
      $sql = "UPDATE `user` SET `name` = '".$value['name']."', `email` = '".$value['email']."', `chislo` = ".$value['chislo']." WHERE `id`=".$id;
      mysqli_query($db, $sql);
    }
  }
}
if($stop){ ?><ul><?=$stop?></ul><?php }
?>
<form id="form_add" name="form_add" method="post">
  <h3>Добавить нового юзера</h3>
  <input name="name" type="text" class="m_input" value="" /> name<br />
  <input name="email" type="text" class="m_input" value="" /> email<br />
  <input name="chislo" type="text" class="m_input" value="0" /> chislo<br />
  <input name="action" type="hidden" value="user_add" />
  <input type="submit" value="Добавить" />
</form>
<form method="post" name="form_edit" id="form_edit">
  <h3>Редактируем юзеров</h3>
  <table width="100%">
    <tr><td>id</td><td>name</td><td>email</td><td>chislo</td><td>удалить</td></tr>
    <?php
$result = mysqli_query($db, "SELECT * FROM `user` ORDER BY `id` ASC");
while($row = mysqli_fetch_assoc($result)){ ?>
    <tr>
      <td><?=$row['id']?></td>
      <td><input name="data[<?=$row['id']?>][name]" type="text" value="<?=htmlentities($row['name'], ENT_QUOTES, 'utf-8')?>" /></td>
      <td><input name="data[<?=$row['id']?>][email]" type="text" value="<?=htmlentities($row['email'], ENT_QUOTES, 'utf-8')?>" /></td>
      <td><input name="data[<?=$row['id']?>][chislo]" type="text" value="<?=$row['chislo']?>" /></td>
      <td><input name="data[<?=$row['id']?>][del]" type="checkbox" value="1" /></td>
    </tr>
    <?php } ?>
  </table>
  <input name="action" type="hidden" value="user_edit" />
  <input type="submit" value="Сохранить" />
</form>
</body>
</html>
 
С такими запросами давно пора прикручивать mysql)
 
Назад
Сверху