Notice:Undefined index: search [duplicate] - php

This question already has answers here:
"Notice: Undefined variable", "Notice: Undefined index", "Warning: Undefined array key", and "Notice: Undefined offset" using PHP
(29 answers)
Closed 5 years ago.
I am newbie in PHP code. I have create a input text to search the wanted data from database and also a delete button to delete the selected data from page. All function works fine but after I click the delete button the selected data was deleted and came out this error.
Notice:Undefined index: search in
C:\xampp\htdocs\FinalProject\search.php on line 114
Here is my code:
search.php
<?php
$con =mysqli_connect("localhost","root","","reservation");
$set =$_POST['search'];
if ($set) {
$show = "SELECT * FROM reserve WHERE Username = '$set'";
$result = mysqli_query($con, $show);
while ($row=mysqli_fetch_array($result)){ ?>
<tr>
<td><?php echo $row['ID']; ?></td>
<td><?php echo $row['Username']; ?></td>
<td><?php echo $row['Person']; ?></td>
<td><?php echo $row['Book_date']; ?></td>
<td><?php echo $row['Book_time']; ?></td>
<td><?php echo $row['Table_no']; ?></td>
<td><?php echo $row['Cus_acc']; ?></td>
<td><?php echo $row['Cus_food']; ?></td>
<td><?php echo $row['Cus_drink']; ?></td>
<td><?php echo $row['Cus_request']; ?></td>
<td><a class="del_btn" href="reserve_del.php?del=<?php echo
$row['ID']; ?>">Delete</a></td>
</tr>
<?php } ?>
<?php } ?>
reseacrh_del.php
<?php
$con = mysqli_connect('localhost','root','','reservation');
if (isset($_GET['del'])) {
$ID = $_GET['del'];
mysqli_query($con, "DELETE FROM reserve WHERE ID=$ID");
$_SESSION['msg'] = "Delete Successful.";
header("location: search.php");
}
?>
Some one help me please.. Thank you

Check this will help you: Here I am passing your username on delete page, and from there redirecting on the search page, where have to either post and get the same variable in condition
search.php
<?php
$con =mysqli_connect("localhost","root","","reservation");
$set = !empty($_POST['search']) ? $_POST['search'] : (!empty($_GET['search']) ? $_GET['search'] : null);
if ($set) {
$show = "SELECT * FROM reserve WHERE Username = '$set'";
$result = mysqli_query($con, $show);
while ($row=mysqli_fetch_array($result)){ ?>
<tr>
<td><?php echo $row['ID']; ?></td>
<td><?php echo $row['Username']; ?></td>
<td><?php echo $row['Person']; ?></td>
<td><?php echo $row['Book_date']; ?></td>
<td><?php echo $row['Book_time']; ?></td>
<td><?php echo $row['Table_no']; ?></td>
<td><?php echo $row['Cus_acc']; ?></td>
<td><?php echo $row['Cus_food']; ?></td>
<td><?php echo $row['Cus_drink']; ?></td>
<td><?php echo $row['Cus_request']; ?></td>
<td><a class="del_btn" href="reserve_del.php?del=<?php echo
$row['ID']; ?>&username=<?php echo $row['Username']; ?>">Delete</a></td>
</tr>
<?php } ?>
<?php } ?>
reseacrh_del.php
<?php
$con = mysqli_connect('localhost','root','','reservation');
if (isset($_GET['del'])) {
$ID = $_GET['del'];
mysqli_query($con, "DELETE FROM reserve WHERE ID=$ID");
$_SESSION['msg'] = "Delete Successful.";
header("location: search.php?search=".$_GET['username']);
}
?>

Test the existance of data in $_POST variable before to affect $_POST['search'] on $test :
<?php
$con =mysqli_connect("localhost","root","","reservation");
if (!empty($_POST)) {
$set =$_POST['search'];
$show = "SELECT * FROM reserve WHERE Username = '$set'";
$result = mysqli_query($con, $show);
while ($row=mysqli_fetch_array($result)){ ?>
<tr>
<td><?php echo $row['ID']; ?></td>
<td><?php echo $row['Username']; ?></td>
<td><?php echo $row['Person']; ?></td>
<td><?php echo $row['Book_date']; ?></td>
<td><?php echo $row['Book_time']; ?></td>
<td><?php echo $row['Table_no']; ?></td>
<td><?php echo $row['Cus_acc']; ?></td>
<td><?php echo $row['Cus_food']; ?></td>
<td><?php echo $row['Cus_drink']; ?></td>
<td><?php echo $row['Cus_request']; ?></td>
<td><a class="del_btn" href="reserve_del.php?del=<?php echo
$row['ID']; ?>">Delete</a></td>
</tr>
<?php } ?>
<?php } ?>

Related

How to use css styling in a php echo output

I got this piece of code that shows output from a database in a table. The last column shows the output on a button and can be clicked to go further.
I am looking for a way to style the button with css, but its not doing what i need at all.
<?php
while($row = mysqli_fetch_array($result)){
?>
<tr align="center">
<td><?php echo $row['klasse']; ?></td>
<td><?php echo $row['orde']; ?></td>
<td><?php echo $row['onderorde']; ?></td>
<td><?php echo $row['familie']; ?></td>
<td><?php echo $row['onderfamilie']; ?></td>
<td><?php echo $row['soort']; ?></td>
<td><?php echo $row['ondersoort']; ?></td>
<?php
$output = $row['ned_naam'];
echo "<td> <a href='info.php?value=". $output ."'><button>" . $output . "</button></a> </td>";
echo "</tr>";
}
?>
I tried:
<button class=\'btn\'>" . $output . "</button></a> </td>";
but that doesn't seem to work at all. What am i doing wrong?
There is no reason to use escape character \ on single quote since you wrapped your echo in double quotes
echo "<button class='btn'>" . $output . "</button>";

How to fix JSON Data not populating in HTML Table

I built an application that outputs json data showing who represents you in congress, using php. I created a table to output the data however, it's not rendering, not sure where the error is?
<div class="data-table-wrapper">
<?php
$json_rep =
file_get_contents('https://whoismyrepresentative.com/getall_mems.php?zip='.$_GET['zip'].'&output=json');
$rep_array = json_decode($json_rep);
var_dump($rep_array);
?>
<table class="data-table">
<thead>
<tr>
<td>Name</td>
<td>Party</td>
<td>State</td>
<td>District</td>
<td>Phone</td>
<td>Office</td>
<td>Link</td>
</tr>
<?php
foreach($rep_array->results->Name->Party as $key=>$item){
?>
<tr>
<td><?php echo $item->name; ?></td>
<td><?php echo $item->party; ?></td>
<td><?php echo $item->state; ?></td>
<td><?php echo $item->district; ?></td>
<td><?php echo $item->phone; ?></td>
<td><?php echo $item->office; ?></td>
<td><?php echo $item->link; ?></td>
</tr>
<?
}
?>
</table>
</div>
</div>
should render key and value pair into the table?
Use $rep_array = json_decode($json_rep, true); to get an associative array back. Now all you need to do is loop through the array to render any of the data in your table, like so:
<?php
$json_rep = file_get_contents('https://whoismyrepresentative.com/getall_mems.php?zip=10001&output=json');
$rep_array = json_decode($json_rep, true);
echo "<table>";
foreach ($rep_array['results'] as $key => $value) {
foreach ($value as $key1 => $value1) {
echo "<tr>";
echo "<td>";
echo $key1;
echo "</td>";
echo "<td>";
echo $value1;
echo "</td>";
echo "</tr>";
}
}
echo "</table>";

vertical column in table Display query result horizontally in html table

i want to display vertical values of the field , horizontally in html table.
my table structure is like
ID Category Value (ID is Foriegn Key)
1 A 23
1 B 25
.
.
.
.
1 S 30
2 A 10
2 B 11
.
.
.
2 S 22
ID Area_A Area_B Area_C (ID is primary key)
i want to join these table and want to display query result horizontally like
ID Area_A Area_B Area_C A B ........ S
1 aa bb cc 23 25 30
can anyone help me?
is this possible ?
$sql = "select * from tbl1, tbl2 where tble1.ID = tble2._ID ";
$res = mysqli_query($con, $sql);
while($row = mysqli_fetch_object($res)) {
?>
<tr>
<td><?php echo "$row->ID"; ?></td>
<td><?php echo "$row->Area_A"; ?></td>
<td><?php echo "$row->Area_B"; ?></td>
<td><?php echo "$row->Area_C; ?></td>
<td><?php echo "$row->Value "; ?></td>
<td><?php echo "$row->Value"; ?></td>
<td><?php echo "$row->Value"; ?></td>
<td><?php echo "$row->Value"; ?></td>
<td><?php echo "$row->Value"; ?></td>
<td><?php echo "$row->Value"; ?></td>
<td><?php echo "$row->Value"; ?></td>
<td><?php echo "$row->Value"; ?></td>
<td><?php echo "$row->Value"; ?></td>
<td><?php echo "$row->Value"; ?></td>
<td><?php echo "$row->Value"; ?></td>
<td><?php echo "$row->Value"; ?></td>
<td><?php echo "$row->Value"; ?></td>
<td><?php echo "$row->Value"; ?></td>
<td><?php echo "$row->Value"; ?></td>
</tr>
<?php
but the problem is inserted data like this
this black ellipse should display horizontally and only once
Your php code in your example creates a row in your HTML table for every row in your result set from MySQL. Change that code to create columns. php is excellent for this sort of thing; it manipulates text and HTML tables are just text.
To do this you need to, actually, create two rows. One is the header row and the other the detail row.
Try something like this. Please notice that this code is not debugged.
$hdr = "";
$dat = "";
while($row = mysqli_fetch_object($res)) {
$hdr = $hdr + "<td>" + $row->Category + "</td>";
$dat = $dat + "<td>" + $row->Value + "</td>";
}
echo "<tr>" + $hdr + "</tr>";
echo "<tr>" + $dat + "</tr>";
Do you see how $hdr = $hdr + table cell accumulates a bunch of table cells for each data item, containing the Category values in your result set? Likewise, $dat = $dat + table cell accumulates a bunch of table cells for each data item.
Sorry to say I don't understand Area_A and the other area items in your question, so I haven't tried to program those.

How to display a values in code-igniter table from controller?

I have a one array in code-igniter controller
foreach($array as $row) {
echo $row['_source']['shape'];
echo "<br>";
echo $row['_source']['cut'];
echo "<br>";
echo $row['_source']['color'];
echo "<br>";
echo $row['_source']['clarity'];
echo "<br>";
echo $row['_source']['lab'];
echo "<br>";
echo $row['_source']['polish'];
echo "<br>";
echo $row['_source']['symmetry'];
echo "<br>";
echo $row['_source']['stone_id'];
echo "<br>";
echo $row['_source']['fluorescence'];
echo "<br>";
echo $row['_source']['cert_no'];
echo "<br>";
echo $row['_source']['location'];
echo "<br>";
}
which gives me two different bunch of values
In first bunch of values i got
round 3X D IF GIA VG G id01 FNT xy01 india
In second bunch of values i got
heart 2X f IF IGI VG G id01 FNT xy01 china
Now i want to display this all values in table in view part..
First send your data to view as follows:
//Retrive your data here and put in $result
$data['res']=$result;
$this->load->view('view_page', $data);
Then in your view page
<table>
<?php
foreach($res as $row) {
echo "<tr>";
echo "<td>".$row['_source']['shape']."</td>";
echo "<td>".$row['_source']['cut']."</td>";
echo "<td>".$row['_source']['color']."<td>";
echo "<td>".$row['_source']['clarity']."</td>";
echo "<td>".$row['_source']['lab']."</td>";
echo "<td>".$row['_source']['polish']."</td>";
echo "<td>".$row['_source']['symmetry']."</td>";
echo "<td>".$row['_source']['stone_id']."</td>";
echo "<td>".$row['_source']['fluorescence']."</td>";
echo "<td>".$row['_source']['cert_no']."</td>";
echo "<td>".$row['_source']['location']."</td>";
echo "</tr>";
}
?>
</table>
In controller :
$data['your_array'] = $array;
$this->load->view('view_page', $data);
View page :
<table>
<?php
if(is_array($values) && count($your_array) > 0) {
foreach($your_array as $row) {
?>
<tr>
<td><?php echo $row['_source']['shape']; ?></td>
<td><?php echo $row['_source']['cut']; ?></td>
<td><?php echo $row['_source']['color']; ?><td>
<td><?php echo $row['_source']['clarity']; ?></td>
<td><?php echo $row['_source']['lab']; ?></td>
<td><?php echo $row['_source']['polish']; ?></td>
<td><?php echo $row['_source']['symmetry']; ?></td>
<td><?php echo $row['_source']['stone_id']; ?></td>
<td><?php echo $row['_source']['fluorescence']; ?></td>
<td><?php echo $row['_source']['cert_no']; ?></td>
<td><?php echo $row['_source']['location']; ?></td>
</tr>
<?php
}
}
?>
</table>

linking an item in table using php

I am trying to figure out how to link items in a row of a table while keeping the row in place, I have the following code:
echo "<br><br><table border=0 cellpadding=3>";
echo "<td><b>Player Name</b></td>";
echo "<td><b>Position</b></td>";
echo "<td><b>Height</b></td>";
echo "<td><b>Weight</b></td>";
echo "<td><b>Birthdate</b></td>";
echo "<td><b>NHL Rights</b></td>";
echo "<td><b>CNGHL Team</b></td>";
echo "<td><b>Current Team</b></td>";
echo "<td><b>Current League</b></td>";
while($row = mysql_fetch_array($oteaminfo))
{
echo "<tr>";
echo "<td>".$row['FullName']."</td> ";
echo "<td>".$row['Position']."</td> ";
echo "<td>".$row['Height']."</td> ";
echo "<td>".$row['Weight']."</td> ";
echo "<td>".$row['DOB']."</td> ";
echo "<td>".$row['Team']."</td> ";
echo "<td>".$row['CNGHLRights']."</td> ";
echo "<td>".$row['InternationalTeam']."</td> ";
echo "<td>".$row['InternationLeague']."</td> ";
echo "</tr>";
}
echo "</table>";
I have tried using
echo "<a href=\"cnghlplayers.php? PlayerID=".$row['PlayerID']."\">".$row['FullName']."<br>";
In Place of the
echo "<td>".$row['FullName']."</td> ";
In the table but It puts the links into a new row above my current table. Any help would be greatly appreciated, I tried searching for this topic but I couldn't find any information that was helpful.
Thanks!
Just wrap the <td> element around:
echo '<td>'.$row['FullName'].'</td>';
Wrap your link with TD:
echo "<td>".$row['FullName']."</td>";
Test this, there were some issues with your table markup. This should be a bit easier to read as well.
?> <!-- this line ends your php code so that you can format the HTML sanely -->
<br />
<br />
<table border=0 cellpadding=3>
<tr>
<td><b>Player Name</b></td>
<td><b>Position</b></td>
<td><b>Height</b></td>
<td><b>Weight</b></td>
<td><b>Birthdate</b></td>
<td><b>NHL Rights</b></td>
<td><b>CNGHL Team</b></td>
<td><b>Current Team</b></td>
<td><b>Current League</b></td>
</tr>
<?php while($row = mysql_fetch_array($oteaminfo)) { ?>
<tr>
<td><?php echo "".$row['FullName'].""; ?></td>
<td><?php echo $row['Position']; ?></td>
<td><?php echo $row['Height']; ?></td>
<td><?php echo $row['Weight']; ?></td>
<td><?php echo $row['DOB']; ?></td>
<td><?php echo $row['Team']; ?></td>
<td><?php echo $row['CNGHLRights']; ?></td>
<td><?php echo $row['InternationalTeam']; ?></td>
<td><?php echo $row['InternationLeague']; ?></td>
</tr>
<?php } ?>
</table>
<?php //continues your php code below

Categories