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

Jakoś kodu PHP

VPS Starter Arubacloud
0 głosów
250 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,100 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,100 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,100 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,630 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,630 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ź 443 wizyt
pytanie zadane 9 października 2016 w JavaScript przez elik1028 Użytkownik (950 p.)
0 głosów
2 odpowiedzi 830 wizyt
pytanie zadane 12 marca 2018 w PHP przez damian9901 Bywalec (2,140 p.)
0 głosów
1 odpowiedź 285 wizyt
pytanie zadane 2 maja 2017 w PHP przez Maciejf Początkujący (470 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...