MySQL natijalarini raqamlash

Quyidagi MySQL-so'rovni ishlatish:

    SELECT  SUM(vg.count) AS sum, vg.code, lh.luchthavencode
    FROM 
    (
    SELECT COUNT( * ) AS COUNT, vg.vertrekluchthaven AS code
    FROM tbl_vluchtgegevens vg
    WHERE vg.vertrekdatum2 <= NOW( ) 
    GROUP BY vg.vertrekluchthaven

    UNION  

        SELECT COUNT(*) AS COUNT, vg.aankomstluchthaven AS code
        FROM tbl_vluchtgegevens vg  
        WHERE vg.vertrekdatum2 <=NOW()
        GROUP BY vg.aankomstluchthaven
    ) vg
    INNER JOIN tbl_luchthaven lh
    ON  lh.luchthavenID = vg.code
    GROUP BY vg.code
    ORDER BY sum DESC
    LIMIT 10

PHP-sahifasida ko'rsatsam, natijalarni tushunish osonroq bo'ladi, shuning uchun natijalarni qanday qilib raqamlash mumkinligini tushunishga harakat qilaman.

Misol uchun, hozirda mening natijalarim shunday bo'ladi:

Sum   |   Code  |   Luchthavencode
41        121             MSP
26        91              AMS
9         246             ORD
8         116             DTW
6         169             LHR
6         142             IAH
6         346             SYR
5         149             JFK
5         13              AKL
5         417             FRA 

Men nimani xohlasam, shunday ro'yxatga ega bo'lishni istayman:

No. |   Sum   |   Code  |   Luchthavencode
1       41        121             MSP
2       26        91              AMS
3       9         246             ORD
4       8         116             DTW
5       6         169             LHR
6       6         142             IAH
7       6         346             SYR
8       5         149             JFK
9       5         13              AKL
10      5         417             FRA 

Bu eng yaxshi MySQL-so'rov orqali yoki PHP chiqishi orqali amalga oshdimi?

Buni SELECT (@row_number: = @ row_number + 1) AS raqamiga qo'shishni sinab ko'rdim, lekin bunga o'xshash raqamlar: 45, 4, 47, 18, 34, 24, 56, 27, 2, 63

PHP chiqdi qo'shilishi uchun tahrirlangan:

while($row = mysqli_fetch_assoc($result)) {

    echo"  <table width='100px' border='0' cellpadding='1' cellspacing='1'>";
    echo "  <tbody>";
    echo "    <tr>";
    echo "      <td width='60px'>   ".$row['luchthavencode']."</td>";
    echo "      <td width='30px'>   ".$row['sum']."</td>";
    echo "    </tr>";
    echo "  </tbody>";
    echo "</table>";    
}
0
Ushbu so'rovni qayta ishlash va natijani chiqarish uchun bizga ishlatadigan PHP kodini ko'rsating
qo'shib qo'ydi muallif RiggsFolly, manba
Ushbu so'rovni qayta ishlash va natijani chiqarish uchun bizga ishlatadigan PHP kodini ko'rsating
qo'shib qo'ydi muallif RiggsFolly, manba
buning uchun tonnagacha dublikat bor, faqat php-da hisoblagich o'sishidan foydalana olmaysizmi?
qo'shib qo'ydi muallif Ghost, manba
buning uchun tonnagacha dublikat bor, faqat php-da hisoblagich o'sishidan foydalana olmaysizmi?
qo'shib qo'ydi muallif Ghost, manba
@RiggsFolly - Joriy PHP kodimni qo'shib qo'ydim. Men bir nechta narsalarni sinab ko'rish ustida ishlayapman. Lekin hozirgi kunga qadar bu juda oddiy shaklda.
qo'shib qo'ydi muallif user1794656, manba
Siz bu erdagi odamlar sizni doimo hamma narsani bilishadi. Men ko'plab Google qidiruvlarini qildim va buni tushunib olmadim. Shuning uchun men ushbu saytga keldim.
qo'shib qo'ydi muallif user1794656, manba
Siz bu erdagi odamlar sizni doimo hamma narsani bilishadi. Men ko'plab Google qidiruvlarini qildim va buni tushunib olmadim. Shuning uchun men ushbu saytga keldim.
qo'shib qo'ydi muallif user1794656, manba
Agar imkonim borligini bilsam, men savol bermagan bo'lardim.
qo'shib qo'ydi muallif user1794656, manba
Agar imkonim borligini bilsam, men savol bermagan bo'lardim.
qo'shib qo'ydi muallif user1794656, manba

6 javoblar

Men ushbu ma'lumotni o'z ichiga olgan jadvalni xohlashingizni xohlayman, shuning uchun jadvalni tuzishda xato deb hisoblagan narsamni o'rnatdim, shuningdek hisoblagich qo'shish

echo "<table width='100px' border='0' cellpadding='1' cellspacing='1'>";
echo "<tbody>";

$line = 1;

while($row = mysqli_fetch_assoc($result)) {

    echo "<tr>";
    echo "<td>$line</td>";
    echo "<td width='60px'>   ".$row['luchthavencode']."</td>";
    echo "<td width='30px'>   ".$row['sum']."</td>";
    echo "</tr>";

    $line++;
}

echo "</tbody>";
echo "</table>";    
0
qo'shib qo'ydi
Ha, bu juda yaxshi ishlaydi. Ha, jadval ham menga muammo keltirdi. Men hali PHPni qanday bajarishni o'rganyapman va xuddi mysql-larga mysql-ga ko'chirilgan narsalar bilan ish tutganim kabi, men ham qiyinchiliklarga duch kelmoqdaman. yana bir bor rahmat!
qo'shib qo'ydi muallif user1794656, manba

Men ushbu ma'lumotni o'z ichiga olgan jadvalni xohlashingizni xohlayman, shuning uchun jadvalni tuzishda xato deb hisoblagan narsamni o'rnatdim, shuningdek hisoblagich qo'shish

echo "<table width='100px' border='0' cellpadding='1' cellspacing='1'>";
echo "<tbody>";

$line = 1;

while($row = mysqli_fetch_assoc($result)) {

    echo "<tr>";
    echo "<td>$line</td>";
    echo "<td width='60px'>   ".$row['luchthavencode']."</td>";
    echo "<td width='30px'>   ".$row['sum']."</td>";
    echo "</tr>";

    $line++;
}

echo "</tbody>";
echo "</table>";    
0
qo'shib qo'ydi
Ha, bu juda yaxshi ishlaydi. Ha, jadval ham menga muammo keltirdi. Men hali PHPni qanday bajarishni o'rganyapman va xuddi mysql-larga mysql-ga ko'chirilgan narsalar bilan ish tutganim kabi, men ham qiyinchiliklarga duch kelmoqdaman. yana bir bor rahmat!
qo'shib qo'ydi muallif user1794656, manba

Agar o'zgaruvchini ishlatish kerak bo'lsa, uni tekshirishni sinab ko'ring:

SELECT
    @rowno := @rowno + 1 AS `No.`
    SUM(vg.count) AS sum,
    vg. CODE,
    lh.luchthavencode
FROM
    (
        SELECT
            COUNT(*) AS COUNT,
            vg.vertrekluchthaven AS CODE
        FROM
            tbl_vluchtgegevens vg
        WHERE
            vg.vertrekdatum2 <= NOW()
        GROUP BY
            vg.vertrekluchthaven
        UNION
        SELECT
            COUNT(*) AS COUNT,
            vg.aankomstluchthaven AS CODE
        FROM
            tbl_vluchtgegevens vg
        WHERE
            vg.vertrekdatum2 <= NOW()
        GROUP BY
            vg.aankomstluchthaven
    ) vg
INNER JOIN tbl_luchthaven lh ON lh.luchthavenID = vg.CODE
CROSS JOIN (SELECT @rowno := 0) rn
GROUP BY
    vg. CODE
ORDER BY
    sum DESC
LIMIT 10
0
qo'shib qo'ydi

bir qator qatorni olish uchun so'rovning boshida ushbu kodni ishlating

SELECT @rownum:[email protected]+1 AS rownum
0
qo'shib qo'ydi
Bu tartibni bajarishdan oldin raqamni qo'shib, natijada foydasiz bo'ladi.
qo'shib qo'ydi muallif RiggsFolly, manba
raqamlarni qaytarish qanday?
qo'shib qo'ydi muallif Judith Palacios, manba
yoki PHP-da, agar siz natijalarni chop qilsangiz, $ count = 1; foreach ($ echimlarni $ row {echo count; echo $ row ['your_columns']; $ count ++;}
qo'shib qo'ydi muallif Judith Palacios, manba
Men buni sinab ko'rdim. U ularga to'g'ri raqamlashni bermaydi.
qo'shib qo'ydi muallif user1794656, manba
Ularni bu "tartibda" 45, 4, 47, 18, 34, 24, 56, 27, 2, 63 sanaladi
qo'shib qo'ydi muallif user1794656, manba

bir qator qatorni olish uchun so'rovning boshida ushbu kodni ishlating

SELECT @rownum:[email protected]+1 AS rownum
0
qo'shib qo'ydi
Bu tartibni bajarishdan oldin raqamni qo'shib, natijada foydasiz bo'ladi.
qo'shib qo'ydi muallif RiggsFolly, manba
yoki PHP-da, agar siz natijalarni chop qilsangiz, $ count = 1; foreach ($ echimlarni $ row {echo count; echo $ row ['your_columns']; $ count ++;}
qo'shib qo'ydi muallif Judith Palacios, manba
raqamlarni qaytarish qanday?
qo'shib qo'ydi muallif Judith Palacios, manba
Ularni bu "tartibda" 45, 4, 47, 18, 34, 24, 56, 27, 2, 63 sanaladi
qo'shib qo'ydi muallif user1794656, manba
Men buni sinab ko'rdim. U ularga to'g'ri raqamlashni bermaydi.
qo'shib qo'ydi muallif user1794656, manba

bir qator qatorni olish uchun so'rovning boshida ushbu kodni ishlating

SELECT @rownum:[email protected]+1 AS rownum
0
qo'shib qo'ydi
Bu tartibni bajarishdan oldin raqamni qo'shib, natijada foydasiz bo'ladi.
qo'shib qo'ydi muallif RiggsFolly, manba
yoki PHP-da, agar siz natijalarni chop qilsangiz, $ count = 1; foreach ($ echimlarni $ row {echo count; echo $ row ['your_columns']; $ count ++;}
qo'shib qo'ydi muallif Judith Palacios, manba
raqamlarni qaytarish qanday?
qo'shib qo'ydi muallif Judith Palacios, manba
Men buni sinab ko'rdim. U ularga to'g'ri raqamlashni bermaydi.
qo'shib qo'ydi muallif user1794656, manba
Ularni bu "tartibda" 45, 4, 47, 18, 34, 24, 56, 27, 2, 63 sanaladi
qo'shib qo'ydi muallif user1794656, manba
PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin