Solved

Why doesnt my script work?

Posted on 2003-11-26
8
228 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
8 Comments
 
LVL 4

Expert Comment

by:Fendrin
ID: 9827360
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
ID: 9827534
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
ID: 9831258
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
MS Dynamics Made Instantly Simpler

Make Your Microsoft Dynamics Investment Count  & Drastically Decrease Training Time by Providing Intuitive Step-By-Step WalkThru Tutorials.

 

Expert Comment

by:jonmullen
ID: 9833083
>>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
 
LVL 1

Expert Comment

by:drew22
ID: 9845698
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
ID: 9877630
(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
ID: 9883642
Glad I could help, and thank-you for the A!
0
 

Author Comment

by:Hyperon
ID: 9898035
no problem, thanks for the help!
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Popularity Can Be Measured Sometimes we deal with questions of popularity, and we need a way to collect opinions from our clients.  This article shows a simple teaching example of how we might elect a favorite color by letting our clients vote for …
Developers of all skill levels should learn to use current best practices when developing websites. However many developers, new and old, fall into the trap of using deprecated features because this is what so many tutorials and books tell them to u…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to count occurrences of each item in an array.

733 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