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

5 minutes and 10 seconds before given time [duplicate]
PHP exec function on nginx doesn't recognize system environment variables
How to set external URL link to Magento admin menu
Yii CGridView search with “&” contains attributes
Regex - lookahead greedy but optionnal
How can i read a text file which contains a proper array in php?
with limit(20) it runs only the first 20 values of DB
Change page content based on condition Wordpress
MongoClient PHP install on localhost
How do I compare IP addresses in PHP as binary strings?
Why cant I combine these two scripts
PHP: Existant pdf to PDF/A
php $_POST is empty $HTTP_POST_VARS works
Wordpress resizing post thumbnails
With PHP what would be faster: multiple DB connection class instances or a singleton?
Get automatic selected checkbox and next input text value in php

Categories

HOME
office365
qc
activex
dry
apk
dronekit-python
material-components
implicit-conversion
capistrano
jpa-criteria
match
mpu6050
bundler
mahout-recommender
asp.net-core-1.0
pywinauto
tomcat8
multiple-tables
data-type-conversion
tableview
conda
intel
exchange-server-2010
bonita
amazon-cloudtrail
tsung
envoy
google-play-developer-api
caesar-cipher
advanced-filter
identify
microsoft-ui-automation
linq.js
assemblies
best-buy-api
uipickerview
grails3.2.0
julius-speech
docker-ucp
music21
autorelease
libreoffice-writer
nothing
winmerge
algebra
deedle
portability
email-forwarding
predicates
perl-data-structures
finder
haraka
svnserve
carmen
wolfram-language
odp.net-managed
jemdoc
android-expansion-files
cryptojs
in-app-billing
msgpack
variable-length-array
ibm-was
enaml
postal-code
modern.ie
explain
text-align
python-curses
phonegap-facebook-plugin
dc
angular-ui-select
nodeload
cidr
typesafe-stack
django-sites
application-blocks
xsd2code
boinc
acitree
notifyjs
ax
pacman
dynamic-rdlc-generation
flv
sly-scroller
arel
handshake
towers-of-hanoi
image-formats
thejit
uploading
expression-web
vows
fragment-identifier
activestate
tabbarcontroller
external-sorting
jboss-mdb
server-load
levels

Resources

Encrypt Message