[php] Warning: Cannot use a scalar value as an array

Pagina: 1
Acties:
  • 237 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb de search gebruikt en ben topics tegengekomen met dezelfde foutmelding, maar die boden me geen uitkomst. Ik heb het volgende script, wordt geïnclude door index.php:

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
if(defined('IS_INCLUDED')) {

    $var['script_stylesheet'] = "style_info";
    if(!empty($_GET['aid'])) {
        if(preg_match("/[^0-9]+$/ ", $_GET['aid'])) 
die("Alleen cijfers toegestaan in AID");

        $aid_query = mysql_query("SELECT artiest_naam FROM artiest WHERE 
artiest_id = '".$_GET['aid']."'") or die(mysql_error());
        $a_naam = mysql_result($aid_query, 0);

        $aid_query = mysql_query("SELECT n.nummer_id, n.nummer_titel, b.album_id,
 b.album_titel FROM nummer n, album b WHERE n.nummer_artiest_id = 
'".$_GET['aid']."' AND b.album_id = n.nummer_album_id ORDER BY 
n.nummer_titel ASC") or die(mysql_error());

        $tmp['info_html'] .= '<h1>'.$a_naam.'</h1><br/>';
        $tmp['info_html'] .= '<table width=100%>';

        $tmp['art_num'] = array();
        $tmp['alb'] = array();
        $tmp['num_alb'] = array();
        $tmp['art_num_lcase'] = array();

        while($aid = mysql_fetch_assoc($aid_query)) {
            if(!in_array(strtolower($aid['nummer_titel']), $tmp['art_num_lcase'])) {
                $tmp['art_num_lcase'][] = strtolower($aid['nummer_titel']);
                $tmp['art_num'][$aid['nummer_id']] = $aid['nummer_titel'];
                //$tmp['alb'][$aid['nummer_id']] = $aid['album_titel'];
                //$tmp['num_alb'][$aid['nummer_id']] = $aid['album_id'];
            }
        }

        foreach($tmp['art_num'] AS $var => $val) {
            $tmp['info_html'] .= '<tr><td>'.$var.'</td><td>'.$val.'</td></tr>';
        }

        $tmp['info_html'] .= '</table>';
        

    } elseif(!empty($_GET['nid'])) {


    } elseif(!empty($_GET['bid'])) {

    }

    $var['script_data'] = $tmp['info_html'];

}


Wanneer ik dit uitvoer krijg ik de foutmelding Warning: Cannot use a scalar value as an array in /home/chilloso/public_html/amptracker/proc/info.php on line 48. Wat ik ook probeer, ik kan er geen mooie oplossing/workaround voor vinden.

Het vreemde is dat index.php bij andere onderdelen van de site ook bestanden include, die op een soortgelijke manier werken als bovenstaand script. Bij die andere onderdelen heb ik nog niet eerder dit soort foutmeldingen gehad.

$tmp['info_html'] is een string, $var['script_data'] ook... waarom gaat er dan toch iets fout?
Script is overigens nog niet echt geoptimaliseerd, commentaar op de werkwijze mag achterwege gelaten worden

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
in je foreach overschrijf je de $var-parameter.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat is een typisch geval van D'oh!
En ik zit me er helemaal suf naar te staren.

Bedankt!