Oke,
Ik ben er bijna maar lukt niet helemaal.
Ik heb een tabel 'wp_postmeta'. Daarin moet ik m'n info vandaan halen.
Ik heb een gegeven: $lesson_id. Daarmee kan ik de ID van de huidige les ophalen. Voor dit voorbeeld even 95. Met dat lesson id wil ik vervolgens de bijhorende boeken vinden en daar gebruik van maken.
wp_postmeta
Ik ga dus meta_value's af om alle's met 95 te vinden. Daar wil ik de post_id's van hebben. In dit geval 216 en 276. Vervolgens wil ik met die post_id's de bijhorende _lpr_book_url's en _thumbnail_id's hebben om die vervolgens te kunnen gebruiken
Side note: of ik nou dingen als AS p / AS pm wel of niet gebruik maakt niet uit. Het werkt tot zover niet.
Als ik dit gebruik:
Wat ik vervolgens terug krijg is dit:
En dat is goed. Want inderdaad, bij die les horen boek id's 216 en 276.
Nu het volgende:
Krijg ik terug terug:
En dat is ook goed. Want die link en thumbnail id horen daarbij. Maar zoals je ziet. Heb ik post_id er gewoon ingezet. '216'. Eigenlijk moet dat variabel zijn, want er kunnen meerdere boeken bij horen, en van te voren weet ik niet welke boek erbij hoort.
post_id = 216 vervangen voor post_id = $books_id werkt niet. Dan komt er gewoon helemaal niks uit.
Daarom geprobeerd om het samen te voegen van de code. Dit werkt alleen ook niet:
Krijg ik niks terug. Als ik GROUP BY meta_value onder de 2e WHERE zet, dan krijg ik wel een respons.
Maar dan krijg ik er maar 1 terug; de eerste die die tegenkomt lijkt het. GROUP BY post_id haalt niks uit.
Wat doe ik in godsnaam verkeerd? Ik zou toch denken dat het laatste goed zou zijn.
Ik ben er bijna maar lukt niet helemaal.
Ik heb een tabel 'wp_postmeta'. Daarin moet ik m'n info vandaan halen.
Ik heb een gegeven: $lesson_id. Daarmee kan ik de ID van de huidige les ophalen. Voor dit voorbeeld even 95. Met dat lesson id wil ik vervolgens de bijhorende boeken vinden en daar gebruik van maken.
wp_postmeta
meta_id | post_id | meta_key | meta_value |
897 | 216 | _lpr_book_url | www.wikibooks.org/1 |
901 | 216 | _thumbnail_id | 272 |
910 | 276 | _thumbnail_id | 277 |
911 | 276 | _lpr_book_url | www.wikibooks.org/2 |
1001 | 216 | _lpr_lesson | 95 |
1002 | 276 | _lpr_lesson | 95 |
Ik ga dus meta_value's af om alle's met 95 te vinden. Daar wil ik de post_id's van hebben. In dit geval 216 en 276. Vervolgens wil ik met die post_id's de bijhorende _lpr_book_url's en _thumbnail_id's hebben om die vervolgens te kunnen gebruiken
Side note: of ik nou dingen als AS p / AS pm wel of niet gebruik maakt niet uit. Het werkt tot zover niet.
Als ik dit gebruik:
PHP:
2
3
4
5
6
7
8
9
10
| $books_id = $wpdb->get_results( " SELECT pm.post_id FROM $wpdb->postmeta AS pm WHERE pm.meta_value = $lesson_id " ); print_r($books_id); |
Wat ik vervolgens terug krijg is dit:
code:
1
| Array ( [0] => stdClass Object ( [post_id] => 216 ) [1] => stdClass Object ( [post_id] => 276 ) ) |
En dat is goed. Want inderdaad, bij die les horen boek id's 216 en 276.
Nu het volgende:
PHP:
2
3
4
5
6
7
8
9
| $books = $wpdb->get_results ( " SELECT meta_value FROM $wpdb->postmeta WHERE post_id = 216 AND (meta_key = '_lpr_book_url' OR meta_key = '_thumbnail_id') " ); |
Krijg ik terug terug:
code:
1
| Array ( [0] => stdClass Object ( [meta_value] => https://en.wikibooks.org/1 ) [1] => stdClass Object ( [meta_value] => 272 ) ) |
En dat is ook goed. Want die link en thumbnail id horen daarbij. Maar zoals je ziet. Heb ik post_id er gewoon ingezet. '216'. Eigenlijk moet dat variabel zijn, want er kunnen meerdere boeken bij horen, en van te voren weet ik niet welke boek erbij hoort.
post_id = 216 vervangen voor post_id = $books_id werkt niet. Dan komt er gewoon helemaal niks uit.
Daarom geprobeerd om het samen te voegen van de code. Dit werkt alleen ook niet:
PHP:
2
3
4
5
6
7
8
9
10
11
12
13
| $books = $wpdb->get_results( " SELECT meta_value FROM $wpdb->postmeta WHERE (meta_key = '_lpr_book_url' OR meta_key = '_thumbnail_id') AND post_id = ( SELECT post_id FROM $wpdb->postmeta WHERE meta_value = $lesson_id ) " ); |
Krijg ik niks terug. Als ik GROUP BY meta_value onder de 2e WHERE zet, dan krijg ik wel een respons.
code:
1
| Array ( [0] => stdClass Object ( [meta_value] => https://en.wikibooks.org/1 ) [1] => stdClass Object ( [meta_value] => 272 ) ) |
Maar dan krijg ik er maar 1 terug; de eerste die die tegenkomt lijkt het. GROUP BY post_id haalt niks uit.
Wat doe ik in godsnaam verkeerd? Ik zou toch denken dat het laatste goed zou zijn.