/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Vise 10 indlæg ad gangen i en gæstebog
Fra : Lasse Jensen


Dato : 14-02-05 20:53

Hej folkens.

Jeg er ved at udvide min gæstebog lidt, men det jeg forsøger kan
jeg desværre ikke helt få til at virke!

Men jeg får jeg denne fejl vist:
Warning: mysql_fetch_array(): supplied argument is not a valid
MySQL result resource in
/var/www/hotels/.dk/webweaver/html/guestbook.php on line 142

Linie 142 ser sådan her ud: while($data =
mysql_fetch_array($result)){

I kan se hele koden til gæstebogen her:

<?

$e = isset($_GET['e'])?$_GET['e']:"";
$a = 10 * $e;
$b = $a + 10 - $e * 10;
$c = $e - 1;
$d = $e + 1;

$db = mysql_connect("*********", "**********",
"************");
mysql_select_db("**********", $db);
if($_POST['skriv']) {
$besked = nl2br(htmlentities($_POST['besked']));
$dato = strftime("%d/%m-%Y&nbsp;%T", time());
$ip = $_SERVER["REMOTE_ADDR"];
mysql_query("INSERT INTO guestbook (navn, email,
dato, ip, besked) VALUES
('$_POST[navn]','$_POST[email]','$dato','$ip','$besked')");

}
?>

<?
$foresp = mysql_query("SELECT * FROM guestbook");
$total = mysql_num_rows($foresp);

$pages = $total / 10;

if($e + 1 < $pages OR $d=="$pages"){
$next = "href=\"guestbook.php&e=$d\">Næste 10 >>";

}

if($e - 1 < $pages AND $e){
$prev = "href=\"guestbook.php&e=$c\"><< Forrige 10";

} else {
$prev = "<< Forrige 10";

}

if($d > $pages){
$next = "Næste 10 >>";

}

echo "\n$prev ][ $next\n";

$foresp = "SELECT * FROM guestbook order by id DESC
LIMIT $a,$b";
$result = mysql_query($foresp);

while($data = mysql_fetch_array($result)){
echo "<table class=\"guestbook_boks\"
cellpadding=\"3px\">";
echo "<tr><td class=\"guestbook\" width=\"50%\"
align=\"left\">";
echo "Fra: <a class=\"guestbook\"
href=\"mailto:".$data['email']."\">".$data['navn']."</a></td>";
echo "<td class=\"guestbook\" width=\"50%\"
align=\"right\"><b>".$data['dato']."</b></td></tr>";
echo "<tr><td colspan=\"2\"><img
src=\"http://www.webweaver.dk/billeder/guestbook_linie.gif\"
width=\"100%\" height=\"1px\" alt=\"\"></td></tr>";
echo "<tr><td colspan=\"2\" class=\"guestbook\"
align=\"left\" valign=\"top\">".$data['besked']."</td></tr>";
echo "</table>";
echo "<p>";
}
?>


Håber I kan hjælpe! Mange tak!

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Bjarne Bue (15-02-2005)
Kommentar
Fra : Bjarne Bue


Dato : 15-02-05 00:50

On Mon, 14 Feb 2005 19:52:42 +0000, Lasse Jensen wrote:

> Hej folkens.
>
> Jeg er ved at udvide min gæstebog lidt, men det jeg forsøger kan
> jeg desværre ikke helt få til at virke!
>
> Men jeg får jeg denne fejl vist:
> Warning: mysql_fetch_array(): supplied argument is not a valid
> MySQL result resource in
> /var/www/hotels/.dk/webweaver/html/guestbook.php on line 142

Det betyder, at den variabel du fodrer mysql_fetch_array med, ikke
indeholder et mysql-resultatsæt. Det skyldes sandsynligvis, at din query
ikke er gyldig.

> Linie 142 ser sådan her ud: while($data =
> mysql_fetch_array($result)){

Så du skal ind og kigge på den query du sender umiddelbart før:
$foresp = "SELECT * FROM guestbook order by id DESC
LIMIT $a,$b";
$result = mysql_query($foresp);

Prøv at udskrive din query til skærmen, og se om den ser ud, som du
forventer. Det er også altid en god ide at udskrive debug-info på sine
queries mens man tester, fx $result = mysql_query($foresp) or
die(mysql_error());

> I kan se hele koden til gæstebogen her:

[KLIP]

- Bjarne


Lasse Jensen (15-02-2005)
Kommentar
Fra : Lasse Jensen


Dato : 15-02-05 15:18

Jeg har nu løst det. Det var bare en tastefejl i koden. Min egen fejl. Men
det virker stadig ikke, fordi nu er der en anden fejl. I kan se her:
http://www.webweaver.dk/guestbook.php

Hvis I prøver at klikke de "Næste 10" linket, kommer I bare frem til en
404, i stedet for at få vist de næste 10 beskeder i gæstebogen. Jeg ved
ikke rigtig hvad der er problemet.

I får lige den nye kode igen:

<?
            
            $e = isset($_GET['e'])?$_GET['e']:"";
            $a = 10 * $e;
            $b = $a + 10 - $e * 10;
            $c = $e - 1;
            $d = $e + 1;

            $db = mysql_connect("********", "**********", "**********");
            mysql_select_db("************", $db);
            if($_POST['skriv']) {
            $besked = nl2br(htmlentities($_POST['besked']));
            $dato = strftime("%d/%m-%Y&nbsp;%T", time());
            $ip = $_SERVER["REMOTE_ADDR"];
            mysql_query("INSERT INTO guestbook (navn, email, dato, ip, besked)
VALUES ('$_POST[navn]','$_POST[email]','$dato','$ip','$besked')");
      
            }
            ?>
            
            <?
            $foresp = mysql_query("SELECT * FROM guestbook");
            $total = mysql_num_rows($foresp);
            
            $pages = $total / 10;
            
            if($e + 1 < $pages OR $d=="$pages"){
            $next = "<a class=\"guestbook\" href=\"guestbook.php&e=$d\">Næste 10
>></a>";
            
            }
            
            if($e - 1 < $pages AND $e){
            $prev = "<a class=\"guestbook\" href=\"guestbook.php&e=$c\"><< Forrige
10</a>";
            
            } else {
            $prev = "<< Forrige 10";
            
            }
            
            if($d > $pages){
            $next = "Næste 10 >>";
            
            }
                     
            $foresp = "SELECT * FROM guestbook order by nr DESC LIMIT $a,$b";
            $result = mysql_query($foresp) or die(mysql_error());

            while($data = mysql_fetch_array($result)){
            echo "<table class=\"guestbook_boks\" cellpadding=\"3px\">";
            echo "<tr><td class=\"guestbook\" width=\"50%\" align=\"left\">";
            echo "Fra: <a class=\"guestbook\"
href=\"mailto:".$data['email']."\">".$data['navn']."</a></td>";
            echo "<td class=\"guestbook\" width=\"50%\"
align=\"right\"><b>".$data['dato']."</b></td></tr>";
            echo "<tr><td colspan=\"2\"><img
src=\"http://www.webweaver.dk/billeder/guestbook_linie.gif\" width=\"100%\"
height=\"1px\" alt=\"\"></td></tr>";
            echo "<tr><td colspan=\"2\" class=\"guestbook\" align=\"left\"
valign=\"top\">".$data['besked']."</td></tr>";
            echo "</table>";
            echo "<p>";
            }
            ?>
            
            <div align="center">
               <?
               echo "<p class=\"guestbook\">\n$prev ][ $next\n</p>";
               ?>
            </div>

Håber I kan hjælpe! På forhånd tak

Mvh. Lasse Jensen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bjarne Bue (15-02-2005)
Kommentar
Fra : Bjarne Bue


Dato : 15-02-05 16:28

On Tue, 15 Feb 2005 14:18:09 +0000, Lasse Jensen wrote:

> Jeg har nu løst det. Det var bare en tastefejl i koden. Min egen fejl. Men
> det virker stadig ikke, fordi nu er der en anden fejl. I kan se her:
> http://www.webweaver.dk/guestbook.php
>
> Hvis I prøver at klikke de "Næste 10" linket, kommer I bare frem til en
> 404, i stedet for at få vist de næste 10 beskeder i gæstebogen. Jeg ved
> ikke rigtig hvad der er problemet.
>
> I får lige den nye kode igen:

[KLIP]

$next = "<a class=\"guestbook\" href=\"guestbook.php&e=$d\">Næste 10
>>></a>";
$prev = "<a class=\"guestbook\" href=\"guestbook.php&e=$c\"><< Forrige
> 10</a>";

Det er dine links der går galt. Hvis du erstatter & med ? i ovenstående,
virker det. Altså: href="guestbook.php?e=$d".

&-tegnet bruges til at adskille parametre, hvis man har flere.

> Håber I kan hjælpe! På forhånd tak

Håber det hjalp

- Bjarne


Lasse Jensen (15-02-2005)
Kommentar
Fra : Lasse Jensen


Dato : 15-02-05 19:04

Bjarne Bue wrote in dk.edb.internet.webdesign.serverside.php:
>
> [KLIP]
>
> $next = "<a class=\"guestbook\" href=\"guestbook.php&e=$d\">Næste 10
> >>></a>";
> $prev = "<a class=\"guestbook\" href=\"guestbook.php&e=$c\"><< Forrige
> > 10</a>";
>
> Det er dine links der går galt. Hvis du erstatter & med ? i ovenstående,
> virker det. Altså: href="guestbook.php?e=$d".
>
> &-tegnet bruges til at adskille parametre, hvis man har flere.

Tak for hjælpen Bjarne. Det var løsningen.

Mvh. Lasse Jensen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste