Как использовать GROUP BY ORDER BY WHERE вместе с GET в PHP?

#php #mysql #post #get #where

#php #mysql #Публикация #получить #where-предложение

Вопрос:

Я пытаюсь создать документ отчета о продажах с использованием php и подключить его из базы данных mysql.
Как я могу использовать where group by order (запрос mysql) с помощью метода PHP get?
Я мог бы просто использовать SELECT и WHERE, но как добавить GROUP BY и УПОРЯДОЧИТЬ ПО запросу?

 $date=$_GET['date'];
$query=mysql_query("select * from product_sold where date=" . $date);
while($lihat=mysql_fetch_array($query)){
    $pdf->Cell(1, 0.8, $no , 1, 0, 'C');
    $pdf->Cell(3, 0.8, $lihat['date'],1, 0, 'C');
    $pdf->Cell(6, 0.8, $lihat['product'],1, 0, 'C');
    $pdf->Cell(3, 0.8, $lihat['quantity'], 1, 0,'C');
    $pdf->Cell(4, 0.8, "Rp. ".number_format($lihat['price'])." ,-", 1, 0,'C');
  

Комментарии:

1. dev.mysql.com/doc/refman/8.0/en/select.html

2. Это базовый SQL и на самом деле не имеет ничего общего с PHP

3. w3schools.com/sql/sql_groupby.asp

4. … НО ваше взаимодействие с PHP оставляет желать лучшего. Не используйте mysql_ функции, не вводите пользовательский ввод в SQL и не заключайте строки в кавычки.

5. В чем именно проблема? Есть ли что-нибудь, что не работает с данным кодом?

Ответ №1:

Вы используете GROUP BY и ORDER BY в конце ваших операторов sql, подобных этому…

 "SELECT * FROM table WHERE date = $date ORDER BY desiredCategory "
  

Кроме того, вам ДЕЙСТВИТЕЛЬНО нужно использовать подготовленные операторы. Вы ШИРОКО ОТКРЫТЫ для атак sql-инъекций, как вы это делаете.

Подробнее о GROUP BY

Подробнее о ORDER BY
Подробнее о подготовленных операторах

Ответ №2:

Вы можете добавить GROUP BY после фильтров WHERE, затем вы можете добавить ORDER BY .

 SELECT *
FROM product_sold
WHERE date = '$date'
GROUP BY id
ORDER BY product ASC
  

И будьте в курсе sql-инъекций, как сказал @jtylerm.