Solved

Why doesnt my script work?

Posted on 2003-11-26
8
234 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
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!

 

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

Industry Leaders: 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

Generating table dynamically is the most common issue faced by php developers.... So it seems there is a need of an article that explains the basic concept of generating tables dynamically. It just requires a basic knowledge of html and little maths…
Introduction This article is intended for those who are new to PHP error handling (https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html).  It addresses one of the most common problems that plague beginning PHP develop…
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 create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

734 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