Why doesnt my script work?

this is my entire page for a programming site i am building. This is my first time using PHP and MySQL and i don't know where ive gone wrong. The aim is to enter a database, select 1 row from it that matches the 'id' in the query string, then select data from a different table where the row depends upon data from the previous table

its well commented

<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
body {
font-family:arial,helvetica,verdana,sans-serif,serif;
color:#000;
background-color:#fff;
}
td a, td a:active, td a:link, td a:visited {color:#fc0; display:block; text-align:center;  text-decoration:none; width:135px;}
td a:hover {color:#f00; text-decoration:none; background-color:#fff;}
h2 {color:#fff;}
td {vertical-align:middle;}
</style>
<?PHP
//The aim of this section is to retrieve data from a mySQL database

//1. connect to mySQL
$db = mysql_connect("localhost", "client") or die("Couldnt Connect to mysql");
//2. select the db. NOTE: I select the db via SQL as I use PHP4. mysql_select_db won't work
mysql_query("use prog",$db) or die("couldnt connect to the database");
//3. store id for tidier query
$qid=$HTTP_GET_VARS[id];
//4. get data about the article
$result=mysql_query("select title,author,body,attach from articles where id='$qid'",$db);
//5. NEED TO SPLIT DATA INTO ARRAY - mysql_get_row() ???????? array name will be : dbdata

//----------------------STUCK ABOVE-------------------------

//QUESTION : do you use '@' to denote an array as in PERL? I know that regardless
//you'd still use $ (scalar) to access each piece

//6. get data about the author - different table - id is taken from previous query
$result=mysql_query("select name,pic,picdesc,email,forumname where id='$dbdata[1]'",$db);
//7. echoes the title of the article to be the document title --- we are still in header section
echo "<title>Calgen Studios Programming Archives - " & $dbdata[0] & "</title>";
//8. tidy up!
mysql_close($db);
?>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>

<div align="center"><img align="center" src="banner.gif" /></div>
<br />
<table width="750" cellspacing="0" cellpadding="0" align="center">

  <tr>
    <td height="75" width="600" bgcolor="#ff0000">
      <h2 align="center">Calgen Studios - Programming Archives</h2>
      </td>
    <td width="150" rowspan="2"><img src="cslogo.gif" /></td>
  </tr>
  <tr>
    <td height="75" width="600" bgcolor="#ffcc00">
<?PHP //echo the article title into the yellow/orange bar
echo "<h2 align=\"center\" style=\"color:#000;\">";
echo $dbdata[0];
echo"</h2>";
?>
      </td>
  </tr>
  <tr>
    <td colspan="2">
      
            <table width="750" cellspacing="0" cellpadding="0" align="center">
            <tr><th style="background-color:#069; height:25px; color:#fff;" colspan="2">
<?PHP //Authorname
/*
echo "Article submitted by ";
echo $authordata[0];
*/?>      
</th></tr>      
            <tr>
                  <?PHP //left ?>
                  <td bgcolor="#006699" width="135">
                        <table cellspacing="0" cellpadding="0" border="0">
                        <tr><td><a href="prog.php?page=home">Home</a></td></tr>
                        <tr><td><a href="prog.php?page=asm">Assembler (ASM)</a></td></tr>
                        <tr><td><a href="prog.php?page=c">C/C++</a></td></tr>
                        <tr><td><a href="prog.php?page=c_sharp">C#</a></td></tr>
                        <tr><td><a href="prog.php?page=fortran">Fortran</a></td></tr>
                        <tr><td><a href="prog.php?page=java">Java</a></td></tr>
                        <tr><td><a href="prog.php?page=perl">Perl</a></td></tr>
                        <tr><td><a href="prog.php?page=php">PHP</a></td></tr>
                        <tr><td><a href="prog.php?page=python">Python</a></td></tr>
                        <tr><td><a href="prog.php?page=vb">Visual Basic</a></td></tr>
                        <tr><td valign="middle" height="9"><img src="menusep.gif" width="130" height="3" /></td></tr>
                        </table>
                  </td>
                  <?PHP //main ?>
                  <td width="615">
                        <table cellspacing="0" cellpadding="0" border="0">
                        <tr>
                        <td>
                        &nbsp; &nbsp; &nbsp;<img src="nopic.gif" width="90" height="120" />&nbsp; &nbsp; &nbsp;
                        </td>
                        <td><br />
                        <a href="mailto:nowhere"><img src="email.gif" width="5" height="5" />Email the author</a><br />
                        <?PHP //profile.php    params :    ?>
                        <a><img src="forumpic.gif" width="5" height="5" />PM the Author's forum account</a><br />
                        <?PHP //privmsg.php    params :    ?>
                        <a><img src="forumprofile.gif" width="5" height="5" />View the Author's forum profile</a><br />
                        </td>
                        </tr>
                        </table>
                  </td>
            </tr>
            </table>
      
      </td></tr>
      <tr><td height="10"></td></tr><tr>
            <td colspan="2">
            <table cellspacing="0" cellpadding="0" border="0">
            <tr>
            <td><img src="sidebanner.gif" height="400" width="100" /></td>
            <td width="550" style="padding:10px; text-align:center; vertical-align:top;">
            Blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah
            blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah
            blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah
            blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah
            </td>
            <td><img src="sidebanner.gif" height="400" width="100" /></td>
            </tr>
            </table>
            </td>
            </tr>
            <tr><hr size="5" /></tr>
            
            
<?PHP /*
<?PHP $db = mysql_connect("localhost", "client", "");
mysql_select_db("hitcounter",$db);
mysql_query("UPDATE hits SET hits=hits+1 WHERE page = '$PHP_SELF'",$db);
if (mysql_affected_rows($db) < 1) { //if this page hasnt been visited yet
$result = mysql_query("INSERT INTO hits VALUES ('$PHP_SELF', 1)", $db); //create row for this page
}
$hitcount = mysql_query("select hits from hits where page='$PHP_SELF'",$db);
//$allhits = mysql_query("select hits from hits");
echo "<tr><td height=\"10\">";
echo $hitcount;
echo "</td></tr>";
mysql_close($db); */?>

</table>


</body>
</html>




thanks in advance, Hyperon
HyperonAsked:
Who is Participating?
 
FendrinConnect With a Mentor Commented:
also, you seem to have a few errors in your step 6.

//6. get data about the author - different table - id is taken from previous query
$result=mysql_query("select name,pic,picdesc,email,forumname where id='$dbdata[1]'",$db);

your query needs to specify the table name...
0
 
FendrinCommented:
well, first off, to answer the question embeded in your comments, no, you do not use @ for an array. to create an array you would use someting like:
   $dbdata = array();
or just start pluging in values:
   $dbdata[] = "index one";
or perhaps best for what you are trying to do, just assign an array to the variable:
   $dbdata = mysql_fetch_row($result);
0
 
HyperonAuthor Commented:
ah, i see now

<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
body {
font-family:arial,helvetica,verdana,sans-serif,serif;
color:#000;
background-color:#fff;
}
td a, td a:active, td a:link, td a:visited {color:#fc0; display:block; text-align:center;  text-decoration:none; width:135px;}
td a:hover {color:#f00; text-decoration:none; background-color:#fff;}
h2 {color:#fff;}
td {vertical-align:middle;}
</style>
<?PHP
//The aim of this section is to retrieve data from a mySQL database

//1. connect to mySQL
$db = mysql_connect("localhost", "client") or die("Couldnt Connect to mysql");
//2. select the db. NOTE: I select the db via SQL as I use PHP4. mysql_select_db won't work
mysql_query("use prog",$db) or die("couldnt connect to the database");
//3. store id for tidier query
$qid=$HTTP_GET_VARS[id];
//4. get data about the article
$result=mysql_query("select title,author,body,attach from articles where id='$qid'",$db);
//5. Split data into array
$dbdata=mysql_fetch_row($result);
//6. get data about the author - different table - id is taken from previous query
$result=mysql_query("select name,pic,picdesc,email,forumname from authors where id='$dbdata[1]'",$db);
//7. echoes the title of the article to be the document title --- we are still in header section
echo "<title>Calgen Studios Programming Archives - '$dbdata[0]'</title>";
//8. tidy up!
mysql_close($db);
?>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>

<div align="center"><img align="center" src="banner.gif" /></div>
<br />
<table width="750" cellspacing="0" cellpadding="0" align="center">

  <tr>
    <td height="75" width="600" bgcolor="#ff0000">
     <h2 align="center">Calgen Studios - Programming Archives</h2>
     </td>
    <td width="150" rowspan="2"><img src="cslogo.gif" /></td>
  </tr>
  <tr>
    <td height="75" width="600" bgcolor="#ffcc00">
<?PHP //echo the article title into the yellow/orange bar
echo ("<h2 align="center" style="color:#000;">");
echo $dbdata[0];
echo"</h2>";
?>
     </td>
  </tr>
  <tr>
    <td colspan="2">
     
          <table width="750" cellspacing="0" cellpadding="0" align="center">
          <tr><th style="background-color:#069; height:25px; color:#fff;" colspan="2">
<?PHP //Authorname
echo "Article submitted by '$authordata[0]'";
?>    
</th></tr>    
          <tr>
               <?PHP //left ?>
               <td bgcolor="#006699" width="135">
                    <table cellspacing="0" cellpadding="0" border="0">
                    <tr><td><a href="prog.php?page=home">Home</a></td></tr>
                    <tr><td><a href="prog.php?page=asm">Assembler (ASM)</a></td></tr>
                    <tr><td><a href="prog.php?page=c">C/C++</a></td></tr>
                    <tr><td><a href="prog.php?page=c_sharp">C#</a></td></tr>
                    <tr><td><a href="prog.php?page=fortran">Fortran</a></td></tr>
                    <tr><td><a href="prog.php?page=java">Java</a></td></tr>
                    <tr><td><a href="prog.php?page=perl">Perl</a></td></tr>
                    <tr><td><a href="prog.php?page=php">PHP</a></td></tr>
                    <tr><td><a href="prog.php?page=python">Python</a></td></tr>
                    <tr><td><a href="prog.php?page=vb">Visual Basic</a></td></tr>
                    <tr><td valign="middle" height="9"><img src="menusep.gif" width="130" height="3" /></td></tr>
                    </table>
               </td>
               <?PHP //main ?>
               <td width="615">
                    <table cellspacing="0" cellpadding="0" border="0">
                    <tr>
                    <td>
                    &nbsp; &nbsp; &nbsp;<img src="nopic.gif" width="90" height="120" />&nbsp; &nbsp; &nbsp;
                    </td>
                    <td><br />
                    <a href="mailto:nowhere"><img src="email.gif" width="5" height="5" />Email the author</a><br />
                    <?PHP //profile.php    params :    ?>
                    <a><img src="forumpic.gif" width="5" height="5" />PM the Author's forum account</a><br />
                    <?PHP //privmsg.php    params :    ?>
                    <a><img src="forumprofile.gif" width="5" height="5" />View the Author's forum profile</a><br />
                    </td>
                    </tr>
                    </table>
               </td>
          </tr>
          </table>
     
     </td></tr>
     <tr><td height="10"></td></tr><tr>
          <td colspan="2">
          <table cellspacing="0" cellpadding="0" border="0">
          <tr>
          <td><img src="sidebanner.gif" height="400" width="100" /></td>
          <td width="550" style="padding:10px; text-align:center; vertical-align:top;">
          Blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah
          blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah
          blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah
          blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah
          </td>
          <td><img src="sidebanner.gif" height="400" width="100" /></td>
          </tr>
          </table>
          </td>
          </tr>
          <tr><hr size="5" /></tr>
         
         
<?PHP /*
<?PHP $db = mysql_connect("localhost", "client", "");
mysql_select_db("hitcounter",$db);
mysql_query("UPDATE hits SET hits=hits+1 WHERE page = '$PHP_SELF'",$db);
if (mysql_affected_rows($db) < 1) { //if this page hasnt been visited yet
$result = mysql_query("INSERT INTO hits VALUES ('$PHP_SELF', 1)", $db); //create row for this page
}
$hitcount = mysql_query("select hits from hits where page='$PHP_SELF'",$db);
//$allhits = mysql_query("select hits from hits");
echo "<tr><td height=\"10\">";
echo $hitcount;
echo "</td></tr>";
mysql_close($db); */?>

</table>


</body>
</html>

should this now work?
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
jonmullenCommented:
>>The aim is to enter a database, select 1 row from it that matches the 'id'

Since that is the case you need to also modify your SQL query like so:

$result=mysql_query('SELECT `title`,`author`,`body`,`attach` FROM `articles` WHERE `id`="'.$qid.'" LIMIT 1;',$db)
0
 
drew22Commented:
just a little side note here...

>> //3. store id for tidier query
>> $qid=$HTTP_GET_VARS[id];

You should use single quotes around id:

$qid=$HTTP_GET_VARS['id'];

Without the quotes, php looks first for a defined() constant named id

0
 
HyperonAuthor Commented:
(i tried to split the points but my browser wouldn't play [IE is broken, netscape don't work on XP, opera and mozilla wont split points])

sorry

Hyperon

and thank you very much
0
 
FendrinCommented:
Glad I could help, and thank-you for the A!
0
 
HyperonAuthor Commented:
no problem, thanks for the help!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.