Jump to content

Click record, show another page


Go to solution Solved by paddy_fields,

Recommended Posts

Can somebody help me. I have a table with a complaints column and in that there are display for each record details that you can click on and then a page must appear to show the details. Here is my code error :

  Undefined variable: comp in C:\wamp\www\whodidntpay\complaints.php on line 76

 

Here is my code:

First all companies where the table is with the details option

<?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['d_name']."</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 is the complaints code where there must be referenced to

<?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

$sql="SELECT complain 
        FROM complaint c
        WHERE c.d_name = '$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>".$complaint['complain']."</td>";
	
       
}
mysql_close($db);


 ?> 
Link to comment
https://forums.phpfreaks.com/topic/284813-click-record-show-another-page/
Share on other sites

  • Solution
$sql="SELECT complain 
FROM complaint c
WHERE c.d_name = '$comp' ";;


This is your first reference to $comp, which is why you are getting an undefined variable error.

 

You need to pull this info from your URL via GET and store it as $comp...

$comp = $_GET['comp'];

And then appropriately escape $comp to avoid SQL injection

Edited by paddyfields

One way is to use mysql_real_escape_string():

http://php.net/mysql_real_escape_string

 

Note that mysql_ functions have been depreciated. If you're not doing so already, it's time to start looking into an alternative:

http://www.php.net/manual/en/mysqlinfo.api.choosing.php

Ahh...Ch0cu3r beat me to it. At least there's a typo to fix. :)



<?php
$comp = $_GET['comp'];
 
$sql="SELECT complain 
        FROM complaint c
        WHERE c.d_name = '" . mysql_real_escape_string($comp) . "'";
?>


 

Should be "mysql_"...not "msyql_"

Edited by cyberRobot
This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.