Avatar billede human Nybegynder
09. januar 2003 - 20:49 Der er 23 kommentarer og
2 løsninger

If sætning..

Hejsa!

Nogen der kan sige mig hvad der er ivejen med denne if..

if (!isset($s)) {
    $s = "0";
}

Jeg får denne fejl:
Parse error: parse error on line 45

HMM?!
Avatar billede whatever Nybegynder
09. januar 2003 - 20:50 #1
Hvordan ser linierne ud før og efter?
Avatar billede avlund Nybegynder
09. januar 2003 - 20:51 #2
Hvad er linie 45? Det kan være du glemte et semikolon ovenover.
Avatar billede maniacdog Nybegynder
09. januar 2003 - 20:51 #3
prøv med

if (!isset($s)) {
    $s = '0';
}

ellers giv evt. noget af koden oven over linje 45.
Det kunne være der problemet ligger i stedet.
Avatar billede human Nybegynder
09. januar 2003 - 20:56 #4
<?
$pr_side = "3";

 
include("conn.php")


if (!isset($s)) {
    $s = "0";
}
?>

Sådan ser det ud. Det er de eneste linier der er over.
Avatar billede whatever Nybegynder
09. januar 2003 - 20:57 #5
Du mangler ; efter include("conn.php")

include("conn.php");
Avatar billede whatever Nybegynder
09. januar 2003 - 20:57 #6
svar
Avatar billede agg-zeus Nybegynder
09. januar 2003 - 21:00 #7
Det skal være sådan her:

if (!isset($s)) {
    $s = 0;
}

Altså uden " og ' ...
Avatar billede human Nybegynder
09. januar 2003 - 21:14 #8
agg-zeus: Nej.

whatever nu får jeg fejl på linie 159 og der står der står ikke noget.

Skal jeg prøve at skrive det hele?

Det fylder en del..
Avatar billede whatever Nybegynder
09. januar 2003 - 21:15 #9
Ja prøv det.
Avatar billede human Nybegynder
09. januar 2003 - 21:19 #10
<?
$pr_side = "3";

 
include("conn.php");


if (!isset($s)) {
    $s = "0";
}
?>


<?php
#gem
if ($_POST) {
$comm = str_replace("\n","<BR>",$comm);
$insert = "INSERT INTO gb(tid,navn,email,comm)
        VALUES(NOW(),'$navn','$email','$comm')";
mysql_query($insert) || die(mysql_error());
}
?>

<?php
print "<center><a href=\"gaestebog.php?action=skriv\">Skriv indlæg</a> <img src=gb.gif></center><br />";

if($action == "skriv") {
?>

<form action="gaestebog.php" method="post">
<table border="0" cellpadding="5" cellspacing="0">
<tr><td align="right"><font size="-1" face="Verdana">Navn:</font></td><td><input type="text" name="navn" size="15" maxsize="20" style="border-color:#336699" style="color:#336699; style="border-width: thin;"></td></tr>
<tr><td align="right"><font size="-1" face="Verdana">Email:</font></td><td><input type="text" name="email" size="15" maxsize="20" style="border-color:#336699" style="color:#336699; style="border-width: thin;"></td></tr>
<tr><td align="right" valign="top"><font size="-1" face="Verdana">Kommentar:</font></td><td><textarea cols="28" rows="10" name="comm" style="border-color:#336699" style="color:#336699; style="border-width: thin;"></textarea></td></tr>
<tr><td></td><td><input type="submit" value="Send" Class="submit" name="send"></td></tr>
</form>
</table>
<?php
}
if($action == "skriv") {
    print "<br><br><hr color=#336699>";   
}
?>

