RE: [PHP] Grr SQL syntax error silghtly OT
| From: | joakim dot andersson at cybercom dot se | Date: | Tue, 09 Jul 2002 09:14:42 +0000 |
| Subject: | RE: [PHP] Grr SQL syntax error silghtly OT | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-106271@lists.php.net to get a copy of this message | ||
I would try something like this...
SELECT COUNT(tececo_stats.id) as num_hits, meta_data.title
FROM tececo_stats, meta_data
WHERE meta_data.id = tececo_stats.page_id
GROUP BY tececo_stats.page_id
ORDER BY num_hits DESC
/Joakim
> -----Original Message-----
> From: JJ Harrison [mailto:webmaster@tececo.com]
> Sent: Tuesday, July 09, 2002 11:07 AM
> To: php-general@lists.php.net
> Subject: Re: [PHP] Grr SQL syntax error silghtly OT
>
>
> table structure for tececo stats(Stores information about the
> visitors to my
> site.visited is either 0 or 1 depending on whether or not the
> stats cookie
> has been set):
>
> id int(11) unsigned NOT NULL auto_increment,
> page_id int(11) NOT NULL default '0',
> visited int(11) NOT NULL default '0',
> time int(11) NOT NULL default '0',
> remote_dns varchar(100) NOT NULL default '',
> remote_ip varchar(15) NOT NULL default '',
> referer varchar(200) NOT NULL default '',
> browser varchar(100) NOT NULL default '',
> system varchar(100) NOT NULL default '',
> PRIMARY KEY (id),
> KEY page_id (page_id,time)
>
> table structure for meta_data(contains information about the
> pages in my
> website):
>
> id int(11) unsigned NOT NULL auto_increment,
> pid int(11) unsigned NOT NULL default '0',
> title varchar(200) NOT NULL default '',
> page_name varchar(75) NOT NULL default '',
> description text NOT NULL,
> keywords text NOT NULL,
> PRIMARY KEY (id),
> KEY pid (pid)
>
> main file(required.php automaticly does a DB connect and is
> used elsewhere
> so I know is not the problem).
> <?
> include "includes/required.php";
> do_html_header('Page Detail Statistics');
>
> $query = "select
> count(tececo_stats.*) as tececo_stats.views, meta_data.title
> from
> meta_data, tececo_stats
> where
> meta_data.id = tececo_stats.id
> order by meta_data.id
> group by meta_data.id";
> $result = mysql_query($query) or die("Query failed: $query<br>" .
> mysql_error());
> $num_results = mysql_num_rows($result);
> ?>
> <table width="500">
> <tr style="black_row"><td width="200">Page
> Name</td><td>Tota;Number of
> Sessions</td></tr>
> <?
> for ($i=0; $i < $num_results; $i++)
> {
> $row = mysql_fetch_array($result);
> echo
>
> '<tr><td>'.$row['meta_data.title'].'</td><td>'.$row['tececo_st
> ats.views'].'<
> /td></tr>';
> }
> ?>
> </table>
> <?
> do_html_footer();
> ?>
>
> error message:
> Query failed: select count(tececo_stats.*) as tececo_stats.views,
> meta_data.title from meta_data and tececo_stats where meta_data.id =
> tececo_stats.id order by meta_data.id
> You have an error in your SQL syntax near '*) as tececo_stats.views,
> meta_data.title from meta_data and tececo_stats whe' at line 2
>
> What I want to do: This is essentially a script for a stats
> program that I
> am writting that returns the number of hits for each page. Instead of
> looping a query I decieded to try and join the two tables to
> make it more
> efficiant. I am trying to get it to work with hits now than
> make it sessions
> later.
>
> I hope this is enough info and thank you for your help.
>
>
> --
> JJ Harrison
> webmaster@tececo.com
> www.tececo.com
>
>
> "Joakim Andersson" <joakim.andersson@cybercom.se> wrote in message
>
> news:791CA4EB1F1AD2119BB900062905C91F02CE800C@adam.cybercom.se...
> > I assume that 2count should really be count and 2 is just
> the line-number
> > you added in this post...
> >
> > tececo_stats.views is (probably) the name of a column and
> cannot be used
> as
> > an alias. Change it to something else.
> > change count(*) to count(tececo_stats.*) (I think that's
> what you want)
> > And you probably need a group by-statement at the end: GROUP BY
> > whatever_you_need_to_group_by
> >
> > It's really difficult to answer your questions without the
> table designs,
> > the error message and what you expect this query to do.
> And, it's not
> > slightly OT. It's totally OT. :-)
> >
> > Regards
> > Joakim Andersson
> >
> >
> > > -----Original Message-----
> > > From: JJ Harrison [mailto:webmaster@tececo.com]
> > > Sent: Tuesday, July 09, 2002 10:10 AM
> > > To: php-general@lists.php.net
> > > Subject: [PHP] Grr SQL syntax error silghtly OT
> > >
> > >
> > > Sorry :}
> > >
> > > I get a SQL syntax error at line two of the query:
> > >
> > > $query = "select
> > > 2count(*) as tececo_stats.views, meta_data.title
> > > from
> > > meta_data, tececo_stats
> > > where
> > > meta_data.id = tececo_stats.id";
> > >
> > > I have stared at this 'till i felt dizzy. can someone tell me
> > > what I am
> > > doing wrong so that I can learn from it?
> > >
> > > Thanks in advance
> > >
> > >
> > > --
> > > JJ Harrison
> > > webmaster@tececo.com
> > > www.tececo.com
> > >
> > >
> > >
> > > --
> > > PHP General Mailing List (http://www.php.net/)
> > > To unsubscribe, visit: http://www.php.net/unsub.php
> > >
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>