/ 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
Php nyheds problem
Fra : nyheder


Dato : 06-10-03 20:04

Hejsa jeg er lige i gang med at lave et "nyhedsscript" og faldt så over
www.hotscripts.com 's og jeg prøvede en af dem men det opstod en fejl.

Den siger:
"Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result
resource in /customers/dronerax.dk/dronerax.dk/httpd.www/phpnews/action.php
on line 29"


hvad er problemet?
Her det jeg har skrevet i action.php

<?PHP
/* user config variables */
$max_items = 5; /* max number of news items to show */

/* make database connection */
$db = mysql_connect ('localhost','dronerax_dk',mitpassword');
mysql_select_db ('test',$db);

function displayNews($all = 0) {
/* bring in two variables
* $db is our database connection
* $max_items is the maximum number
* of news items we want to display */
global $db, $max_items;

/* query for news items */
if ($all == 0) {
/* this query is for up to $max_items */
$query = "SELECT id,title,newstext," .
"DATE_FORMAT(postdate, '%Y-%m-%d') as date " .
"FROM news ORDER BY postdate DESC LIMIT $max_items";
} else {
/* this query will get all news */
$query = "SELECT id,title,newstext," .
"DATE_FORMAT(postdate, '%Y-%m-%d') as date " .
"FROM news ORDER BY postdate DESC";
}
$result = mysql_query ($query);
while ($row = mysql_fetch_assoc ($result)) {
/* display news in a simple table */
echo "<TABLE border=\"1\" width=\"300\">\n";

/* place table row data in
* easier to use variables.
* Here we also make sure no
* HTML tags, other than the
* ones we want are displayed */
$date = $row['date'];
$title = htmlentities ($row['title']);
$news = nl2br (strip_tags ($row['newstext'], '<a><b><i><u>'));

/* display the data */
echo "<TR><TD><b>$title</b> posted on $date</TD></TR>\n";
echo "<TR><TD>$news</TD></TR>\n";

/* get number of comments */
$comment_query = "SELECT count(*) FROM news_comments " .
"WHERE news_id={$row['id']}";
$comment_result = mysql_query ($comment_query);
$comment_row = mysql_fetch_row($comment_result);

/* display number of comments with link */
echo "<TR><TD><a href=\"{$_SERVER['PHP_SELF']}" .
"?action=show&id={$row['id']}\">Comments</a>" .
"($comment_row[0]}</TD></TR>\n";

/* finish up table*/
echo "</TABLE>\n";
echo "<BR>\n";
}

/* if we aren't displaying all news,
* then give a link to do so */
if ($all == 0) {
echo "<a href=\"{$_SERVER['PHP_SELF']}" .
"?action=all\">View all news</a>\n";
}
}

function displayOneItem($id) {
global $db;

/* query for item */
$query = "SELECT * FROM news WHERE id=$id";
$result = mysql_query ($query);

/* if we get no results back, error out */
if (mysql_num_rows ($result) == 0) {
echo "Bad news id\n";
return;
}
$row = mysql_fetch_assoc($result);
echo "<TABLE border=\"1\" width=\"300\">\n";

/* easier to read variables and
* striping out tags */
$title = htmlentities ($row['title']);
$news = nl2br (strip_tags ($row['newstext'], '<a><b><i><u>'));

/* display the items */
echo "<TR><TD><b>$title</b></TD></TR>\n";
echo "<TR><TD>$news</TD></TR>\n";

echo "</TABLE>\n";
echo "<BR>\n";

/* now show the comments */
displayComments($id);
}

function displayComments($id) {
/* bring db connection variable into scope */
global $db;

/* query for comments */
$query = "SELECT * FROM news_comments WHERE news_id=$id";
$result = mysql_query ($query);
echo "Comments:<BR><HR width=\"300\">\n";

/* display the all the comments */
while ($row = mysql_fetch_assoc ($result)) {
echo "<TABLE border=\"1\" width=\"300\">\n";

$name = htmlentities ($row['name']);
echo "<TR><TD><b>by: $name</b></TD></TR>\n";

$comment = strip_tags ($row['comment'], '<a><b><i><u>');
$comment = nl2br ($comment);
echo "<TR><TD>$comment</TD></TR>\n";

echo "</TABLE>\n";
echo "<BR>\n";
}

/* add a form where users can enter new comments */
echo "<HR width=\"300\">";
echo "<FORM action=\"{$_SERVER['PHP_SELF']}" .
"?action=addcomment&id=$id\" method=POST>\n";
echo "Name: <input type=\"text\" " .
"width=\"30\" name=\"name\"><BR>\n";
echo "<TEXTAREA cols=\"40\" rows=\"5\" " .
"name=\"comment\"></TEXTAREA><BR>\n";
echo "<input type=\"submit\" name=\"submit\" " .
"value=\"Add Comment\"\n";
echo "</FORM>\n";

}

function addComment($id) {
global $db;

/* insert the comment */
$query = "INSERT INTO news_comments " .
"VALUES('',$id,'{$_POST['name']}'," .
"'{$_POST['comment']}')";
mysql_query($query);

echo "Comment entered. Thanks!<BR>\n";
echo "<a href=\"{$_SERVER['PHP_SELF']}" .
"?action=show&id=$id\">Back</a>\n";
}

/* this is where the script decides what do do */

echo "<CENTER>\n";
switch($_GET['action']) {

case 'show':
displayOneItem($_GET['id']);
break;
case 'all':
displayNews(1);
break;
case 'addcomment':
addComment($_GET['id']);
break;
default:
displayNews();
}
echo "</CENTER>\n";
?>





PÅ forhånd tak. :)



 
 
Peter Brodersen (06-10-2003)
Kommentar
Fra : Peter Brodersen


Dato : 06-10-03 20:07

On Mon, 6 Oct 2003 21:03:34 +0200, "nyheder" <dronerax@hotmail.com>
wrote:

>"Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result
>resource in /customers/dronerax.dk/dronerax.dk/httpd.www/phpnews/action.php
>on line 29"
[..]
> $result = mysql_query ($query);

Det er linje 29. Din query går ikke godt. Du kan evt. prøve med:

$result = mysql_query ($query);
if (!$result) die("Query fejlede: $query<br><br>".mysql_error());

(Jeg ville gerne henvise til http://www.php-faq.dk/index.php?faq=6 -
men den er vist nede pt...)

--
- Peter Brodersen

Ugens sprogtip: hierarki (og ikke hieraki)

nyheder (07-10-2003)
Kommentar
Fra : nyheder


Dato : 07-10-03 18:09

Så skal jeg indsætte det i stedet for hvad? (undskyld men jeg er ikke så
hardcore til det endnu)
"Peter Brodersen" <usenet@ter.dk> skrev i en meddelelse
news:blsefu$gne$3@dknews.tiscali.dk...
> On Mon, 6 Oct 2003 21:03:34 +0200, "nyheder" <dronerax@hotmail.com>
> wrote:
>
> >"Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL
result
> >resource in
/customers/dronerax.dk/dronerax.dk/httpd.www/phpnews/action.php
> >on line 29"
> [..]
> > $result = mysql_query ($query);
>
> Det er linje 29. Din query går ikke godt. Du kan evt. prøve med:
>
> $result = mysql_query ($query);
> if (!$result) die("Query fejlede: $query<br><br>".mysql_error());
>
> (Jeg ville gerne henvise til http://www.php-faq.dk/index.php?faq=6 -
> men den er vist nede pt...)
>
> --
> - Peter Brodersen
>
> Ugens sprogtip: hierarki (og ikke hieraki)



Peter Brodersen (07-10-2003)
Kommentar
Fra : Peter Brodersen


Dato : 07-10-03 18:28

On Tue, 7 Oct 2003 19:08:47 +0200, "nyheder" <dronerax@hotmail.com>
wrote:

>Så skal jeg indsætte det i stedet for hvad? (undskyld men jeg er ikke så
>hardcore til det endnu)

Grundproblemet er ret sikkert, at du har en fejl i din SQL-kode, og
blot forventer, at det virker.

Følgende retter ikke din SQL-fejl, men fortæller dig nærmere om hvad
fejlen er:

Efter linje 29: $result = mysql_query ($query);

Tilføj da følgende linje:
if (!$result) die("Query fejlede: $query<br><br>".mysql_error());

--
- Peter Brodersen

Ugens sprogtip: hierarki (og ikke hieraki)

nyheder (08-10-2003)
Kommentar
Fra : nyheder


Dato : 08-10-03 06:37

Jeg har fundet ud af det. Og scriptet virker.
Men hver gang jeg skal lave en nyhed skal jeg til ind på my MySQl database
for at lave det. Kan det ikke laves lidt smartere?


Jakob
"nyheder" <dronerax@hotmail.com> skrev i en meddelelse
news:3f82f31c$0$13221$edfadb0f@dread15.news.tele.dk...
> Så skal jeg indsætte det i stedet for hvad? (undskyld men jeg er ikke så
> hardcore til det endnu)
> "Peter Brodersen" <usenet@ter.dk> skrev i en meddelelse
> news:blsefu$gne$3@dknews.tiscali.dk...
> > On Mon, 6 Oct 2003 21:03:34 +0200, "nyheder" <dronerax@hotmail.com>
> > wrote:
> >
> > >"Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL
> result
> > >resource in
> /customers/dronerax.dk/dronerax.dk/httpd.www/phpnews/action.php
> > >on line 29"
> > [..]
> > > $result = mysql_query ($query);
> >
> > Det er linje 29. Din query går ikke godt. Du kan evt. prøve med:
> >
> > $result = mysql_query ($query);
> > if (!$result) die("Query fejlede: $query<br><br>".mysql_error());
> >
> > (Jeg ville gerne henvise til http://www.php-faq.dk/index.php?faq=6 -
> > men den er vist nede pt...)
> >
> > --
> > - Peter Brodersen
> >
> > Ugens sprogtip: hierarki (og ikke hieraki)
>
>



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

Månedens bedste
Årets bedste
Sidste års bedste