Avatar billede kgp43 Nybegynder
18. april 2004 - 08:52 Der er 60 kommentarer og
1 løsning

Parse error i sideskift

Parse error: parse error in /home/radioloa/public_html/radio_stations/internet/dance_radio.php on line 39

Hejsa,

Jeg har netop fundet noget kode til at skifte side, men den kommer med en "parse error". Nogle der kan hjælpe?


<?
                $pr_side = 10;
                $vis_fra = if(isset($_GET['visfra'])) ? $_GET["visfra"] : 0;

                $query = mysql_query ("SELECT * FROM stations WHERE type='Dance' AND status='1' ORDER BY name ASC LIMIT $vis_fra, $pr_side") or die(mysql_error());
                while ($row = mysql_fetch_array($query)) {
                ?>
                  <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" class="list-border-all">
                    <tr align="left" valign="middle">
                      <td height="20" colspan="2" class="list-topic"><? echo $row[name];?></td>
                      <td height="20" align="center" class="list-topic">&nbsp;</td>
                    </tr>
                    <tr align="center" valign="middle">
                      <td width="20%" height="20" align="left" class="list-cell_1">Website
                        link :</td>
                      <td width="45%" height="20" align="left" class="list-cell_1"><a href="http://<? echo $row[url];?>" target="_blank">Visit
                        this Radio Station</a>&nbsp;</td>
                      <td width="35%" rowspan="2" bgcolor="#F5F9FD"><a alt="Listing to <? echo $row[name]; ?>" href="http://<? echo $row[broadcast]; ?>"><img title="Listing to radio station: <? echo $row[name]; ?>" src="/img/radio_listen.jpg" width="66" height="18" border="0"></a></td>
                    </tr>
                    <tr align="center" valign="middle">
                      <td width="20%" height="20" align="left" class="list-cell_2">Country:</td>
                      <td width="45%" height="20" align="left" class="list-cell_2"><? echo $row[country];?>&nbsp;</td>
                    </tr>
                  </table>
                <br>
                <?
                }
                $antal = mysql_result(mysql_query("SELECT COUNT(*) FROM stations"),0);

                if ($visfra > 0) {
                    $bagud = $visfra - $prside;
                    echo "<a href='$_SERVER[PHP_SELF]?visfra=$bagud'>Previous</a> ";
                }
                $page = 1;
                for ($start = 0; $antal > $start; $start = $start + $prside) {
                    if($visfra != $page * $prside - $prside) {
                        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
                    } else {
                        echo $page." ";
                    }
                    $page++;
                }
                if ($visfra < $antal - $prside) {
                    $naeste = $visfra + $prside;
                    echo " <a href='$_SERVER[PHP_SELF]?visfra=$naeste'>Next</a>";
                }
                ?>
Avatar billede dennismp Nybegynder
18. april 2004 - 09:47 #1
ret
$vis_fra = if(isset($_GET['visfra'])) ? $_GET["visfra"] : 0;
til
$vis_fra = isset($_GET['visfra']) ? $_GET["visfra"] : 0;
Avatar billede kgp43 Nybegynder
18. april 2004 - 09:52 #2
Det var forresten også i den linie fejlen var.
Det ser ikke ud til at virke - siden loader MEGET langsomt nu. Kommer ikke med nogen fejl, men heller ikke noget data, det er som om den fryser fast.
Avatar billede kgp43 Nybegynder
18. april 2004 - 10:04 #3
Prøvede at ændre det til:

if (isset($_GET['visfra'])) {
  $vis_fra = $_GET["visfra"];
} else {
  $vis_fra = "0";

- Kommer ikke med noget fejl, men fryser fast igen :(                }
Avatar billede dennismp Nybegynder
18. april 2004 - 10:13 #4
loader langsomt? Og andre sider virker fint?
fryser fast? hvad betyder det? at du ikke får noget output? Eller at det går ekstremt langsomt?
Avatar billede kgp43 Nybegynder
18. april 2004 - 10:17 #5
Der kommer ikke noget output, den bliver bare ved med at loade. Andre sider har ikke problemer.

URL: www.radioload.com
Nb. "Dance" og "Public Radio" er ændret. "Sports" virker fint (unden ændring)
Avatar billede dennismp Nybegynder
18. april 2004 - 10:39 #6
for ($start = 0; $antal > $start; $start = $start + $prside) {
print "for()"<br>";
                    if($visfra != $page * $prside - $prside) {
                        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
                    } else {
                        echo $page." ";
                    }
                    $page++;
                }

prøv at tilføje den print-linje så kan du se om den busy-looper der. Prøv evt også i de andre loops du har.
Avatar billede dennismp Nybegynder
18. april 2004 - 10:43 #7
glem det.. Jeg tro rder er noget andet galt i den kode. Når den endelig har loaded, så viser den to sites, og en helvedes passe sidetal.. (loader 5,5 mb data)..

hmm det ser altså underligt ud den for()-løkke.. prøv at tjekke dine variabler
Avatar billede kgp43 Nybegynder
18. april 2004 - 10:43 #8
Hvor skal jeg indsætte det?
I mit loop, hvor jeg henter data ud fra db'en?
Avatar billede kgp43 Nybegynder
18. april 2004 - 10:43 #9
prøver lige at checke efter
Avatar billede kgp43 Nybegynder
18. april 2004 - 10:48 #10
Har checket og kan ikke se nogle fejl i mine variabel navne
Avatar billede dennismp Nybegynder
18. april 2004 - 10:58 #11
Det var ikke navnene, det var sådanset mere din struktur / beregninger der må være forkerte..

Jeg har hentet siden (dance), stoppede ved 6mb, den sidste sidetal jeg kan se er side 983208 - og igen af dem er lavet som et link.
Avatar billede kgp43 Nybegynder
18. april 2004 - 11:31 #12
rofl... 983.208 sider?
Så er der jo noget helt galt
Avatar billede kgp43 Nybegynder
18. april 2004 - 11:33 #13
Dette er min kode:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Radioload: Listen to Online Radio Stations</title>
<META NAME="Description" CONTENT="Online Radio Stations. Find a online Radio Station, by using our index of online radio stations from all over the world">
<META NAME="Keywords" CONTENT="Radio,Online Radio,Internet Radio,Free Radio,Radio Station">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="/styles/style.css" rel="stylesheet" type="text/css">
<link href="/styles/list.css" rel="stylesheet" type="text/css">
</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="780" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center" valign="top">
    <?
    include("/home/radioloa/public_html/db.php");
    include "/home/radioloa/public_html/topmenu.php";
    ?>
      <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td width="150" align="left" valign="top">
            <?
          include "/home/radioloa/public_html/leftmenu.php";
          ?>
          </td>
          <td width="630" align="center" valign="top" class="span-top-left">
            <table width="100%" border="0" cellspacing="0" cellpadding="0" class="border-all">
              <tr>
                <td height="20" align="left" class="index-topic"><a href="/index.php">Home</a>
                  : <a href="/radio_stations/index.php">Find Radio Station</a>
                  : Dance</td>
              </tr>
              <tr>
                <td align="center" valign="middle" bgcolor="#EEF2F7" class="span-all">
                <br>
                <?
                $pr_side = 10;
                $vis_fra = isset($_GET['visfra']) ? $_GET["visfra"] : 0;

                $query = mysql_query("SELECT * FROM stations WHERE type='Dance' AND status='1' ORDER BY name ASC LIMIT $vis_fra, $pr_side") or die(mysql_error());
                while ($row = mysql_fetch_array($query)) {
                ?>
                  <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" class="list-border-all">
                    <tr align="left" valign="middle">
                      <td height="20" colspan="2" class="list-topic"><? echo $row[name];?></td>
                      <td height="20" align="center" class="list-topic">&nbsp;</td>
                    </tr>
                    <tr align="center" valign="middle">
                      <td width="20%" height="20" align="left" class="list-cell_1">Website
                        link :</td>
                      <td width="45%" height="20" align="left" class="list-cell_1"><a href="http://<? echo $row[url];?>" target="_blank">Visit
                        this Radio Station</a>&nbsp;</td>
                      <td width="35%" rowspan="2" bgcolor="#F5F9FD"><a alt="Listing to <? echo $row[name]; ?>" href="http://<? echo $row[broadcast]; ?>"><img title="Listing to radio station: <? echo $row[name]; ?>" src="/img/radio_listen.jpg" width="66" height="18" border="0"></a></td>
                    </tr>
                    <tr align="center" valign="middle">
                      <td width="20%" height="20" align="left" class="list-cell_2">Country:</td>
                      <td width="45%" height="20" align="left" class="list-cell_2"><? echo $row[country];?>&nbsp;</td>
                    </tr>
                  </table>
                <br>
                <?
                }
                $antal = mysql_result(mysql_query("SELECT COUNT(*) FROM stations"),0);

                if ($visfra > 0) {
                    $bagud = $visfra - $prside;
                    echo "<a href='$_SERVER[PHP_SELF]?visfra=$bagud'>Previous</a> ";
                }
                $page = 1;
                for ($start = 0; $antal > $start; $start = $start + $prside) {
                    if($visfra != $page * $prside - $prside) {
                        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
                    } else {
                        echo $page." ";
                    }
                    $page++;
                }
                if ($visfra < $antal - $prside) {
                    $naeste = $visfra + $prside;
                    echo " <a href='$_SERVER[PHP_SELF]?visfra=$naeste'>Next</a>";
                }
                ?>
                </td>
              </tr>
            </table>         
          </td>
        </tr>
      </table> </td>
  </tr>
  <tr>
    <td height="20" align="center">
      <?
    include "/home/radioloa/public_html/footer.php";
    ?>
    </td>
  </tr>
</table>
</body>
</html>
Avatar billede kgp43 Nybegynder
18. april 2004 - 11:33 #14
Jeg indsatte den siste part efter mit loop, måske er det forkert?
Avatar billede dennismp Nybegynder
18. april 2004 - 11:43 #15
prøv med denne løkke istedet.
    for($page = 1;$page*$prside <= $antal; $page++) {
        if( $visfra == $page) {
            echo $page . ' ';
        }
        else {
            echo "<a href='$_SERVER[PHP_SELF]?visfra=$page'>$page</a> ";
        }
    }
Avatar billede kgp43 Nybegynder
18. april 2004 - 11:46 #16
samme problem
Avatar billede dennismp Nybegynder
18. april 2004 - 11:49 #17
så er der noget galt med dine værdier i variabler, det virker fint her:
http://dennis.moellegaard.dk/v4/php/490465.php?visfra=18

$prside er positiv, korrekt?
Avatar billede kgp43 Nybegynder
18. april 2004 - 12:12 #18
$prside = 10, så den er positiv.

dette irritere mig.
Virker det hos dig, med den sidste løkke du postede?
Avatar billede dennismp Nybegynder
18. april 2004 - 12:15 #19
ja, tryk selv på linket.
sourcen finder du her: http://dennis.moellegaard.dk/v4/php/490465.php?visfra=18&source=1
Avatar billede kgp43 Nybegynder
18. april 2004 - 12:31 #20
weird.

Så er spørgsmålet hvorfor den virker hos dig, men ikke hos mig.
Avatar billede dennismp Nybegynder
18. april 2004 - 12:33 #21
Har du prøvet at skrive dine variabler ud? er $antal korrekt?
Avatar billede kgp43 Nybegynder
18. april 2004 - 12:45 #22
Hvordan får du den til at skifte siden, inden den er færdig med at loade?
Avatar billede kgp43 Nybegynder
18. april 2004 - 12:55 #23
$antal viser 29, så den er go nok.
Avatar billede dennismp Nybegynder
18. april 2004 - 13:00 #24
inden den er færdig med at loade, hvad mener du?

visfra=18 gør, at den "starter" på side 18. Du kan jo kigge i sourcen
Avatar billede kgp43 Nybegynder
18. april 2004 - 13:04 #25
$visfra og $prside er tomme - har ingen værdi.

Det med at loade: det er ligemeget, det er mig der er forvirret i dag.
Avatar billede kgp43 Nybegynder
18. april 2004 - 13:05 #26
ahhh.... variablerne hedder noget andet i den sidste del..

ex $pr_side = $prside
Avatar billede kgp43 Nybegynder
18. april 2004 - 13:07 #27
Det skal de da også.... agrr, jeg får snart grå hår i hovedet
Avatar billede kgp43 Nybegynder
18. april 2004 - 13:10 #28
værdier:

$pr_side = 29
$vis_fra = 0
$pr_side = 10
Avatar billede kgp43 Nybegynder
18. april 2004 - 13:16 #29
Okay, der har kludder i variabel navnene (som jeg skrev et ar posts længere oppe) - tror jeg.
Ny loader den hurtigere, men der er ingen links:
http://www.radioload.com/radio_stations/internet/public_radio.php
Avatar billede kgp43 Nybegynder
18. april 2004 - 13:18 #30
Så virker det. Linksene er også okay :)
Grunden var at variabel navne i den nedeste part, ikke stemte overens med den øveste del.

Laver du lige et svar, så får du point.
Avatar billede dennismp Nybegynder
18. april 2004 - 13:21 #31
Jammen det får du

(grunden til at jeg er lidt sløv til at svare, er faktisk at jeg også har et loop der løber løbsk :-) )
Avatar billede kgp43 Nybegynder
18. april 2004 - 13:27 #32
Jeg takker for hjælpen :=)
Avatar billede kgp43 Nybegynder
18. april 2004 - 13:32 #33
Og alligevel ikke.
Hvis du klikker på det sidste link jeg postede, så kan du se at den poster en ekstra side (er tom). Ved du hvad grunden er?
Avatar billede dennismp Nybegynder
18. april 2004 - 14:00 #34
gider du at poste din for()-løkke igen.
Avatar billede kgp43 Nybegynder
18. april 2004 - 14:10 #35
for ($start = 0; $antal > $start; $start = $start + $pr_side) {
                    if($vis_fra != $page * $pr_side - $pr_side) {
                        echo "<a href='$_SERVER[PHP_SELF]?vis_fra=$start'>$page</a> ";
                    } else {
                        echo $page." ";
                    }
                    $page++;
                }
Avatar billede dennismp Nybegynder
18. april 2004 - 14:31 #36
problemet er din for-løkke;
for ($start = 0; $antal > $start; $start = $start + $pr_side) {

forstil dig at du er på side 3 (visfra=20 og der er ialt 21 rækker), så vil for() se sådan ud, når du er færdig med at lave linket til side 3:
Betingelsen er $antal > $start. Så 21 > 20, det er jo sandt. Derefter ligger du 10 til $start og laver et link til den side..

prøv dette igen:
    for($page = 1;$page*$prside <= $antal; $page++) {
        if( $visfra == $page) {
            echo $page . ' ';
        }
        else {
            echo "<a href='$_SERVER[PHP_SELF]?visfra=" . (($page-1)*$prside) . "'>$page</a> ";
        }
    }
Avatar billede kgp43 Nybegynder
18. april 2004 - 14:54 #37
Det virker perfekt.

Før havde jeg det aktuelle sidetal med rød, er det ikke bare at gøre det sådan:

for($page = 1;$page*$pr_side <= $antal; $page++) {
                    if( $vis_fra == $page) {
                        echo "<font color=red><b>$page </b></font>";
                    }
                    else {
                        echo "<a href='$_SERVER[PHP_SELF]?vis_fra=" . (($page-1)*$pr_side) . "'>$page</a> ";
                    }
                }
Avatar billede kgp43 Nybegynder
18. april 2004 - 14:56 #38
Kan se at den ikke viser det aktuelle sidetal rigtigt. Det fremgår som et link, så det er svært at se hvilken side man er på.
Avatar billede dennismp Nybegynder
18. april 2004 - 15:13 #39
$page er sideantal
$vis_fra er antal rækker, derfor vil de sjældent match.
prøv istedet;
if( $vis_fra == (($page-1)*$pr_side))
  skriv med rødt
else
  æav link
Avatar billede kgp43 Nybegynder
18. april 2004 - 15:15 #40
ahhh... okay :)
Avatar billede kgp43 Nybegynder
18. april 2004 - 15:17 #41
Det virker perfekt.
jeg takker endnu engang
Avatar billede dennismp Nybegynder
18. april 2004 - 15:18 #42
æav - er så lav :-)
Avatar billede kgp43 Nybegynder
18. april 2004 - 15:31 #43
huh? den fik jeg ikke lige fat i :P
Avatar billede dennismp Nybegynder
18. april 2004 - 15:35 #44
Se mit forrige indlæg (15:13:54) .. der står
else
  æav link
:-)
burde havde været
else
  lav link.

forresten, er det dig der har lavet designet til siden?
Avatar billede kgp43 Nybegynder
18. april 2004 - 16:06 #45
nåååå, jeg plejer ikke at bekymre mig om tastefejl :P

"forresten, er det dig der har lavet designet til siden?"
Ja og nej. Billedet i toppen er ikke mig, resten har jeg selv lavet.
Avatar billede kgp43 Nybegynder
18. april 2004 - 16:07 #46
Eller det vil sige: Billedet i toppen har jeg modificeret, så det passer. Det er oprindeligt fra en gratis template.
Avatar billede kgp43 Nybegynder
23. april 2004 - 14:55 #47
Jeg håber du stadig er her :)

Mit sideskift så ud til at virke okay, men nu kan jeg se at der gå kludder på nogle af siderne.

Ok: http://www.radioload.com/radio_stations/internet/dance_radio.php
Fejl: http://www.radioload.com/radio_stations/internet/alternative_radio.php (og andre).

koden:
<?
                }
                $antal = mysql_result(mysql_query("SELECT * FROM stations WHERE type='Alternative' AND status='1' ORDER BY name ASC "),0);
               
                if ($antal > 10) {

                if ($vis_fra > 0) {
                    $bagud = $vis_fra - $pr_side;
                    echo "<a href='$_SERVER[PHP_SELF]?vis_fra=$bagud'>Previous</a> ";
                }
                $page = 1;
                for ($start = 0; $antal > $start; $start = $start + $pr_side) {
                    if($vis_fra != $page * $pr_side - $pr_side) {
                        echo "<a href='$_SERVER[PHP_SELF]?vis_fra=$start'>$page</a> ";
                    } else {
                        echo $page." ";
                    }
                    $page++;
                }
                if ($vis_fra < $antal - $pr_side) {
                    $naeste = $vis_fra + $pr_side;
                    echo " <a href='$_SERVER[PHP_SELF]?vis_fra=$naeste'>Next</a>";
                }
                }
                ?>
Avatar billede dennismp Nybegynder
23. april 2004 - 18:10 #48
Har du tjekket om $antal er korrekt?
Avatar billede kgp43 Nybegynder
23. april 2004 - 18:34 #49
$antal = 47
Selvom der kun kommet 1 post
Avatar billede kgp43 Nybegynder
23. april 2004 - 18:34 #50
Tror problemet er de 47
Avatar billede dennismp Nybegynder
23. april 2004 - 18:40 #51
Hvordan ser den sql ud, som laver selve oversigten?
Avatar billede kgp43 Nybegynder
23. april 2004 - 18:43 #52
$antal = mysql_result(mysql_query("SELECT * FROM stations WHERE type='Alternative' AND status='1' ORDER BY name ASC "),0);
                echo $antal;
                if ($antal > 10) {


Har checket om den er okay - kan ikke se nogle fejl.
Avatar billede dennismp Nybegynder
23. april 2004 - 18:46 #53
det var denne her (fra dit indledende spørgsmål) jeg tænkte på..
$query = mysql_query ("SELECT * FROM stations WHERE type='Dance' AND status='1' ORDER BY name ASC LIMIT $vis_fra, $pr_side") or die(mysql_error());

Hvordan ser den ud nu?
Avatar billede kgp43 Nybegynder
23. april 2004 - 18:49 #54
Min kode ser sådan her ud:

$pr_side = 10;
                $vis_fra = isset($_GET['vis_fra']) ? $_GET["vis_fra"] : 0;

                $query = mysql_query("SELECT * FROM stations WHERE type='Alternative' AND status='1' ORDER BY name ASC LIMIT $vis_fra, $pr_side") or die(mysql_error());
                while ($row = mysql_fetch_array($query)) {

bla bla bla bla bla bla bla

}
                $antal = mysql_result(mysql_query("SELECT * FROM stations WHERE type='Alternative' AND status='1' ORDER BY name ASC "),0);
                echo $antal;
                if ($antal > 10) {

                if ($vis_fra > 0) {
                    $bagud = $vis_fra - $pr_side;
                    echo "<a href='$_SERVER[PHP_SELF]?vis_fra=$bagud'>Previous</a> ";
                }
                $page = 1;
                for ($start = 0; $antal > $start; $start = $start + $pr_side) {
                    if($vis_fra != $page * $pr_side - $pr_side) {
                        echo "<a href='$_SERVER[PHP_SELF]?vis_fra=$start'>$page</a> ";
                    } else {
                        echo $page." ";
                    }
                    $page++;
                }
                if ($vis_fra < $antal - $pr_side) {
                    $naeste = $vis_fra + $pr_side;
                    echo " <a href='$_SERVER[PHP_SELF]?vis_fra=$naeste'>Next</a>";
                }
                }
Avatar billede dennismp Nybegynder
23. april 2004 - 18:53 #55
Underligt - hvor mange rækker er der i stations hvor type er "Alternative" og ialt?
Avatar billede kgp43 Nybegynder
23. april 2004 - 18:57 #56
1 række
Avatar billede kgp43 Nybegynder
23. april 2004 - 18:58 #57
hvis du laver en søgning på "Alternative", så er den go nok.

Jeg skal på en lille "mini ferie", er tilbage mandag.
Avatar billede dennismp Nybegynder
23. april 2004 - 19:01 #58
Jeg ved godt hvad der er galt :-)

$antal = mysql_result(mysql_query("SELECT * FROM stations WHERE type='Alternative' AND status='1' ORDER BY name ASC "),0);

denne returnere jo den første kolonne og første række fra databasen. Det er nok et ID, og med mindre jeg tager fejl, så er dette ID'en på den ene række du får vist.

Løsning:
$antal = mysql_result(mysql_query("SELECT count(*) FROM stations WHERE type='Alternative' AND status='1' ORDER BY name ASC "),0);
Avatar billede kgp43 Nybegynder
23. april 2004 - 19:06 #59
Perfekt :D
Avatar billede kgp43 Nybegynder
23. april 2004 - 19:07 #60
Jeg takker endnu engang.
Avatar billede dennismp Nybegynder
23. april 2004 - 19:28 #61
Det var så lidt :)
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