24. februar 2002 - 09:34Der er
10 kommentarer og 1 løsning
JOIN
Jeg har følgende lille script som viser antal gange en url er blevet aktiveret. Jeg vil gerne udvidde det med en join til en tabel hvor jeg har beskrivelsen af url'en.
$conn = mysql_connect($db_Hostname, $db_UserName, $db_Password); mysql_select_db($db_Database, $conn); $foresp = mysql_query("SELECT url, COUNT(*) AS no FROM redirects GROUP BY url ORDER BY no DESC"); ?><table> <tr> <td>Hits </td> <td>URL </td> </tr> <? while($data = mysql_fetch_row($foresp)){ echo "<tr><td>$data[1]</td><td><a href=\"redir.php?from=linkstats&redirurl=$data[0]\" target=\"_blank\">$data[0]</a></tr>"; } ?> </table>
Lige så snart jeg prøver at tilføje en JOIN til min anden tabel links som har felterne url og description hvor jeg vil knytte tabllerne sammen med feltet url så fejler mit script i linien med mysql_fetch_rows med følgende:
Warning: Supplied argument is not a valid MySQL result resource in D:\web\testsc\linkstats2.php on line 15
Hvordan gør jeg dette. Jeg har kigget i manualen på mysql.com men det har ikke rigtigt givet mig noget svar.
Prøv med noget i retning af: (det burde virke, men er ikke testet)
SELECT redirects.*, links.*, COUNT(redirects.*) AS no FROM redirects INNER JOIN links ON redirects.url=links.url GROUP BY redirects.url, links.text ORDER BY redirects.no DESC
Det hjælper søreme at skrive om tingene så falder det hele på plads efterhånden, jeg fik følgende til at virke:
select *, COUNT(*) AS no FROM redirects LEFT JOIN links ON redirects.url=links.url WHERE redirects.url=links.url GROUP BY redirects.url ORDER BY no DESC
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.