当数据库中有2个以上的对象时,我的代码不起作用

时间:2019-01-09 08:22:46

标签: mysql reactjs api fetch

我是React.js的新手,从数据库中拾取对象时我需要一些帮助。 我有一个API可以从我的mysql数据库中获取数据,当我在数据库中有sportid='26'的2个以上的对象时,我得到了这个。

  

“未处理的拒绝(SyntaxError):JSON输入意外结束”。

如果它是一个或两个对象,那就完美了。

有人可以告诉我为什么?

import React, { Component } from 'react';
import Popup from './Popup';

class Riding extends Component {

    constructor(props) {
        super(props);
        this.state = {
          data: null,
          clicked: false,
          open: false,
        };
        this.togglePopup = this.togglePopup.bind(this);
    }

    togglePopup() {
        this.setState(state => ({
            clicked: true
        }));
    }



    componentDidMount() {

        let data = fetch('http://localhost/reusesport/src/api/riding.php')
            .then((res) => {
                res.json().then((res) => {
                    console.log(res);
                    this.setState({data:res})
                })
            })


    }

    render() {
      return (
        <div>
            <h1 className="Advertisment_title">Ridsport</h1>
            <div className="Advertisment">
              {
                    this.state.data ?
                    this.state.data.map((item) =>
                    <div className="AdvertismentBox"  onClick={this.togglePopup}>
                     {this.state.clicked ? <Popup id={item.id} title={item.title} text={item.text} date={item.date} price={item.price} municipality={item.municipality} county={item.county}/> : null}
                    <h3 className="AdvertismentBox_title">{item.title}</h3>
                    <img src={item.picture} alt={item.title}/>
                    <h3 className="AdvertismentBox_price">{item.price}</h3>
                    <h3 className="AdvertismentBox_date">{item.date}</h3>
                    <h3 className="AdvertismentBox_county">{item.county}</h3>
                    </div>
                )
                    :
                    <h3>Vänta - datat hämtas</h3>
                }
            </div>    
        </div>
    );
  }
}

export default Riding;

我的API:

<?php
header('Access-Control-Allow-Origin: *');
header("Content-Type:application/json");

include("connect.php");


$sql = "SELECT * FROM `advertisment` WHERE sportid='26'";

$result = $connect ->query($sql);
$return_arr = array();

if($result = mysqli_query($connect, $sql))  {
    while($row = mysqli_fetch_assoc($result)) {
        $row_array['id'] = $row['id'];
        $row_array['title'] = $row['title'];
        $row_array['picture'] = $row['picture'];
        $row_array['price'] = $row['price'];
        $row_array['date'] = $row['date'];
        $row_array['county'] = $row['county'];
            array_push($return_arr, $row_array);
    }
}    
mysqli_close($connect);
echo json_encode($return_arr);
?>

0 个答案:

没有答案