Prihlásiť sa | Zabudnuté heslo | Registrovať

X

What is OpenID?

OpenID is an Internet-wide identity system that allows you to sign in to many websites with a single account.

With OpenID, your ID becomes a URL (e.g. http://username.myopenid.com/). You can get a free OpenID for example from myopenid.com.

For more information visit the official OpenID site.

76 príspevkov v 21 témach | 9 členov

Skok na:

Všeobecná diskusia

Ak ste na stránke prvý kát, nezabudnite sa zaegistrovať! Vďaka registrácii budete môcť aktívne vstúpiť do diskusného fóra (vytvoriť Vlákno alebo pridať príspevok do existujúceho vlákna).

Diskusné fórum » Všeobecná diskusia » sqlQuery

Strana: 1 Dole
Autor Téma: sqlQuery 2320 Views
  • Slimo
    Avatar
    Community Member
    13 posts

    sqlQuery Link to this post

    Ahojte mam problem s exportom dat do sablony... neviete kde je problem var_dump funguje ale co do sablony nic nedostanem

    public function MojeFotky() {
    $sqlQuery = new SQLQuery();
        $vlastnik = $_SESSION['Uzivatel'];
    $sqlQuery->select = array(
    'z.*','zf.*'
    );
    $sqlQuery->from=array(
    'Info AS z LEFT JOIN Fotka AS zf ON z.id= zf.FotkaID'
    );
    $sqlQuery->where=array(
           'z.Vlastnik ='. $vlastnik
    );
    $rawSQL = $sqlQuery->sql();
    $result=$sqlQuery->execute();

    foreach($result as $row){
    $return[] = $row;
    }
        echo "<pre>";
    var_dump($return);
        echo "</pre>";
        return $return;

    SS sablona

    <% control MojeFotky %>
    <span>$Meno, $Fotka<span>
    <% end_control %>

    Dakujem za pomoc

  • Pali
    Avatar
    Administrator
    80 posts

    Re: sqlQuery Link to this post

    zdravim,

    ciste arrays sa nedaju zobrazit v sablone, je potrebne vytvorit dataobjectset:

    $mf = new DataObjectSet();
    foreach($result as $row) {
    $do=new DataObject();
    $do->Meno = $Meno;
    $do->Fotka = $row;
    $mf->push($do);
    }
    return $list;
    }

    Dataobjectset-y sa vytvaraju priamo, ak pouzijes ORM, ktore silverstripe obsahuje. Ja ho pouzivam neustale, ciste SQL query pouzivam len vynimocne, priklad:

    class User extends DataObject {
    ...
    static $has_many = array(
    "Photos" => "Photo"
    );
    ...
    }

    class Photo extends DataObject {
    ...
    static $has_one = array(
    "User" => "User"
    );
    ...
    }

    class Page extends SiteTree {
    ...
    function MojeFotky() {
    $userID = "99";
    $user = DataObject::get_by_id("User",$userID);
    return $user->Photos();
    }
    ...
    }

    Samozrejme, toto je zjednoduseny priklad, len pre nazornost...

  • Slimo
    Avatar
    Community Member
    13 posts

    Re: sqlQuery Link to this post

    No upravil som kod takto

    public function MojeZvieratka() {
    $sqlQuery = new SQLQuery();
        $vlastnik = $_SESSION['Uzivatel'];
    $sqlQuery->select = array(
    'z.*','zf.*'
    );
    $sqlQuery->from=array(
    'Zvieratko AS z LEFT JOIN ZvieratkoFotka AS zf ON z.id= zf.ZvieratkoID'
    );
    $sqlQuery->where=array(
           'z.Vlastnik ='. $vlastnik
    );
    $rawSQL = $sqlQuery->sql();
    $result=$sqlQuery->execute();
          
          $mf = new DataObjectSet();
    foreach($result as $row){
    $do=new DataObject();
          $do->Meno = $Meno;
          $do->ZvieratkoID = $ZvieratkoID;
          $mf->push($do);
    }
        return $mf;
    }

    ss sablona je:

    <% control MojeZvieratka %>
    <span>$Meno $ZvieratkoID</span>
    <% end_control %>

    uz mi sice exportuje 4x ale stale mi to nenaplna hodnoty...

    nevies kde je chyba??? v tom poly sa nachadza aj $Meno a aj $ZvieratkoID

  • Pali
    Avatar
    Administrator
    80 posts

    Re: sqlQuery Link to this post

    $Meno je premenna, ktoru som tam dal len pre ilustraciu. To tam musi korespondovat s tym tvojim polom. $ZvieratkoID detto, ked uz, tak skor asi $row->ZvieratkoID resp. podobna konstrukcia.

    Stale si vsak myslim, ze pristrupovat k takemuto jednoduchemu modelu cez priame SQL queries je zbytocne a uplne to obchadza to, v com je SilverStripe taky skvely... ;)

    http://doc.silverstripe.org/sapphire/en/topics/datamodel

    Pali

  • Slimo
    Avatar
    Community Member
    13 posts

    Re: sqlQuery Link to this post

    Ide o to ze jednoducho vysvetlene:

    Mam DataObject Uzivatel,
    ten moze vytvorit DataObject Zvieratko a v tom sa daju vytvorit DataObject ZvieratkoFotka

    cize strom vyzera

    Uzivatel
    > zvieratko
    > fotka
    > fotka
    > fotka
    > fotka
    > zvieratko
    > fotka
    > fotka
    > zvieratko
    > fotka

    a potrebujem aby mi vytiahlo len uzivatelove zvieratka s fotkami.
    na to mi odporucas ORM pojde mi to?

    Dakujem pekne za ochotu

  • Pali
    Avatar
    Administrator
    80 posts

    Re: sqlQuery Link to this post

    určite to pôjde, datamodel je jednoznacny, po dev/build sa ti vytvori komplet DB struktura, pre editaciu v CMS doporucujem ComplexTabbleField resp. DataObjectManager modul:

    class Uzivatel extends DataObject {
    ..
    static $has_many = array(
    "Animals" => "Animal"
    );
    ...
    }

    class Animal extends DataObject {
    ...
    static $has_one = array(
    "Uzivatel" => "Uzivatel"
    );

    static $has_many = array(
    "Fotos" => "Foto"
    )
    ...
    }

    class Foto extends DataObject {
    ...
    statis $has_one = array(
    "Animal" => "Animal",
    "FotoFile" => "Image"
    );
    ...
    }

    2320 Views
Hore

Práve online: Nikto nie je online.

Najnovší člen fóra: WilliamFaw