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

How do I get rid of this Joomla! page header?
Sending Html Text via ajax (html) to php script to store in db. It only saves until
Angular app in AWS authorization issue
HTTPS issue iOS9
infinte While loop
php echo vs return, which way is better? [closed]
Do_shortcode function does not work outside WordPress?
Prepare statement filling
unable to download csv string using header() in PHP [duplicate]
Will counting in file (PHP) result in clients receiving same number?
WordPress - jquery selector based on has_tag()
require file inside function PHP
How to get unique id from array implode when passing value through multiple selection php
Polylang Switcher - Show/Hide for Widgets
How to use <pre> tag to don't appear in the source code [closed]
Get Linkedin user details using application details in php

Categories

HOME
opengl
yii
message-queue
loopbackjs
theano
autocomplete
dronekit-python
moodle-api
gtk
chromecast
angular4
temperature
rest-assured
word2vec
xsl-fo
http-authentication
gitkraken
connection-refused
multi-upload
beego
annotation-processing
php-5.3
audit
toad
mongoengine
buildforge
nppexec
runtimeexception
aurelia-cli
ng-repeat
slideshow
grails-spring-security
yoast
kitura
bit-shift
absolute
section508
xcglogger
scala-breeze
redisson
sonatype
1010
cognos-tm1
ogg
yui3
gcloud-node
spring-mongo
android-4.2-jelly-bean
rails-engines
ioctl
lovefield
json-spirit
deeplink
textpattern
arbre
cfwheels
blank-line
android-handler
algebraixlib
erlog
incron
fasterxml
window-resize
coding-efficiency
commenting
fileshare
gpu-programming
mft
facebook-game-groups
grails-2.3
postgres-xc
delphi-xe4
kaazing
flymake
type-safety
affinetransform
microblogging
ninject-interception
outlook-2007-addin
html-components
accumulator
prism-2

Resources

Encrypt Message



code
soft
python
ios
c
html
jquery
cloud
mobile