Solved

Why doesnt my script work?

Posted on 2003-11-26
8
219 Views
Last Modified: 2013-12-12
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
0
Comment
Question by:Hyperon
8 Comments
 
LVL 4

Expert Comment

by:Fendrin
Comment Utility
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
 
LVL 4

Accepted Solution

by:
Fendrin earned 100 total points
Comment Utility
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
 

Author Comment

by:Hyperon
Comment Utility
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
 

Expert Comment

by:jonmullen
Comment Utility
>>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
Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 1

Expert Comment

by:drew22
Comment Utility
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
 

Author Comment

by:Hyperon
Comment Utility
(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
 
LVL 4

Expert Comment

by:Fendrin
Comment Utility
Glad I could help, and thank-you for the A!
0
 

Author Comment

by:Hyperon
Comment Utility
no problem, thanks for the help!
0

Featured Post

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

Introduction HTML checkboxes provide the perfect way for a web developer to receive client input when the client's options might be none, one or many.  But the PHP code for processing the checkboxes can be confusing at first.  What if a checkbox is…
I imagine that there are some, like me, who require a way of getting currency exchange rates for implementation in web project from time to time, so I thought I would share a solution that I have developed for this purpose. It turns out that Yaho…
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now