<?php
#Gæstebogen
$query = "SELECT * FROM gb ORDER BY tid DESC
        limit $s,$pr_side";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
    print "<table>";
    print "<tr>";
    print "<td>";
    print "<b>Navn:</b> $row[navn]<br /></font>";
    print "<b>Email:</b> <a href='mailto:$row[email]'>$row[email]</a><br />";
    print "<font size=-2><b>Tidspunkt:</b> $row[tid]</font>";
    print "</td>";
    print "</tr>";
    print "<td><br />";
    print "$row[comm]";
    print "</td>";
    print "</td>";
    print "</table>";
    print "<hr color=#336699>";   
}

?>

<?
if ($s >= $pr_side) {
$previous_s = $s-$pr_side;
print "<a href='?s=$previous_s'>Forrige</a> ";
}

$page = 1;
for($start=0; $total > $start; $start=$start+$pr_side){
if ($start != $s) {
print "<a href='?s=$start'>$page</a> ";
    } else {
print "$page ";
}
$page++;

if ($total > $s+$pr_side) {
$next_s = $s+$pr_side;
echo "<a href='?s=$next_s'>Næste</a>";
}
?>


<?
mysql_close($conn);
?>

Både over og under dette stykke kode er der nogle includes, men de er rigtige nu.

Jeg er først tilbage om 1 time eller sådan.
Der venter 200 poing mere til den der kan få de side skift pis der til at virke :o)

// Human
Avatar billede avlund Nybegynder
09. januar 2003 - 21:26 #11
Snildt, men kan man ikke lige høre ca. hvor linie 159 ligger i koden, så man har en pointer?
Avatar billede human Nybegynder
09. januar 2003 - 22:41 #12
uden for koden.

Jeg skrev den ligger på en linje hvor der ikke står noget.
under </html>
Avatar billede avlund Nybegynder
09. januar 2003 - 22:49 #13
OK. Det betyder, at du har glemt at lukke en løkke.

Nærmere bestemt denne her:

for($start=0; $total > $start; $start=$start+$pr_side){
Avatar billede avlund Nybegynder
09. januar 2003 - 22:56 #14
Jeg må hellere lægge et svar, i tilfælde af at jeg skulle have ret.
Avatar billede human Nybegynder
09. januar 2003 - 23:05 #15
Du havde såmen ret. Men det virker stadig ikke.

Den sætter en limit til de 3 som jeg beder den om, men den udskriver ikke nogen forrige eller næste link. Hvad er det jeg gør forkert?

Her kommer koden lige igen med lidt rettelser.

Hvis du gider tage et kig på det altså :o)

<?
$pr_side = "3";

 
include("conn.php");


if (!isset($s)) {
    $s = "0";
}
?>


<?php
#gem
if ($_POST) {
$comm = str_replace("\n","<BR>",$comm);
$insert = "INSERT INTO gb(tid,navn,email,comm)
        VALUES(NOW(),'$navn','$email','$comm')";
mysql_query($insert) || die(mysql_error());
}
?>

<?php
print "<center><a href=\"gaestebog.php?action=skriv\">Skriv indlæg</a> <img src=gb.gif></center><br />";

if($action == "skriv") {
?>

<form action="gaestebog.php" method="post">
<table border="0" cellpadding="5" cellspacing="0">
<tr><td align="right"><font size="-1" face="Verdana">Navn:</font></td><td><input type="text" name="navn" size="15" maxsize="20" style="border-color:#336699" style="color:#336699; style="border-width: thin;"></td></tr>
<tr><td align="right"><font size="-1" face="Verdana">Email:</font></td><td><input type="text" name="email" size="15" maxsize="20" style="border-color:#336699" style="color:#336699; style="border-width: thin;"></td></tr>
<tr><td align="right" valign="top"><font size="-1" face="Verdana">Kommentar:</font></td><td><textarea cols="28" rows="10" name="comm" style="border-color:#336699" style="color:#336699; style="border-width: thin;"></textarea></td></tr>
<tr><td></td><td><input type="submit" value="Send" Class="submit" name="send"></td></tr>
</form>
</table>
<?php
}
if($action == "skriv") {
    print "<br><br><hr color=#336699>";   
}
?>

