Avatar billede lsolesen Nybegynder
21. juni 2003 - 07:45 Der er 4 kommentarer og
1 løsning

Får $ uventet på linien neden under scriptet

Får en lidt spøjs fejl med nedenstående script:


Parse error: parse error, unexpected $ in /customers/fodboldenslegestue.dk/fodboldenslegestue.dk/httpd.www/artikler/index.php on line xx

Fejlen er i den linie umiddelbart under scriptet.

Nu har jeg kigget scriptet igennem på kryds og tværs, men må have stirret mig blind. Er der nogen der kan hjælpe?

<?php
//skriv tabel - funktion
function skriv_tabel($arr){

    // Tæl artiklerne
    $db = new DB_Sql($sql);
    $antal = $db->nf();

    // Udskriv antallet af artikler
    echo "<p>Der er $antal artikler i databasen.</p>";

    // Lav SQL-kaldet
    $sql = "SELECT *, a.id AS vis_id, a.oprettet AS publiceret, b.brugernavn AS forfatter FROM artikel a INNER JOIN bruger b ON a.bruger_id=b.id";
    if ($_GET["sorter"]) {
        $sql = $sql . " ORDER BY " . $_GET["sorter"];
        if ($_GET["orden"] == "op") $sql = $sql . " ASC";
        else $sql = $sql . " DESC";
    }
    else {
        $sql = $sql . " ORDER BY publiceret DESC";
    }

    echo "<table><tr>";
    echo "<thead>";

    // skriv tabelhovedet
    foreach($arr AS $parameter) {
        echo "<th><a href=\"?sorter=".$parameter[0]."&orden=";
        if ($_GET["sorter"] == $parameter[0] AND $_GET["orden"] == "op") echo "ned";
        else echo "op";
        echo "\">".$parameter[1]."</a></th>";
    }
   
    // afslut tabelhovedet
    echo "</tr>";
    echo "</thead><tbody>";

    $x = 0; // til at skrive skiftevis farver ud i tabellen

    //skriv de enkelte poster ud
    while($db->next_record()) {

        foreach($arr AS $parameter) {

            $id = $db->f("vis_id");
   
            print "<tr";
       
            if ($x==1){
                echo " class=\"white\" ";
                $x=0;
            }
            else {
                echo " class=\"grey\" ";
                $x=$x+1;
            }
   
            print ">";


            if ($parameter[2]) {
                print "<td><a href=\"".$parameter[2]."?id=".$id."\">" . $db->f($parameter[0])."</a></td>";
            }
            else {
                print "<td>" . $db->f($parameter[0])."</td>";
            }

        echo "</tr>";
    }

    echo "</tbody></table>";

}

//kolonnerne
$tabel = array(
    array("publiceret", "Dato"),
    array("overskrift", "Artikel", "vis_artikel.php"),
    array("forfatter", "Forfatter")
);

skriv_tabel($tabel);

?>
Avatar billede myplacedk Nybegynder
21. juni 2003 - 08:01 #1
Jeg får "parse error in /tmp/test.php on line 85", og det er den sidste linje, som kommer lige efter den med "?>". Det plejer at være fordi man har startet et eller andet, som ikke er afsluttet. Fx. en parentes.

Så vidt jeg lige kan se, så har du én mere "{" end du har "}", så din definition af funktionen stopper aldrig.

Det ville en editor med automatisk indrykning hurtigt afsløre. (Det var sådan jeg gjorde.)
Men til nød kan du manuelt gå din indrykning igennem, og finde fejlen på den måde.
Avatar billede lsolesen Nybegynder
21. juni 2003 - 08:26 #2
Mærkeligt, at jeg ikke havde set det. Synes ellers jeg specifikt tjekkede det hundrede gange, men nu virker det på www.fodboldenslegestue/artikler/
Avatar billede exp Juniormester
21. juni 2003 - 11:40 #3
myplacedk >>
"en editor med automatisk indrykning" <== Hvilken?
Avatar billede nicklasb Nybegynder
21. juni 2003 - 11:42 #4
exp -> Det kunne for eksempel være Maguma Studio for PHP.. Den rykker det selv ind.. Den er dog let at nare, og efter min mening laver den også nogle gange godt fejl i fx slutning af en if, for, else, while -funktion (Mener en })
men det virker som myplacedk beskriver det.. :D
Avatar billede jakoba Nybegynder
21. juni 2003 - 14:45 #5
du mangler en } til din linie
        foreach($arr AS $parameter) {
Jeg tipper den skal stå lige efter din linie
        echo "</tr>";
som forresten skal rykkes ind en tand længere.

mvh JakobA
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester