• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jakoś kodu PHP

Object Storage Arubacloud
0 głosów
265 wizyt
pytanie zadane 21 maja 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)

Cześć.

Mam pytanie odnośnie który kod lepiej wygląda?Z użyciem ajaxa czy też nie.

Opcja I

 <main>
        <article>
            <div data-ng-view class='appView'>
                <div>
                    <?php
                    session_start();
                    $wiersze = $_SESSION['wiersze'];
                    foreach ($wiersze as $wiersz){
                        echo "<div>$wiersz[1]</div>";
                    }
                    ?>
                </div>
            </div>
        </article>
    </main>
class DownloadNews
{
    function __construct()
    {
        session_start();
        require_once 'config/bazaDanych.php';
        $metoda = $polaczenie -> query("SELECT * FROM newsletter");
        $wiersze = $metoda -> fetch_all();
        $_SESSION['wiersze']=$wiersze;
        mysqli_close($polaczenie);
    }
}
$ObjectDownloadNews = new DownloadNews();

Opcja II

class DownloadNews
{
    function __construct()
    {
        session_start();
        require_once 'config/bazaDanych.php';
        $metoda = $polaczenie -> query("SELECT * FROM newsletter");
        $wiersze = $metoda -> fetch_all();
        $_SESSION['wiersze']=$wiersze;
        foreach ($wiersze as $wiersz){
            echo "<div>$wiersz[1]</div>";
        }
        mysqli_close($polaczenie);
    }
}
$ObjectDownloadNews = new DownloadNews();
window.onload = downloadcontetn;
function downloadcontetn() {
    $(document).ready(function () {
        $.ajax({
            url: "DownloadNews.php",
            type: "post",
            success: function (tablica) {
                $("#nius").html(tablica);
            },
        });
    });
}

 

1
komentarz 21 maja 2019 przez adrian17 Ekspert (344,860 p.)
Oba nie mają zbytnio sensu. Dlaczego konstruktor wypluwa HTMLa przez `echo` lub edytuje sesję?
komentarz 21 maja 2019 przez michal_php Stary wyjadacz (13,700 p.)
A jak porządnie to wykonać ?
komentarz 21 maja 2019 przez adrian17 Ekspert (344,860 p.)
Tak na oko: `require` na górze, potem sesja, jeden blok kodu (funkcja) wyciąga listę newsletterów i zwraca, drugi blok kodu bierze i generuje HTMLa.
komentarz 21 maja 2019 przez michal_php Stary wyjadacz (13,700 p.)
<?php

//require_once 'config/bazaDanych.php';
session_start();

class DownloadNews
{
    function __construct()
    {
        require_once 'config/bazaDanych.php';
        $metoda = $polaczenie -> query("SELECT * FROM newsletter");
        $wiersze = $metoda -> fetch_all();
        $this->createResponse($wiersze);
        mysqli_close($polaczenie);
    }
    function createResponse($wiersze)
    {
        foreach ($wiersze as $wiersz){
            echo "<div class='col-4 ml-3 bg-news mt-5'>
                    <div class='text-center'>$wiersz[1]</div>
                    <div class='text-center'>$wiersz[2]</div>
                    <div class='text-center'>$wiersz[3]</div>
                    <div class='text-center'>$wiersz[4]</div>
                    <div class='text-center'>$wiersz[6]</div>
                </div>";
        }
    }
}
$ObjectDownloadNews = new DownloadNews();

Coś takiego rozumiem ? Tylko jak daje na górę require to wypluwa błędy , że nie może się połączyć z bazą danych 

komentarz 21 maja 2019 przez adrian17 Ekspert (344,860 p.)

Tylko jak daje na górę require to wypluwa błędy , że nie może się połączyć z bazą danych 

Czemu połączenie bierze się z zewnętrznego pliku? To strasznie dziwnie wygląda.

No i nadal konstruktor nie jest ani trochę miejscem na robienie takich rzeczy. Jak nie ma dobrego powodu by była klasa, po prostu napisz funkcję.

-1
komentarz 21 maja 2019 przez michal_php Stary wyjadacz (13,700 p.)
przeniesione 24 maja 2019 przez Arkadiusz Waluk
Jeśli mógłbym poprosić to jak to za tatem poprawnie to napisać ?
komentarz 24 maja 2019 przez dawid6512 Gaduła (4,550 p.)
stwórz funkcję w klasie, konstruktora używaj do np. pobrania danych użytkownika z bazy danych, a np. zmiana hasła to funkcja.

1 odpowiedź

0 głosów
odpowiedź 21 maja 2019 przez Ehlert Ekspert (212,670 p.)

Żaden z tych przykładów nie wygląda dobrze. Te obiekty mają masę odpowiedzialności i wszystko w konstruktorze. sad

komentarz 21 maja 2019 przez michal_php Stary wyjadacz (13,700 p.)

A jeśli przerobie klasę i wywalę z niej całą :

public function createResponse($wiersze)

To będzie to już poprawnie ?

komentarz 21 maja 2019 przez Ehlert Ekspert (212,670 p.)
To niestety nic nie zmieni.
komentarz 21 maja 2019 przez michal_php Stary wyjadacz (13,700 p.)
To jak zatem napisać aby było poprawnie , bo czytam właśnie oop i już nic nie kumam.
komentarz 21 maja 2019 przez michal_php Stary wyjadacz (13,700 p.)

Chyba rozumiem , chodzi o to aby nic nie exportować z klasy które ja mam tylko lepiej w pliku index.php je zaimplementować require i użyć tych zmiennych.czy dobrze kumam ?

Podobne pytania

0 głosów
1 odpowiedź 447 wizyt
pytanie zadane 9 października 2016 w JavaScript przez elik1028 Użytkownik (950 p.)
0 głosów
2 odpowiedzi 835 wizyt
pytanie zadane 12 marca 2018 w PHP przez damian9901 Bywalec (2,140 p.)
0 głosów
1 odpowiedź 293 wizyt
pytanie zadane 2 maja 2017 w PHP przez Maciejf Początkujący (470 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...