Parkie02 Posted December 18, 2013 Share Posted December 18, 2013 Can somebody help me. With the following code, when clicking on see more details the page companydetails must be opened. This happens but no records are showing. Here is my code: <?php session_start(); ?> <!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> <title>Complaints</title> <meta name="description" content=""> <meta name="keywords" content=""> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <link href="css/style.css" rel="stylesheet" type="text/css"> </head> <body> <div class="main"> <div class="page"> <div class="header"> <div class="header-img"> <h1>Who Didn't Pay</h1> <p> </p> </div> <div class="menu"> <ul> <li><a href="index.php">Home</a></li> <li><a href="registration.php">Register</a></li> <li><a href="complaint.php">Complaint</a></li> <li><a href="search.php">Search</a></li> <li><a href="#">Contact Us</a></li> <li><a href="login.php">Login</a></li> <li><a href="logout.php">Logout</a></li> </ul> </div> </div> <div class="content"> <div class="left-panel"> <div class="left-panel-in"> <h2 class="title">Complaints:</h2> <p> </p> <p> </p> <p> <form method="post" action="allcompanies.php?go" id="showallform"> <p> </p> <p> </p> <table width="600" border="1" cellpadding="1" cellspacing="1"> <tr> <th>Complaints</th> <tr> </form> </p> </body></html> <?php //connect to the database $db=mysql_connect ("localhost", "root", "") or die ('I cannot connect to the database because: ' . mysql_error()); //-select the database to use $mydb=mysql_select_db("whodidntpay"); //-query the database table $comp = $_GET['comp']; $sql="SELECT complain FROM complaint c WHERE c.d_name = '" . mysql_real_escape_string($comp) . "'"; //-run the query against the mysql query function $result=mysql_query($sql); //-count results $numrows=mysql_num_rows($result); echo "<p>" .$numrows . " results found "; while($debtor=mysql_fetch_array($result)) { echo "<tr>"; echo "<td>".$debtor['complain']."</td>"; } echo "<tr>"; echo "<tr>"; echo "<td><a href=\"companydetails.php?company={$debtor['d_name']}\">See more details</a></td>"; mysql_close($db); ?> And here is the code of the page that is then opened companydetails: <?php session_start(); ?> <!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> <title>Order Details</title> <meta name="description" content=""> <meta name="keywords" content=""> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <link href="css/style.css" rel="stylesheet" type="text/css"> </head> <body> <div class="main"> <div class="page"> <div class="header"> <div class="header-img"> <h1>Who Didn't Pay</h1> <p> </p> </div> <div class="menu"> <ul> <li><a href="index.php">Home</a></li> <li><a href="registration.php">Register</a></li> <li><a href="complaint.php">Complaint</a></li> <li><a href="search.php">Search</a></li> <li><a href="#">Contact Us</a></li> <li><a href="login.php">Login</a></li> <li><a href="logout.php">Logout</a></li> </ul> </div> </div> <div class="content"> <div class="left-panel"> <div class="left-panel-in"> <h2 class="title">Details:</h2> <p> </p> <p> </p> <p> <form method="post" action="companydetails.php?go" id="showallform"> <p> </p> <p> </p> <table width="775" border="1" cellpadding="1" cellspacing="1"> <tr> <th>Order Number</th> <th>Order Description</th> <th>Order Date</th> <th>Invoice Date</th> <th>Delivery Date</th> <th>Delivery Number</th> <th>Order Amount</th> <th>Amount Paid</th> <th>Amount Outstanding</th> <tr> </form> </p> </body></html> <?php //connect to the database $db=mysql_connect ("localhost", "root", "") or die ('I cannot connect to the database because: ' . mysql_error()); //-select the database to use $mydb=mysql_select_db("whodidntpay"); //-query the database table $company = isset($_GET['company']) ? $_GET['company'] : ''; if ($company) { $sql = "SELECT cd.order_nr, cd.order_description, cd.order_date, cd.invoice_date, cd.delivery_date, cd.delivery_nr, cd.order_amount, cd.amount_paid, cd.amount_outstanding FROM complaint c INNER JOIN complaint_details cd USING (complaint_nr) WHERE c.d_name = '$company' "; } else { echo "<script>alert('No details')</script>"; } //-run the query against the mysql query function $result=mysql_query($sql); //-count results $numrows=mysql_num_rows($result); echo "<p>" .$numrows . " results found "; while($complaint_details=mysql_fetch_array($result)) { echo "<tr>"; echo "<td>".$complaint_details['order_nr']."</td>"; echo "<td>".$complaint_details['order_description']."</td>"; echo "<td>".$complaint_details['order_date']."</td>"; echo "<td>".$complaint_details['invoice_date']."</td>"; echo "<td>".$complaint_details['delivery_date']."</td>"; echo "<td>".$complaint_details['delivery_nr']."</td>"; echo "<td>".$complaint_details['order_amount']."</td>"; echo "<td>".$complaint_details['amount_paid']."</td>"; echo "<td>".$complaint_details['amount_outstanding']."</td>"; } mysql_close($db); ?> Thank you Quote Link to comment Share on other sites More sharing options...
Barand Posted December 18, 2013 Share Posted December 18, 2013 Have you checked to see what $_GET['company'] contains? Quote Link to comment Share on other sites More sharing options...
Parkie02 Posted December 18, 2013 Author Share Posted December 18, 2013 It works on this code when clicking on the company name then the details is shown, but not when I click on see more details of the other code. Here is the code where it works: <?php session_start(); ?> <!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> <title>All Companies</title> <meta name="description" content=""> <meta name="keywords" content=""> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <link href="css/style.css" rel="stylesheet" type="text/css"> </head> <body> <div class="main"> <div class="page"> <div class="header"> <div class="header-img"> <h1>Who Didn't Pay</h1> <p> </p> </div> <div class="menu"> <ul> <li><a href="index.php">Home</a></li> <li><a href="registration.php">Register</a></li> <li><a href="complaint.php">Complaint</a></li> <li><a href="search.php">Search</a></li> <li><a href="#">Contact Us</a></li> <li><a href="login.php">Login</a></li> <li><a href="logout.php">Logout</a></li> </ul> </div> </div> <div class="content"> <div class="left-panel"> <div class="left-panel-in"> <h2 class="title">All Companies:</h2> <p> </p> <p> </p> <p> <form method="post" action="allcompanies.php?go" id="showallform"> <p> </p> <p> </p> <table width="600" border="1" cellpadding="1" cellspacing="1"> <tr> <th>Company Name</th> <th>Email</th> <th>Companies not Paid</th> <th>Amount not Paid</th> <th>Complaints</th> <tr> </form> </p> </body></html> <?php //connect to the database $db=mysql_connect ("localhost", "root", "mj2015") or die ('I cannot connect to the database because: ' . mysql_error()); //-select the database to use $mydb=mysql_select_db("whodidntpay"); //-query the database table $sql="SELECT d_name,email,companies_not_paid,amount_not_paid FROM debtor ORDER BY d_name"; //-run the query against the mysql query function $result=mysql_query($sql); //-count results $numrows=mysql_num_rows($result); echo "<p>" .$numrows . " results found "; while($debtor=mysql_fetch_array($result)) { echo "<tr>"; echo "<td><a href=\"companydetails.php?company={$debtor['d_name']}\">{$debtor['d_name']}</a></td>"; echo "<td>".$debtor['email']."</td>"; echo "<td>".$debtor['companies_not_paid']."</td>"; echo "<td>".$debtor['amount_not_paid']."</td>"; echo "<td><a href=\"complaints.php?comp={$debtor['d_name']}\">Details</a></td>"; } mysql_close($db); ?> Quote Link to comment Share on other sites More sharing options...
Barand Posted December 18, 2013 Share Posted December 18, 2013 In the code where it works, the reference to $debtor['d_name'] is inside the while() loop. In the one that fails, it isn't. $debtor is set to false at the end of the loop so the reference to it after then is invalid. Turn error reporting on! And as I said before, and you ignored, check the value of $_GET['company']. Had you done these you might have found what the problem was. Quote Link to comment Share on other sites More sharing options...
cyberRobot Posted December 18, 2013 Share Posted December 18, 2013 Also note that your query needs to be updated to get the data from the "d_name" column. Right now it only retrieves information from the "complain" column. $sql="SELECT complain FROM complaint c WHERE c.d_name = '" . mysql_real_escape_string($comp) . "'"; Quote Link to comment Share on other sites More sharing options...
Parkie02 Posted December 18, 2013 Author Share Posted December 18, 2013 Im new to this so I am learning. How can check the value of $_GET['company'] and how must I update the query? Quote Link to comment Share on other sites More sharing options...
paddy_fields Posted December 18, 2013 Share Posted December 18, 2013 echo $_GET['company']; Quote Link to comment Share on other sites More sharing options...
Parkie02 Posted December 18, 2013 Author Share Posted December 18, 2013 must this be done in complaints or companydetails? and where in the code Quote Link to comment Share on other sites More sharing options...
Barand Posted December 18, 2013 Share Posted December 18, 2013 $sql="SELECT d_name, complain FROM complaint c WHERE c.d_name = '" . mysql_real_escape_string($comp) . "'"; And a good place to check $_GET value would be in a page that is using it and isn't working correctly Quote Link to comment Share on other sites More sharing options...
Parkie02 Posted December 18, 2013 Author Share Posted December 18, 2013 Nothing is displayed when I type in echo $_GET['company'];. Here is another code: <?php session_start(); ?> <!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> <title>All Companies</title> <meta name="description" content=""> <meta name="keywords" content=""> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <link href="css/style.css" rel="stylesheet" type="text/css"> </head> <body> <div class="main"> <div class="page"> <div class="header"> <div class="header-img"> <h1>Who Didn't Pay</h1> <p> </p> </div> <div class="menu"> <ul> <li><a href="index.php">Home</a></li> <li><a href="registration.php">Register</a></li> <li><a href="complaint.php">Complaint</a></li> <li><a href="search.php">Search</a></li> <li><a href="#">Contact Us</a></li> <li><a href="login.php">Login</a></li> <li><a href="logout.php">Logout</a></li> </ul> </div> </div> <div class="content"> <div class="left-panel"> <div class="left-panel-in"> <h2 class="title">All Companies:</h2> <p> </p> <p> </p> <p> <form method="post" action="allcompanies.php?go" id="showallform"> <p> </p> <p> </p> <table width="600" border="1" cellpadding="1" cellspacing="1"> <tr> <th>Company Name</th> <th>Email</th> <th>Companies not Paid</th> <th>Amount not Paid</th> <th>Complaints</th> <tr> </form> </p> </body></html> <?php //connect to the database $db=mysql_connect ("localhost", "root", "") or die ('I cannot connect to the database because: ' . mysql_error()); //-select the database to use $mydb=mysql_select_db("whodidntpay"); //-query the database table $sql="SELECT d_name,email,companies_not_paid,amount_not_paid FROM debtor ORDER BY d_name"; //-run the query against the mysql query function $result=mysql_query($sql); //-count results $numrows=mysql_num_rows($result); echo "<p>" .$numrows . " results found "; while($debtor=mysql_fetch_array($result)) { echo "<tr>"; echo "<td><a href=\"companydetails.php?company={$debtor['d_name']}\">{$debtor['d_name']}</a></td>"; echo "<td>".$debtor['email']."</td>"; echo "<td>".$debtor['companies_not_paid']."</td>"; echo "<td>".$debtor['amount_not_paid']."</td>"; echo "<td><a href=\"complaints.php?comp={$debtor['d_name']}\">Details</a></td>"; } mysql_close($db); ?> Here al the companies are displayed. And there is a complaints column with a details option in each row. When there is clicked on details the complaints page is shown, the first code I showed and on that page there is a see more details option that displat the second code I posted. Can someone please help me Quote Link to comment Share on other sites More sharing options...
Barand Posted December 18, 2013 Share Posted December 18, 2013 Nothing is displayed when I type in echo $_GET['company'];. In that case you still haven't fixed the problem I pointed out in reply #4 above Quote Link to comment Share on other sites More sharing options...
Parkie02 Posted December 18, 2013 Author Share Posted December 18, 2013 What must I type where? Must I turn on error reporting or how do I set it to true? I am struggling Quote Link to comment Share on other sites More sharing options...
Barand Posted December 18, 2013 Share Posted December 18, 2013 Let's start with code I mentioned in #4 where you are using the while() loop. Here's your code - as you can see the d_name is echoed after the loop finished $comp = $_GET['comp']; $sql="SELECT complain FROM complaint c WHERE c.d_name = '" . mysql_real_escape_string($comp) . "'"; //-run the query against the mysql query function $result=mysql_query($sql); //-count results $numrows=mysql_num_rows($result); echo "<p>" .$numrows . " results found "; while($debtor=mysql_fetch_array($result)) { echo "<tr>"; echo "<td>".$debtor['complain']."</td>"; } echo "<tr>"; echo "<tr>"; echo "<td><a href=\"companydetails.php?company={$debtor['d_name']}\">See more details</a></td>"; mysql_close($db); Change to $comp = $_GET['comp']; $sql="SELECT d_name, complain FROM complaint c WHERE c.d_name = '" . mysql_real_escape_string($comp) . "'"; //-run the query against the mysql query function $result=mysql_query($sql); //-count results $numrows=mysql_num_rows($result); echo "<p>" .$numrows . " results found </p>"; echo "<table>"; while($debtor=mysql_fetch_array($result) { echo "<tr>"; echo "<td>".$debtor['complain']."</td>"; echo "<td><a href=\"companydetails.php?company={$debtor['d_name']}\">See more details</a></td>"; echo "</tr>"; } echo "</table>"; mysql_close($db); Also your HTML code is terrible (being polite here). You have table rows that aren't inside <table>..</table> tags You are not using end tags (such as </p>, </tr> The piece of code above should be inside the html <body>..</body> tags and not after the closing </html> tag. Quote Link to comment Share on other sites More sharing options...
Parkie02 Posted December 18, 2013 Author Share Posted December 18, 2013 Thank you. Sorry Im new to this and teaching myself php mysql Quote Link to comment Share on other sites More sharing options...
Parkie02 Posted December 18, 2013 Author Share Posted December 18, 2013 Is there maybe a way to display the see more details at the end and only once, because that is why I did not put it into the while? I just want to put it under the table that is displayed Quote Link to comment Share on other sites More sharing options...
paddy_fields Posted December 18, 2013 Share Posted December 18, 2013 (edited) Why would you want it to display only once? Surely you need the link to be unique for each company, and hence allow you to view more information for that particular company... Edited December 18, 2013 by paddyfields Quote Link to comment Share on other sites More sharing options...
Barand Posted December 18, 2013 Share Posted December 18, 2013 Is there maybe a way to display the see more details at the end and only once, because that is why I did not put it into the while? I just want to put it under the table that is displayed In thatcase you do not need $row['d_name'] at all. You have the company in $comp $comp = $_GET['comp']; $sql="SELECT complain FROM complaint c WHERE c.d_name = '" . mysql_real_escape_string($comp) . "'"; //-run the query against the mysql query function $result=mysql_query($sql); //-count results $numrows=mysql_num_rows($result); echo "<p>" .$numrows . " results found </p>"; echo "<table>"; while($debtor=mysql_fetch_array($result) { echo "<tr>"; echo "<td>".$debtor['complain']."</td>"; echo "</tr>"; } echo "</table>"; echo "<br/><a href=\"companydetails.php?company=$comp\">See more details</a>"; Quote Link to comment Share on other sites More sharing options...
Parkie02 Posted December 20, 2013 Author Share Posted December 20, 2013 Can someone maybe show me how can I put the see more details part after all the complaints. Because now it is appearing on top of the Heading Complaints Quote Link to comment Share on other sites More sharing options...
cyberRobot Posted December 20, 2013 Share Posted December 20, 2013 What does your code look like now? Quote Link to comment Share on other sites More sharing options...
Parkie02 Posted December 20, 2013 Author Share Posted December 20, 2013 <?php session_start(); ?> <!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> <title>Complaints</title> <meta name="description" content=""> <meta name="keywords" content=""> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <link href="css/style.css" rel="stylesheet" type="text/css"> </head> <body> <div class="main"> <div class="page"> <div class="header"> <div class="header-img"> <h1>Who Didn't Pay</h1> <p> </p> </div> <div class="menu"> <ul> <li><a href="index.php">Home</a></li> <li><a href="registration.php">Register</a></li> <li><a href="complaint.php">Complaint</a></li> <li><a href="search.php">Search</a></li> <li><a href="#">Contact Us</a></li> <li><a href="login.php">Login</a></li> <li><a href="logout.php">Logout</a></li> </ul> </div> </div> <div class="content"> <div class="left-panel"> <div class="left-panel-in"> <h2 class="title">Complaints:</h2> <p> </p> <p> </p> <p> <form method="post" action="allcompanies.php?go" id="showallform"> <p> </p> <p> </p> <table width="600" border="1" cellpadding="1" cellspacing="1"> <tr> <th>Complaints</th> <tr> </form> </p> </body></html> <?php //connect to the database $db=mysql_connect ("localhost", "root", "") or die ('I cannot connect to the database because: ' . mysql_error()); //-select the database to use $mydb=mysql_select_db("whodidntpay"); //-query the database table $comp = $_GET['comp']; $sql="SELECT complain FROM complaint c WHERE c.d_name = '" . mysql_real_escape_string($comp) . "'"; //-run the query against the mysql query function $result=mysql_query($sql); //-count results $numrows=mysql_num_rows($result); echo "<p>" .$numrows . " results found </p>"; while($debtor=mysql_fetch_array($result)) { echo "<tr>"; echo "<td>".$debtor['complain']."</td>"; echo "</tr>"; } echo "<br/><a href=\"companydetails.php?company=$comp\">See more details</a>"; echo "<tr>"; echo "<tr>"; mysql_close($db); ?> Sorry forfgot to post the code Quote Link to comment Share on other sites More sharing options...
Barand Posted December 20, 2013 Share Posted December 20, 2013 Perhaps you should spend time reading the replies you have already had before we spend our time on any more Also your HTML code is terrible (being polite here). You have table rows that aren't inside <table>..</table> tags You are not using end tags (such as </p>, </tr> The piece of code above should be inside the html <body>..</body> tags and not after the closing </html> tag. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.