Avatar billede t3rk3l Nybegynder
20. august 2004 - 07:29 Der er 14 kommentarer og
2 løsninger

hvor er fejlen?

Hej ..

Jeg har denne kode:
[code]
<?
session_start();

if ($_SESSION['status'] != "login"){
?>
<html>
<head>
<title>top</title>
</head>
<body bgcolor="#3333FF">
Du skal være logget ind
</body>
</html>
<?
}else{
include('ext/sql.php');
$result=mysql_query("SELECT * FROM felter where ejer=".$_SESSION['user']."");
$toj = mysql_fetch_array($result);
if(!$toj){
echo "der er sket en fejl";
}else{
?>
<html>

<head>
<title>garderobe</title>
</head>

<body bgcolor="#3333FF">
<?
$taeller = 0;
echo "Garderoben";
echo "<table>";
while($toj) {
if($taeller % 2 == 0) {
?>
  <!-- nu udskriver vi det så i en tabel... -->
  <td><img src="<?php echo $row['figur']; ?>"></td></tr>
<?php
}else{
?>
  <!-- nu udskriver vi det så i en tabel... -->
  <tr><td><img src="<?php echo $row['figur']; ?>"></td>
<?
}
echo "</table>";
?>
</body>

</html>
<?
}
}
?>
[/code]

og den kommer med denne fejl:
[code]
Parse error: parse error, unexpected $end in garde.php on line 55
[/code]
håber der er en der kan hjælpe mig med at finde fejlen.
Avatar billede expnet Seniormester
20. august 2004 - 07:56 #1
mangler du ikke en } til sidste i din kode
Avatar billede coderdk Praktikant
20. august 2004 - 09:22 #2
Indrykning hjælper altid! ;-)
Avatar billede cbolvig Nybegynder
20. august 2004 - 10:21 #3
<?php
#
# først til sidst sendes HTML koden til klienten med $htmlout
# fordele:
# det er meget nemmere at overskue PHP koden og holde rede på {} med videre
# hurtigere resultat fordi serveren ikke skal skifte imellem  PHP og HTML kode
# du kan få minimalt med fyld af blanktegen og linieskift i HTMLkoden, den skal jo ikke læses af mennesker bagefter
#
# koden herunder er en principskitse som måske også virker
# syntakscheck er i altfald OK siger PHP fortolkeren

session_start();

if ($_SESSION['status'] != "login"){

    $htmlout='<html>'
        .'<head>'
        .'<title>top</title>'
        .'</head>'
        .'<body bgcolor="#3333FF">'
        .'Du skal være logget ind'
        .'</body>'
        .'</html>';

}else{

    include('ext/sql.php');
    $result=mysql_query("SELECT * FROM felter where ejer='".$_SESSION['user']."'");
    $toj = mysql_fetch_array($result);
    if(!$toj){
        $htmlout='der er sket en fejl';

        }else{

        $htmlout.='<html>'
            .'<head>'
            .'<title>garderobe</title>'
            .'</head>'
            .'<body bgcolor="#3333FF">';

        $taeller = 0;
        $htmlout.="Garderoben";
        $htmlout.="<table>";
        while($toj) {
            if($taeller % 2 == 0) {
                $htmlout.='<!-- nu udskriver vi det så i en tabel... -->'
                    .'<td><img src="'.$row['figur'].'"></td></tr>';
            }else{
                $htmlout.='<!-- nu udskriver vi det så i en tabel... -->'
                    .'<tr><td><img src="'.$row['figur'].'"></td>';
            }
            $htmlout.="</table>";
            $htmlout.='</body>'
                .'</html>';
        }
    }
} # denne manglede du som expnet nævnte tidligere
echo $htmlout;
?>
Avatar billede cbolvig Nybegynder
20. august 2004 - 10:24 #4
Hov der mangler en "</tr>" i din kode - kan du finde den i 10. linie fra neden i mit eksempel.
Avatar billede t3rk3l Nybegynder
20. august 2004 - 13:12 #5
cbolvig: Det er meningen hvis du ser i linje 15 fra neden i dit exempel kan du måske forstå det

og jer alle sammen: Da jeg satte "}" ind til sidst kom denne fejl:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\server\apache\htdocs\chat\garde.php on line 17

Hmm.. hader den kan nemlig aldrig fortå hvad det er der er galt
Avatar billede coderdk Praktikant
20. august 2004 - 13:16 #6
Dén fejl kan du få til at forsvinde ved at smide et @ foran mysql_fetch_array, det betyder blot at den ikke fandt noget ;)
Avatar billede coderdk Praktikant
20. august 2004 - 13:17 #7
jeg ville ændre:

    $result=mysql_query("SELECT * FROM felter where ejer='".$_SESSION['user']."'");
    $toj = mysql_fetch_array($result);
    if(!$toj){
        $htmlout='der er sket en fejl';

        }else{

        $htmlout.='<html>'
            .'<head>'
            .'<title>garderobe</title>'
            .'</head>'
            .'<body bgcolor="#3333FF">';


til:

    $sql = "SELECT * FROM felter where ejer='".$_SESSION['user']."'";
    $result=mysql_query( $sql );
    if ( mysql_num_rows( $result ) > 0 )
    {
        $htmlout='der er sket en fejl';
        }else{

        $toj = mysql_fetch_assoc($result);

        $htmlout.='<html>'
            .'<head>'
            .'<title>garderobe</title>'
            .'</head>'
            .'<body bgcolor="#3333FF">';
Avatar billede coderdk Praktikant
20. august 2004 - 13:18 #8
Bah

  if ( mysql_num_rows( $result ) > 0 )

Skulle jo være:

  if ( mysql_num_rows( $result ) == 0 )
Avatar billede t3rk3l Nybegynder
20. august 2004 - 13:48 #9
nu åbner den bare 1 million/milliard billeder :(
Avatar billede t3rk3l Nybegynder
20. august 2004 - 13:48 #10
og denne: if($taeller % 2 == 0) { virker vist heller ikke da den ikke skifter imellem dem
Avatar billede coderdk Praktikant
20. august 2004 - 13:49 #11
Du skal nok smide:

$toj = mysql_fetch_assoc( $result );

ind i slutningen af din while() løkke...
Avatar billede coderdk Praktikant
20. august 2004 - 13:50 #12
Nej det er klart, du gør jo heller ikke noget ved $taeller ;)

prøv med ( $taeller++ % 2 == 0 )
Avatar billede t3rk3l Nybegynder
20. august 2004 - 13:55 #13
Nu virker det næsten så tak for hjælpen men denne kode:

print("<tr><td><img src='pics/".$row['figur'].".bmp'></td>");

udskriver kun:

<tr><td><img src='pics/.bmp'></td>
Avatar billede t3rk3l Nybegynder
20. august 2004 - 13:55 #14
fandt fejlen det skulle være: $toj og ikke: $row
Avatar billede t3rk3l Nybegynder
20. august 2004 - 13:56 #15
coderdk smid et svar så får du også lidt point ok tak for svaret
Avatar billede coderdk Praktikant
20. august 2004 - 14:03 #16
ehhehe ok :)
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