Afisare numar cel mai mare dintr o coloana

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
ddorel
Mesaje: 14

Afisare numar cel mai mare dintr o coloana

Bună Marplo
Vreau să extrag din coloan "pret" cel mai mare numar ca de exemplu 4444.
Mie imi afisează 54 în loc de 4444, dacă în loc de 4444 modific in 6444 atunci se afișează corect

SQL

Cod: Selectaţi tot

id    name     pret
1     rsd         126
2     sdf         14
3     dfgg       4444
4     ewe       54
5     eer        32
6     rerg       23
PHP

Cod: Selectaţi tot

$sql = "SELECT MAX(pret) as val_max FROM users";					   
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
  while($row = mysqli_fetch_assoc($result)) {
  echo   $ddd = $row["val_max"];//54
	//var_dump($ddd);
  }
} else {
  echo "0 results";
}

MarPlo
Incearca aceasta instructiune sql:

Cod: Selectaţi tot

$sql = "SELECT pret FROM users ORDER BY pret DESC LIMIT 1";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
  while($row = mysqli_fetch_assoc($result)) {
    $ddd = $row['pret'];
    echo $ddd;
	//var_dump($ddd);
  }
}
else echo "0 results";

ddorel
Tot 54 il vede mai mare, am verificat si in baza de date sa nu existe spatii intre numere, folosesc versiunea php 7.3.21 si mysql 5.7.31

MarPlo
Nu stiu de ce la tine nu merge.
Am facut in PhpMyadmin un tabel de test cu codul de mai jos:

Cod: Selectaţi tot

CREATE TABLE `usr` (
  `id` int(11) NOT NULL,
  `nume` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL,
  `pret` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `usr` (`id`, `nume`, `pret`) VALUES
(1, 'red', 126),
(2, 'sdf', 13),
(3, 'dfgg', 4444),
(4, 'ewe', 54),
(5, 'eer', 32),
(6, 'rerg', 23);

ALTER TABLE `usr`ADD PRIMARY KEY (`id`);

ALTER TABLE `usr`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
COMMIT;
Am testat ambele comenzi sql, tot in PhpMyAdmin, si rezultatul a fost corect: 4444.

Cod: Selectaţi tot

SELECT pret FROM usr ORDER BY pret DESC LIMIT 1

ddorel
Am schimbat `pret` varchar(20) DEFAULT NULL in `pret` int(11) NOT NULL ca la tine si merge.
Multumesc

Subiecte similare