Как извлечь подобное Технический отдел из a:1:{i:0;s:33:"Технический отдел";}

tasol

Новичок
Мой вариант не работает
PHP:
SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE meta_value = "%Технический отдел%";
_

Это массив? Что означают a, i, s
 

Фанат

oncle terrible
Команда форума
Это кривые руки.
a:1:{i:0;s:33:"Технический отдел";} надо вынуть из базы, создать в ней нормальные поля, и записать в них значения по отдельности.
Чтобы запрос был
PHP:
SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE meta_value = 'Технический отдел';
 

fixxxer

К.О.
Партнер клуба
Фанат
Это ж wordpress =) Его кривости можно исправить только переписыванием с нуля.
 

С.

Продвинутый новичок
Да ладно наезжать. Вполне приемлема агломерация в одном поле, если имеешь дело с неопределенно большим разнообразием малозначимых атрибутов. Заебесси под каждое отдельное поле создавать.
 

fixxxer

К.О.
Партнер клуба
PHP:
SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE meta_value = 'Технический отдел';
И где тут отдельное поле?

И да, ты смотрел код вордпресса? Я смотрел, и плагины писал. Говнокод эталонный. Из палаты мер и весов.
 

tasol

Новичок
Такая дрянь записывалась кода было: <select name="depart[]">.

Без [] обычная строка, не массив.

Вот где у меня это было (если интересно):

PHP:
<?php
add_action( 'show_user_profile', 'profile_depart_field' );
add_action( 'edit_user_profile', 'profile_depart_field' );

function profile_depart_field( $user ) { ?>
		<tr>
			<th><label for="depart">Подразделение</label></th>
			<td style="width: 200px" >
				<input disabled="disabled" type="text" name="depart"  value="<?php echo esc_attr( get_the_author_meta( 'depart', $user->ID ) ); ?>" class="regular-text" /><br />
				</td>
			<td>
				<select name="depart"> <!-- Тут -->
					<?php
					$depart = get_option('depart', array("Нет отделов"));
					$curr = get_the_author_meta( 'depart', $user->ID );

					foreach ($depart as $key => $value){
						echo "<option id='depart' value='$value'>$value</option>";
					}

					?>
				</select>
			</td>
		</tr>

<?php


add_action( 'personal_options_update', 'save_profile_depart_field' );
add_action( 'edit_user_profile_update', 'save_profile_depart_field' );


function save_profile_depart_field( $user_id ) {

	if ( !current_user_can( 'edit_user', $user_id ) )
		return false;

	update_usermeta( $user_id, 'depart', $_POST['depart'] );
}
?>
 

Dez

Новичок
Ну так не надо же наугад в html квадратные скобки пихать, это додуматься еще надо.
 
Сверху