<?php
#Gæstebogen
$query = "SELECT * FROM gb ORDER BY tid DESC
        limit $s,$pr_side";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
    print "<table>";
    print "<tr>";
    print "<td>";
    print "<b>Navn:</b> $row[navn]<br /></font>";
    print "<b>Email:</b> <a href='mailto:$row[email]'>$row[email]</a><br />";
    print "<font size=-2><b>Tidspunkt:</b> $row[tid]</font>";
    print "</td>";
    print "</tr>";
    print "<td><br />";
    print "$row[comm]";
    print "</td>";
    print "</td>";
    print "</table>";
    print "<hr color=#336699>";   
}

?>

<?
if ($s >= $pr_side) {
$previous_s = $s-$pr_side;
print "<a href='?s=$previous_s'>Forrige</a> ";
}

$page = 1;
for($start=0; $total > $start; $start=$start+$pr_side){
if ($start != $s) {
print "<a href='?s=$start'>$page</a> ";
    } else {
print "$page ";
}
$page++;
}

if ($total > $s+$pr_side) {
$next_s = $s+$pr_side;
echo "<a href='?s=$next_s'>Næste</a>";
}
?>


<?
mysql_close($conn);
?>
Avatar billede avlund Nybegynder
09. januar 2003 - 23:07 #16
Har du evt. en URL, så jeg kan se siden i funktion (eller mangel på samme)?
Avatar billede human Nybegynder
09. januar 2003 - 23:12 #17
hvad mener du med mangel på samme?

URL her: http://www.ezillians.dk/beta/gaestebog.php
Avatar billede avlund Nybegynder
09. januar 2003 - 23:18 #18
Mangel på funktion (idet den ikke virker efter formålet endnu)

OK, nu er jeg med. Prøv at skrive:

echo "test";

i én af if-løkkerne der burde vises men ikke gør det.
Avatar billede human Nybegynder
09. januar 2003 - 23:23 #19
Kan du ikke prøve at give mig et hint til hvad det er jeg mangler, jeg er totalt lost :(
Avatar billede avlund Nybegynder
09. januar 2003 - 23:25 #20
Grunden til jeg skriver det, er for at debugge; ved at plante echo'er rundt omkring i dit script, finder vi ud af hvad der afvikles og hvad der ikke gør.
Avatar billede _darkstar_ Nybegynder
09. januar 2003 - 23:30 #21
Her er en opskrift som du kan køre selv:

1. Tag en kopi af din kode.
2. Fjern så meget kode som muligt og lad løkkerne, samt andre ting, der er nødvendige for at det kører stå.
3. Prøv igen. Hvis det stadigvæk ikke virker, så fortsæt.
4. Fjern løkkerne en ad gangen. Hvis det pludselig begynder at virke, er det fordi at du lige har slettet den kode hvor fejlen var.

Opskriften virker altid. Værsgo'.
Avatar billede _darkstar_ Nybegynder
09. januar 2003 - 23:31 #22
Det var egentlig en slags svar.
Avatar billede human Nybegynder
09. januar 2003 - 23:54 #23
Ahhh! :o)

Tror jeg har fattet noget nu.
Lyder det ikke meget rigtigt hvis jeg siger det er denne sætning der mangler:
$g_total = mysql_query("select count(nr) as total from gb") or die(mysql_error());
$total = mysql_result($g_total,0);

Men ved ("select count(nr) hvad skal der stå istedet for nr?
Avatar billede human Nybegynder
10. januar 2003 - 00:20 #24
Så fik i poing.

Jeg har oprettet et spg med 200 poing til jer to (avlund og whatever), som hedder poing til de 2.

Men i må meget gerne lige svare på det sidste jeg spurgte om. :o)
Avatar billede avlund Nybegynder
10. januar 2003 - 00:26 #25
Der skal stå COUNT(*) i stedet - da det jo er alle records du tæller på.

Tak for points, jeg kigger på det andet spm.
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