php


my while loop is in php its too much its out of control


This is my code in which my while is going out of order and I don't know what to do with it.
index.php
<!DOCTYPE html>
<html>
<head>
<title>Search</title>
</head>
<body>
<form action="process.php" method="post">
<input type="Search" name="search">
<br>
<input type="submit" name="submit">
</form>
<?php
$search_result = $_GET['result'];
while($search_result)
echo $search_result;
?>
</body>
And the problem is that the above while loop is iterating for the whole life and I can not stop it. What's the matter with it.
process.php
<?php
$conn = new mysqli('localhost', 'root', '', 'posts');
if(isset($_POST['submit']))
{
$search = htmlentities($_POST['search']);
$query = $conn->query("SELECT * FROM posts WHERE heading LIKE'%".$search."%'");
while ($row = $query->fetch_assoc()) {
$search1 = $row['heading'];
header("location:index.php?result='".$search1."'");
}
} else {
header('location:index.php');
}
?>
There are some problems, but you're actually pretty close to getting this working. Others have mentioned the SQL injection vulnerability in the comment, and it's a valid concern that you should address, but I'll just focus on the logic errors in this answer. There are really just two main problems.
First, you aren't getting all of your data in process.php.
Here, you're iterating your query results, but you're only going to get a header with the value of the last one.
while ($row = $query->fetch_assoc()) {
$search1 = $row['heading'];
header("location:index.php?result='".$search1."'"); // overwrites the location header
}
You need to accumulate the headings during the loop and call header once after the loop.
while ($row = $query->fetch_assoc()) {
$result['headings'][] = $row['heading']; // append the row value to an array instead
}
header('Location: index.php?' . http_build_query($result));
(http_build_query will convert the array to a string you can use in the URL.)
Second, you're using the wrong kind of loop in index.php.
Back in index.php, instead of
while($search_result) echo $search_result;
You can use a foreach loop (after checking that the array you're looking for really exists).
if (isset($_GET['headings'])) {
foreach($_GET['headings'] as $heading) {
echo $heading;
}
}
while($search_result) would only work if you were popping items off of $search_result until it became empty, or if you had a break based on some predictable condition.
Be careful not to try to pass too much data in the URL like this. There is a limit to how much it can take. If you're fetching much data, it would probably be better to include process.php and output the query results in the same page rather than submitting your form to process.php and redirecting back to index.php with the results in the query string.

Related Links

Get data from link
PHP-MySQL: Check if column value increased then
Invoking an ajax request causes php to block access
convert FormData files object to normal object
OS X 10.10 (yosemite) PHP 5.5.14 - Is there any way to install png support without HomeBrew
How to implement database trigger in codeigniter?
Ambiguous class resolution in laravel phpexcel update
PHP CURL script runs but it does not set the cookie
How i do custom Yii2 gridview sort?
Limit string length with white spaces in codeigniter
email getting blocked before reaching the spam folder
How can i pervent special character input to a php file? [duplicate]
PHP - jQuery - Sending mass emails - 1 email per 5 seconds
prevent class instantization standalone, enabled from factory
How can I change the content of an iframe with form post
how do I remove this substring from every value in an array?

Categories

HOME
office365
flask
svn
opencart
selenium-builder
systemd
mousemove
compilation
cypher
tfs2010
msmq
cqrs
amazon-emr
erd
sap-fiori
sonicwall
vmware-workstation
reselect
nest-api
varnish-vcl
jitsi
bosun
kaggle
fluent-migrator
acl
hdmi
oracleforms
react-bootstrap-table
bonita
sfml
mongoengine
bootstrap-sass
creation
express-session
cups
django-crispy-forms
assert
praat
distributed-caching
haar-classifier
spooler
django-static-precompiler
libreoffice-writer
ilrepack
node-apn
winston
simple-schema
line-intersection
google-news
bpms
e
carmen
oci
perforce-integrate
apache-pig-grunt
vim-plugin
wif4.5
lovefield
cfwheels
netdatacontractserializer
ngcordova
green-threads
relational-model
fuseesb
html-escape-characters
maven-shade-plugin
fasterxml
lmax
visual-c++-2012
communicate
treeline
rpg
distributed-r
forceclose
hyperloglog
apache-shindig
quickgraph
void-pointers
rikulo
nsmutablestring
instance-variables
getproperty
first-class
monocross
yuidoc
datacontracts
airprint
bll
printqueue
resharper-5.1
3-tier
j2mepolish
bucket
community-server

Resources

Encrypt Message