简体   繁体   中英

MySQL returning result showing twice in while loop?

I have a database named as ps_megasearch_attributes. For that my database query is like this

CREATE TABLE IF NOT EXISTS `ps_megasearch_attributes` (
  `attribute_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `attribute_name` text NOT NULL,
  PRIMARY KEY (`attribute_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8  ;

--
-- Dumping data for table `ps_megasearch_attributes`
--

INSERT INTO `ps_megasearch_attributes` (`attribute_id`, `attribute_name`) VALUES
(1, 'Color');

Now to get the values from the database I have this code in php

<?php 
$attribute_name_fetch = mysqli_query($con,"SELECT `attribute_name` FROM `ps_megasearch_attributes` ORDER BY `attribute_id` DESC LIMIT 1 " );
while($attributes_list=mysqli_fetch_array($attribute_name_fetch )){
  foreach($attributes_list as $attribute_name) {
    echo $attribute_name;
  }
}

?>

But this one is showing the return result array two times. So can someone kindly tell me how to do this? Any help will be really appreciable.

mysqli_fetch_array

mysqli_result::fetch_array -- mysqli_fetch_array — Fetch a result row as an associative, a numeric array, or both

You don't require foreach loop.

while($attributes_list=mysqli_fetch_array($attribute_name_fetch )){
    echo $attributes_list['attribute_name']
}

You have 2 loops there - the while and foreach. Try:

<?php 
$attribute_name_fetch = mysqli_query($con,"SELECT `attribute_name` FROM `ps_megasearch_attributes` ORDER BY `attribute_id` DESC LIMIT 1 " );
$attributes_list=mysqli_fetch_array($attribute_name_fetch);
foreach($attributes_list as $attribute_name) {
  echo $attribute_name;
}
?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM