Проблема с PUT, переделать все таблицы ReactJs - PullRequest
0 голосов
/ 20 февраля 2020

Я хотел бы объяснить мою проблему дня.

В следующем коде все работает правильно.

к сожалению, когда я PUT, это изменяет все таблицы в моей базе данных.

Я бы хотел, чтобы это изменило только таблицу, на которой я делаю мой пут

 import React, { Component } from 'react';
 import { CardText, Card, Row, Col, Button } from 'reactstrap';

 const entrypoint = process.env.REACT_APP_API_ENTRYPOINT + '/api';

 class AdminPage extends Component {

 constructor(props) {
 super(props);
 this.state= {
 data: [],
 } 
 handleSubmit = (e) => {
 e.preventDefault();
 const config = {
  method: "PUT",
  headers: {
    "Content-Type": "application/json",
  },
  body: JSON.stringify({livree: new Date().toISOString().slice(11,16)}),
 };

  const url = entrypoint + "/alluserpls";
  fetch(url, config)
  .then(res => res.json())
  .then(res => {
    if (res.error) {
      alert(res.error);
    } else {
      alert(`ajouté avec l'ID ${res}!`);
    }
  }).catch(e => {
    console.error(e);

    }).finally(() => this.setState({ redirect: true }));
 }
 getRandom = async () => {

const res = await axios.get(
  entrypoint + "/alluserpls"
)
this.setState({ data: res.data })
}
componentDidMount() {
this.getRandom()
 }

 render() {

 let datas = this.state.data.map((datass, index) => {
   return (
    <div >
      <Col sm="12" key={index} className="wtfFuHereIsForOnlyBackGroundColorForCol12Nice">
                <form onSubmit={this.handleSubmit}>
      <button type="submit">Add</button>
      </form>
              </Button>
              <CardText className="cardTextForAdminPageForDataName"> Commande de 
              {datass.name}</CardText>
              <Col sm="6">
                <CardText>{datass.alertStyle} </CardText>
              </Col>
      </ Col>
      </div>
     )
   })
  return (
       <div>
          {datas}
        </div>      
   )
 }
}
export default AdminPage

, что есть маршрут обратно

 app.put('/api/alluserpls', (req, res, ) => {
 // récupération des données envoyées
 const formData = req.body;
 connection.query('UPDATE alluserpls SET ?', formData, err => {
 if (err) {
  // Si une erreur est survenue, alors on informe l'utilisateur de 
l'erreur
  console.log(err);
  res.status(500).send("Erreur lors de la modification des users");
} else {
  // Si tout s'est bien passé, on envoie un statut "ok".
  res.sendStatus(200);
 }
});
});

Я пытался почистить как можно больше. У вас есть идея, как это исправить? Neff

1 Ответ

0 голосов
/ 20 февраля 2020

к сожалению, когда я PUT, он меняет все таблицы в моей базе данных.

Я полагаю, вы имеете в виду, что он меняет все строки вашей таблицы, а не все таблицы.

В вашей команде UPDATE нет ни одного предложения WHERE или чего-либо еще, ограничивающего ваше обновление одной строкой, что означает, что все строки обновлены

...