[php/array] 2 verschillende arrays het zelde krijgen.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi allen, ik ben zoals mischien al wel bekend bezig met programmer van fok om een GFX poll te schrijven, nou de GFX template en dergelijke werkt perfect alleen nu zit ik met een probleem met de volgende code laad ik uit de database een tabel en de antwoorden die aan dat tabel gekoppeld zijn..

PHP:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
function loadPoll($id)
{
    $sql = "SELECT
                gfxpoll.id,
                gfxpoll.title,
                gfxpoll.gfx,
                gfxpoll.closedate,
                gfxpoll.closed,
                count(gfxanswer.id) AS options
            FROM
                gfxpoll
            LEFT JOIN
                gfxanswer
            ON
                gfxanswer.poll_id = gfxpoll.id
            WHERE
                gfxpoll.id=" . $id . "
            GROUP BY
                gfxpoll.id";
    $query = mysql_query($sql) or die("1" . "<br><Br>" .  mysql_error() . "<br><Br>" . $sql);
    $items = mysql_num_rows($query);

    if ($items != 0)
    {
        $poll = mysql_fetch_object($query);

        $sql = "SELECT
                    id,
                    text,
                    votes
                FROM
                    gfxanswer
                WHERE
                    poll_id=" . $id;
        $query = mysql_query($sql);
        $items = mysql_num_rows($query);

        if ($items != 0)
        {
            // meer dan 0 objecten gevonden
            for ($x = 0; $x < $items; $x++)
            {
                $poll->answer->option[$x] = mysql_fetch_object($query);
            }
        }
        else
        {
            // geen objecten gevonden
            return false;
        }
    }
    else
    {
        return false;
    }
    return $poll;
}


en krijg ik de volgende arrays terug

code:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
object(stdClass)(7) {
  ["id"]=>
  string(1) "1"
  ["title"]=>
  string(26) "Is dit niet een mooie poll"
  ["gfx"]=>
  string(7) "default"
  ["closedate"]=>
  string(10) "0000-00-00"
  ["closed"]=>
  string(1) "0"
  ["options"]=>
  string(1) "4"
  ["answer"]=>
  object(stdClass)(1) {
    ["option"]=>
    array(4) {
      [0]=>
      object(stdClass)(3) {
        ["id"]=>
        string(1) "1"
        ["text"]=>
        string(18) "Zeker te weten wel"
        ["votes"]=>
        string(2) "13"
      }
      [1]=>
      object(stdClass)(3) {
        ["id"]=>
        string(1) "2"
        ["text"]=>
        string(15) "Ja, is wel leuk"
        ["votes"]=>
        string(2) "20"
      }
      [2]=>
      object(stdClass)(3) {
        ["id"]=>
        string(1) "3"
        ["text"]=>
        string(12) "Ben je gek?""
        ["votes"]=>
        string(2) "12"
      }
      [3]=>
      object(stdClass)(3) {
        ["id"]=>
        string(1) "4"
        ["text"]=>
        string(10) "Kan mooier"
        ["votes"]=>
        string(2) "10"
      }
    }
  }
}


alleen gebruikt de GFX template parser een array layout zoals dit

code:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
array(6) {
  ["id"]=>
  string(1) "1"
  ["title"]=>
  string(27) "Is dit niet een mooie poll?"
  ["closed"]=>
  bool(false)
  ["startDate"]=>
  string(10) "0000-00-00"
  ["endDate"]=>
  string(10) "0000-00-00"
  ["options"]=>
  array(4) {
    [0]=>
    array(3) {
      ["id"]=>
      int(1)
      ["text"]=>
      string(18) "Zeker te weten wel"
      ["votes"]=>
      string(2) "13"
    }
    [1]=>
    array(3) {
      ["id"]=>
      int(2)
      ["text"]=>
      string(15) "Ja, is wel leuk"
      ["votes"]=>
      string(2) "20"
    }
    [2]=>
    array(3) {
      ["id"]=>
      int(3)
      ["text"]=>
      string(11) "Ben je gek?"
      ["votes"]=>
      string(2) "12"
    }
    [3]=>
    array(3) {
      ["id"]=>
      int(4)
      ["text"]=>
      string(10) "Kan mooier"
      ["votes"]=>
      string(2) "10"
    }
  }
}


hoe komt het dat mijn routine een geheel andere output heeft? ik zie bv dat er bij mijn output object(stdClass)(7) ipv array(7) staat, dat staat er meerdere keren in... heeft iemand een idee hoe ik dit goed krijg?

Super tnx! :)

Acties:
  • 0 Henk 'm!

Verwijderd

misschien fetch_array gebruiken ipv fetch_object?!?!

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
|:( ik ga het gelijk proberen :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
waar komt b.t.w ? object(stdClass) vandaan? dat zegt me nix en ik kon het ookniet vinden in de manual!

Acties:
  • 0 Henk 'm!

Verwijderd

Van welke class is dat object een instantie? Juist, van een class die niet door de gebruiker gedefinieerd is. Het lijkt me dat er daarom een soort 'dummy' naam gebruikt wordt, en dat is dus blijkbaar stdClass.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb me routine aangepast en zie dus totaal geen verschillen in de volgende array's except dat in 1 van de 2 2 extra dingen zitten maar dat is geen probleem.

code:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
array(6) {
  ["id"]=> string(1) "1"
  ["title"]=> string(27) "Is dit niet een mooie poll?"
  ["closed"]=> bool(false)
  ["startDate"]=> string(10) "0000-00-00"
  ["endDate"]=> string(10) "0000-00-00"
  ["options"]=> array(4) { 
                         [0]=> array(3) {
                                   ["id"]=> int(1)
                                   ["text"]=> string(18) "Zeker te weten wel"
                                   ["votes"]=> string(2) "13"
                         }
                         [1]=> array(3) {
                                   ["id"]=> int(2)
                                   ["text"]=> string(15) "Ja, is wel leuk"
                                   ["votes"]=> string(2) "20"
                         }
                         [2]=> array(3) {
                                   ["id"]=> int(3)
                                   ["text"]=> string(11) "Ben je gek?"
                                   ["votes"]=> string(2) "12"
                         }
                         [3]=> array(3) {
                                   ["id"]=> int(4)
                                   ["text"]=> string(10) "Kan mooier"
                                   ["votes"]=> string(2) "10"
                         }
            }
}


// uit mijn db gelezen

object(stdClass)(6) {
  ["id"]=> string(1) "1"
  ["title"]=> string(26) "Is dit niet een mooie poll"
  ["gfx"]=> string(7) "default"
  ["closedate"]=> string(10) "0000-00-00"
  ["closed"]=> bool(true)
  ["options"]=> array(4) {
                         [0]=> object(stdClass)(3) {
                                   ["id"]=> int(1)
                                   ["text"]=> string(18) "Zeker te weten wel"
                                   ["votes"]=> string(2) "13"
                         }
                         [1]=> object(stdClass)(3) {
                                   ["id"]=> int(2)
                                   ["text"]=> string(15) "Ja, is wel leuk"
                                   ["votes"]=> string(2) "20"
                         }
                         [2]=> object(stdClass)(3) {
                                   ["id"]=> int(3)
                                   ["text"]=> string(12) "Ben je gek?""
                                   ["votes"]=> string(2) "12"
                         }
                         [3]=> object(stdClass)(3) {
                                   ["id"]=> int(4)
                                   ["text"]=> string(10) "Kan mooier"
                                   ["votes"]=> string(2) "10"
                         }
            }
}


Alleen blijft het gewoon niet werken :{ maar ziet iemand nou een verschil? nee toch?

[ Voor 18% gewijzigd door Verwijderd op 20-01-2003 19:56 . Reden: oepsie :P ]


Acties:
  • 0 Henk 'm!

Verwijderd

nouja, afgezien van het feit dat de tweede geen array maar een object is zie ik geen verschill ... ?!

edit:

Had je die opgeslagen in je db voordat je die fetch_object in fetch_array veranderde misschien?

[ Voor 37% gewijzigd door Verwijderd op 21-01-2003 10:30 ]


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

[nohtml]
zellufs:
nouja, afgezien van het feit dat de tweede geen array maar een object is zie ik geen verschill ... ?!
Idd, gewoon mysql_fetch_assoc () gebruiken, en verder is je template dan het probleem denk ik.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1