Mövzu üzrə bənzər suallara da baxa bilərsiniz.

wordpress meta_query value içində array

Salam. Mənim value bazada array kimi saxlanılır, bunu meta query ilə find edə bilmirəm.
Kodum bu cürdü amma işləmir. Value hissəsini necə yazmalıyam ki, bazadakı array içindən find edə bilim?

$args = array (
	'meta_query'  => array(
		array(
			'key'       => 'key',
			'value'     =>  array( 'child_key' => 'value'),
			'compare'   => 'LIKE',
			'type'      => 'CHAR',
		)
       )
)

Kateqoriya: Sual . . Qısa keçid.

Verilmiş cavablar və yazılan şərhlər (5 cavab var)

(20:35, 13/01/2016 ) #60793

html formdan value-ni bu formada götürürəm ona görə bazaya array kimi düşür.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(20:53, 13/01/2016 ) #60795

Bu sayta html kod niy’ yazmaq olmur? yaz;ram silinir.

bu cwr deyirdim: input name=”key[0][child_key]

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(08:54, 14/01/2016 ) #60807

Kod yazmaq olur, sadəcə sual formasından yuxarıda olan təlimatları mütləq oxumaq lazımdır. code teqindən istifadə etmək lazım idi.
Gələk sualınıza:
meta qiymətini heç bir halda array kimi saxlamaq olmaz. Siz yəqin ki belə kod işlətdikdə bazada ARRAY sözü save olur. Bu da ki təbii ki işə yaramır. Metanın qiyməti mütləq string olmalıdır.
Əgər array data-nı saxlamaq vacidirsə, serialize deyə bir məntiq var, ondan yararlana bilərsiz.
serialize edirsiz

 'value'     =>  serialize(array( 'child_key' => 'value')),

oxuyanda da artıq unserialize edirsiz. Vəssalam.
Maraq üçün deyim ki, WordPress-in öz nüvə kodunda bu tip data-ların saxlanmasında serialize yox, JSON istifadə edilir. Yəni istəsəz JSON ilə də saxlaya bilərsiz, məntiq baxımdan serialize ilə tam eynidir. (json_encode, json_decode)

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

    (11:38, 14/01/2016 ) #60812

    yoxladım alınmadı. mənim bazadakı array bu cürdü

    a:2:{i:0;a:1:{s:4:"sahe";s:5:"tibbi";}i:2;a:1:{s:4:"sahe";s:7:"texniki";}}

    meta_query bu cür qururam alınmır.

    'value'     =>  'tibbi', //bu cür də yoxlamışam serialize(array( 'sahe' => 'tibbi')
    'compare'   => 'IN',
    'type'      => 'CHAR',

    burda codex-də yazılıb:
    “value (string|array) – Custom field value. It can be an array only when compare is ‘IN’, ‘NOT IN’, ‘BETWEEN’, or ‘NOT BETWEEN’. You don’t have to specify a value when using the ‘EXISTS’ or ‘NOT EXISTS’ comparisons in WordPress 3.9 and up. ”
    http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters

    normalda yazdığım kimi tapmalıdır axı amma tapmır. Harda səhf edirəm?

    Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

      (13:07, 14/01/2016 ) #60816

      Birbaşa əyani tanış olmadan nəsə demək çətindir düzü, amma məsələn bəlkə də ümumi meta_query-niz səhvdir, təkcə problem bu bənddə deyil. Debug etməklə istənilən halda problemi həll etmək olar.
      Məsələn sql-i display etməklə baxa bilərsiniz ki sizin query-nizin requesti hansı sql formada gedir bazaya ki boş qayldır. Oradan rahatlıqla görmək olur ki səhviniz nədədir və query-yə uyğun sql niyə boş qaytarır. Oradan da qayıdıb query-nizdə müvafiq düzəlişi edərsiz.
      Bunu da $wp_query->request-i dərc etməklə də bilmək olar, və ya configdə define(‘SAVEQUERIES’, true); verib sonra footerde

       global $wpdb;
      var_dump($wpdb->queries); 
      

      ilə də.

      Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

Cavab verin


Cavab yazmaq üçün lütfən sağ sütundan və ya buradan hesaba daxil olun.

Üzvlər üçün giriş

Qeydiyyat

Elan qutusu

Software Developer - 571 xal

E. Hacı - 560 xal

Onar Alili - 526 xal

Dilsuz - 448 xal

Cabbarov Sübhan - 411 xal

Ruslan Butdayev - 328 xal

Namiq Bəndəli - 297 xal

U.Tarlan - 244 xal

Meherremoff - 234 xal

Bextiyar Azeroglu - 214 xal

Sistemə daxil olmuş 17325 sualdan 94%-dən çoxu cavablandırılmışdır.

Proyekt haqqında

E-Haci.net istehsalı. © 2010-2016