Re: php newbie having trouble going to detail page

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David Doonan wrote:
I'm having trouble getting the correct results on a display page.

The first query is pulling the name of active authors from the d/b and sending a request to only return essay titles by the requested author. The list page however is displaying essay titles by all authors.

No doubt something is wrong with the where clause in the List page query. I've tried countless variations on the syntax for Author.ID = Author.ID without success.

Sorry for so basic a question.

---------------------
author page query =

$query_GetAuthors = "SELECT Distinct Author.Autholr_Name, Author.ID, Writings.Writings_Author FROM Author, Writings
WHERE Author.Autholr_Name = Writings.Writings_Author and
       Author.ID = Author.ID";

$GetAuthors = mysql_query($query_GetAuthors, $connDerbyTrail) or die (mysql_error());
$row_GetAuthors = mysql_fetch_assoc($GetAuthors);
$totalRows_GetAuthors = mysql_num_rows($GetAuthors);

--------------------
author page link =
<a href="author.php?ID=<?php echo $row_GetAuthors['ID']; ?>"><?php echo $row_GetAuthors['Autholr_Name']; ?></a>



---------------------
List page query =

$query_GetAuthorList = "SELECT Writings.Writings_Author, Writings.Writings_Title, DATE_FORMAT(Writings_Date, '%M %D, %Y') as Writings_Date, Writings.Writings_Text, Writings.ID, Author.Autholr_Name, Author.ID FROM Writings, Author
WHERE Writings.ID = Writings.ID AND
                Author.Autholr_Name = Writings.Writings_Author AND
                Author.ID = Author.ID
ORDER BY Writings.Writings_Date desc";

$GetAuthorList = mysql_query($query_GetAuthorList, $connDerbyTrail) or die(mysql_error());
$row_GetAuthorList = mysql_fetch_assoc($GetAuthorList);
$totalRows_GetAuthorList = mysql_num_rows($GetAuthorList);

david

David--

First of all, yours is purely a SQL problem, so would get better response from the PHP-DB or MySQL list.

But a quick glance at your SQL shows that your second query returns all writings by all authors because you don't include anything to narrow it down to one author:

WHERE
Writings.ID = Writings.ID
AND
Author.Autholr_Name = Writings.Writings_Author
AND
Author.ID = Author.ID

First of all:
"Writings.ID = Writings.ID "  and  "Author.ID = Author.ID"
are nonsense. Every query will match those crieria. In other words, you'd probably best take an hour or so to RTF 'Intro to SQL M.'

Here's another hint: You have no PHP variable in your SQL query. That means you execute the same exact query every time you run it. So you will get the same exact results every time.

So your solution is this: Include a PHP variable in your SQL query to specify which author you want to select.

You probably want something like this:
WHERE
Author.Author_Name = Writings.Author_Name
AND
Author.ID = '$MySelectedAuthorID'

(but remember to define $MySelectedAuthorId before running it :)

Good luck and post again with your progress.

John

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux