Werken met foreach, gegevens opvragen uit database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ray Mond

Ray Mond

27/07/2019 18:23:50
Quote Anchor link
Ben hier nu al een tijdje mee bezig maar krijg het toch niet echt lekker voor elkaar... ondertussen andere dingen maar even gedaan en nu kwam ik hier toch weer op terug.

Om eerlijk te zijn weet ik niet precies hoe het allemaal werkt met foreach.. daar draai ik ook zeker niet omheen.

Ik krijg dus wel het content te zien maar ik zou ook graag de datum (last_update) op willen roepen vanuit de database voor het content. Samen met de gebruiker die het opgeslagen heeft.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
                        
                        $data
= array();
                        $notes_sql = "select * from note_custom where to_id='".$row->profile_id."' and from_id= '".$db->escape_string($aid)."'  order by type, last_update DESC";
                        $ret  = $db->query($notes_sql);
                        while($rown = $ret->fetch_object()){
                            $data[$rown->type][$rown->id] = $rown->content;
                        }

                        if(!empty($data)){
                            echo '<div class="accordion" id="collapse-group">';
                            
                            foreach($data as $type => $content){
                                echo' <div class="accordion-group widget-box">
                                <div class="accordion-heading">
                                    <div class="widget-title">
                                        <a data-parent="#collapse-group" href="#collapse'
.$row->profile_id.''.$type.'" data-toggle="collapse">
                                            <span class="icon"><i class="icon-book"></i></span><h5>'
.$config['note_setting'][$type].' ('.sizeof($content).')</h5>
                                        </a>
                                    </div>
                                </div>
                                <div class="collapse accordion-body" id="collapse'
.$row->profile_id.''.$type.'">
                                    <div class="widget-content"><ul>'
;
                                        
                                  foreach($content as $list_id => $list ){
                                      echo "<li> ".$list." <span id='".$list_id."' class='del_note'><i class='icon icon-remove'></i></span>";
                                  }

                                  
                                   echo' </div>
                                </div>
                                </div> '
;
                            }

                            echo "</div>";
                        }

                        
                        ?>


Iemand enig idee? Mijn dank is groot!
 
PHP hulp

PHP hulp

28/03/2024 23:58:48
 
- Ariën  -
Beheerder

- Ariën -

27/07/2019 21:26:44
Quote Anchor link
Een goede tip: gebruik print_r() om eens $data uit te lezen.
 
Thomas van den Heuvel

Thomas van den Heuvel

28/07/2019 15:56:10
Quote Anchor link
Waarom doe je eerst een SELECT *, en vervolgens gebruik je enkel type, id en content. Als je meer informatie wilt gebruiken, die niet op een lineaire manier gesorteerd lijkt, dan zul je dus het $data-array moeten uitbreiden, specifiek het content-subarray.

Maar als de database een beetje fatsoenlijk in elkaar zit dan wordt waarschijnlijk het user-id opgeslagen in note_custom, en niet de gebruikersnaam zelf, dus in dat geval zou je de query ook moeten uitbreiden met een JOIN op je user-tabel om de gebruikersnaam op te halen.

Dit lijkt mij allemaal redelijk eenvoudig te realiseren met de bovenstaande aanpassingen.
 
Ray Mond

Ray Mond

28/07/2019 16:18:34
Quote Anchor link
Dit was al een bestaand iets, vandaar dat ik ook aangaf hoe het allemaal precies werkt met die Foreach heb ik zo ff geen idee van, snap wel een deel maar niet alles, daar ben ik ook eerlijk in.

De gebruikersnaam gaat inderdaad niet opgeslagen worden maar naam van de mod, de gebruiker die het dus invoert.
Vandaar dat ik bij het content dus de log informatie de tijdstip (last_update) wil laten zien samen met de (moderator) naam.
 
- Ariën  -
Beheerder

- Ariën -

28/07/2019 17:35:08
Quote Anchor link
heb je al een print_r() gebruikt? Dan heb je een mooi overzicht wat er in de array's bevindt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.