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

Why do I get duplicate data when import CSV file into MySQL with php
Choosing Preferred Domain Clash with CSS
How to preserve the user input in my form after submit? [duplicate]
PHP MongoDB Store Object as String
curl post Json with addslashes
qTranslate-x - How to show just the flag on menu
Laravel registration: Insert two rows into separated tables
Force CSS updates in wordpress w/ wp_enqueue_script only works on localhost?
Getting only the child elements of the first element
RESTfull API for website and admin panel
How to Display Post Expiring plugin on posts data table wordpress plugin
dropdown selection message missing PHP
how to get all parameter from foreign key entity symfony 3
PHP concatenate &para to variable
Trying to pass ajax value from php to jquery in selectize
PHP Error: T_CONSTANT_ENCAPSED_STRING [duplicate]

Categories

HOME
php
office365
macos-sierra
lambda
functional-programming
angular-ui-grid
xcode8.1
barcode-scanner
writefile
openlayers-3
semantic-web
bing-search
portable-class-library
iptables
dji-sdk
xamarin-zebble
parsley.js
amazon-emr
complexity-theory
user-defined-types
maven-plugin
cpu-usage
multiple-tables
angular2-highcharts
anova
raima
acrobat
sendmessage
toad
netbios
mapnik
argv
memory-fences
caesar-cipher
serversocket
buildforge
wdk
stackpanel
viewcontroller
word-cloud
elasticsearch-aggregation
asihttprequest
destroy
music21
dredd
cyanogenmod
rm
ol3-google-maps
scala-breeze
nonlinear-functions
webvtt
portability
mifos
ternary-operator
okio
jsf-2.3
eclemma
fiber
codecharge
gwt-syncproxy
onepage-checkout
odesk
in-app-billing
gitlab-omnibus
dbmigrate
whitespace-language
nsmutabledata
tkx
pass-by-value
operands
nesper
visual-studio-6
category-theory
principalcontext
codahale-metrics
tnt4j
lru
postgres-xc
form-for
chefspec
significant-digits
icenium
jsplitpane
popup-blocker
uploading
type-safety
yuidoc
data-dump
firefly-mv
nsrangeexception
tablet-pc
processors
gtktextview
code-camp
error-detection
webclient.uploaddata

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App