Estoy tratando de extraer datos de la base de datos SQL que coinciden con el año y el mes de entrada. A continuación se muestra el código para la consulta SQL
<?php
class SelectAMonthGet extends ConnectDB {
var $year;
var $month ;
function __construct($n){
$this->year = $_POST['year'];
$this->month = $_POST['AnalyzeEnterAreaMonth'];
}
function SelectAMonthGetData(){
$sql = "SELECT * FROM wp_myexpenses WHERE YEAR(date) = '$year' AND MONTH(date) = '$month' order by date,id";
$result = $this->connect()->query($sql);
$numRows = $result->num_rows;
if($numRows > 0) {
while ($row = $result->fetch_assoc()){
$data[] = $row;
}
return $data;
}
}
}
?>
Una función connectdb contiene mi conexión de base de datos y estoy ampliando esa función para esta consulta SQL. Pero de alguna manera, el código no reconoce las variables $ _POST $ año y $ mes. El código anterior no da ningún resultado.
Traté de cambiar la consulta SQL a
$sql = "SELECT * FROM wp_myexpenses WHERE YEAR(date) = '2019' AND MONTH(date) = '1' order by date,id";
y el código funciona bien. No estoy seguro de por qué el código no funciona cuando menciono la variable. ¿Alguien puede guiarme aquí?
En su código $year
y $month
se declaran como una variable de clase y, por lo tanto, puede acceder a ellos usando $this->
(ver constructor).
Pero en su función SelectAMonthGetData
en su consulta, los está usando sin ellos this
y, por lo tanto, no eran accesibles. Para resolver este problema, puede utilizar:
$sql = "SELECT * FROM wp_myexpenses WHERE YEAR(date) = '$this->year' AND MONTH(date) = '$this->month' order by date,id";
O
$year = $this->year; $month = $this->month;
$sql = "SELECT * FROM wp_myexpenses WHERE YEAR(date) = '$year' AND MONTH(date) = '$month' order by date,id";
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras