Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Robin Blixter
@Blixter
@mope18 Ja, där sa du något! Tack för det tipset
Kristoffer Linder
@liiinder
Finns det något sätt för htmlform att läsa in utf-8 utan att klanta till det med åäö? :/
Eller är det sqlite som gör att det felar tro
mope18
@mope18
@liiinder testa att sätta "escape-values" till false för ditt formulär , då funkar åäö fint för mig i kombination med sqlite
Kristoffer Linder
@liiinder
Smooooth! tack! :D
Fungerade finfint :)
mope18
@mope18
gött! :thumbsup:
Kristoffer Linder
@liiinder
@mosbth finns det några exempel på inner joins i anax databasgrej? Känns som jag nu kör väldigt många frågor i onödan när man egentligen bara vill koppla post->userId med user->id för att kunna nå username och email :/
Robin Blixter
@Blixter
@liiinder antingen går du in i ActiveRecordModel och lägger till egna metoder som har inner joins. Eller så skapar du bara egna metoder i din klass som extendar ActiveRecordModel, där du använder querybuilder. Så här kan en sådan metod se ut:
        $this->checkDb();
        return $this->db->connect()
            ->select($select)
            ->from($this->tableName)
            ->orderBy($orderBy)
            ->join($joinTable, $joinOn)
            ->limit($limit)
            ->execute()
            ->fetchAllClass(get_class($this));
Kristoffer Linder
@liiinder
Oh, spännande! Får se om det blir det eller om man bara kör querybuildern rakt av :)
Mikael Roos
@mosbth
@liiinder Coolt. I normalutförandet finns inte stöd för joins. Man får göra som @Blixter säger. Snyggt.
Kristoffer Linder
@liiinder
Gjorde som @Blixter föreslog och slängde in en findAllJoin och findWhereJoin och det funkade finfint :) Känns inte som man har kommit superlångt i projektet men saker börjar ju iaf ordna upp sig :)
Mikael Roos
@mosbth
Kul att se när ni går in och modifierar i befintlig kod. Då har vi kommit "långt".
Kristoffer Linder
@liiinder
@mosbth är det en miss att config/router/100_bookController.php är skriven i camelcase och alla andra inte är det ? :)
Mikael Roos
@mosbth
Jag är rädd för att jag blandar ibland...
Kristoffer Linder
@liiinder
👍 Nu har jag dock fastnat på min findWhereJoin, använder mig av ->fetchInto som dom andra where men den returnerar ju bara den första träffen, och har kollat igenom anax\database\src\database\database.php efter något annat alternativ där jag kan få fram alla men inte lyckats hitta något vettigt :/
Kristoffer Linder
@liiinder
hmmm, har gjort två kommentarer men den får comment.Id't men första men comment.text från andra :/
Kristoffer Linder
@liiinder
Och när jag var_dumpar ett sånt active_record objekt så känns det inte som PDOStatement->queryString stämmer mot vad jag tycker den borde... Nu säger den att den kör en select * from post , men resultatet stämmer ju iaf bara att jag inte får ut alla träffar
Kristoffer Linder
@liiinder
Tycker dock fetchAllClass() borde fungera med where men icke...
Kristoffer Linder
@liiinder
select * from comment join user on user.userId = comment.userId where postId = ?; min sql-fråga fungerar som den ska iaf men fortfarande samma problem att jag inte lyckas hämta alla resultat utan det blir bara första :/ Känns inte som det finns något som passar för att få alla :/
Christian Norrman
@iFaxity
@liiinder provat SELECT * FROM comment JOIN user ON user.userId = comment.userId
Kristoffer Linder
@liiinder
Jag använder joinen utan where för att visa alla posts och skriva med username och gravatar, men vill använda where för att kunna visa alla kommentarer från den posten och where fungerar inte alls ihop med joinen
men sql satsen funkar i cygwin / sqlite3 så gissar att det är något med php pdo eller database i anax :)
Mikael Roos
@mosbth
Dubbelkolla hur den genererade SQL-satsen ser ut (och testa den i direkt i sqlite) i anax/database (finns som sträng).
Dubbelkolla hur "fetchAllClass" fungerar, vad returneras, hur hanteras parametrarna, kanske använder du metoden fel?
Kristoffer Linder
@liiinder
@mosbth vet inte hur jag ska testa den :/
eller se den genererade SQL-satsen
Kristoffer Linder
@liiinder
This message was deleted
image.png
Fick detta, när man väl la till " = ?" på den så får man ut ett objekt istället som jag inte alls förstår
Kristoffer Linder
@liiinder
Får tyvärr inte alls samma resultat (får inget alls) på studenservern
Kristoffer Linder
@liiinder
sql-satsen för $comments borde vara SELECT * FROM comment INNER JOIN user on user.userId = comment.userId where PostId = 1 och den fungerar felfritt
Kristoffer Linder
@liiinder
Enda skillnaden mellan min findAllJoin som fungerar och den som inte fungerar är where satsen och enda skillnaden på min findAllWhereJoin mot findAllWhere är join raden så tycker inte det borde förstöra det helt :/
Kristoffer Linder
@liiinder

Fattar inte alls om man kollar på active-record objectet så är $this->tableName = "Comment" , from i ActiveRecord anropet är from($this->tableName), from i QueryBuilderTrait.php är

    public function from($table)
    {
        $this->from = "FROM " . $this->prefix . $table;
        return $this;
    }

Ändå står det att $this->db->from är "FROM Post" ?

Kristoffer Linder
@liiinder
image.png
Det enda jag har kommit fram till är att båda dom får samma object(PDOStatement)[58] public 'queryString'
Men fattar inte varför så funderar på att bara skita i allt och köra en fullösning
Kristoffer Linder
@liiinder
image.png
detta fungerar tydligen men inte alls säker på varför det funkar att köra utan $res = på vissa
ohh.. nu är jag helt med dock
Mikael Roos
@mosbth
Fullösning är bra när man tröttnar på finlösningen. Men jag läser av allra sista raden att "allt verkade gå bra till slut".
Det finns en metod i querybuilderklassen som heter getSQL() så det var nog den jag tänkte man kunde använda för att se SQL-satsen.
https://github.com/canax/database-query-builder/blob/master/src/DatabaseQueryBuilder/QueryBuilderTrait.php#L44-L55
Apropå JOIN så verkar det finnas stöd för det i querybuilderklassen (något vi pratade om tidigare). Jag vill minnas att någon student i en tidigare kursomgång "tvingade" fram den koden.
https://github.com/canax/database-query-builder/blob/master/src/DatabaseQueryBuilder/QueryBuilderTrait.php#L364-L432
Kristoffer Linder
@liiinder
Japp det är den jag använder mig av :) Men missade att man var tvungen att spara ner resultatet för känns som jag har gjort det lite blandat
Tomie
@jeneljenel
Är det bara för mig som en create() i en tabell med "created" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMPinte fungerar? Får alltså "Question.created may not be NULL"
har testat att vända "created" DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL får samma fel. Kan ju såklart bara lös det men ändå.
Jimpxx
@Jimpxx
@jeneljenel Fungerade inte för mig heller, satte den manuellt när jag skapar användaren, posten eller kommentaren
Tomie
@jeneljenel
Ja störigt… :/ bör ju fungera. Men det blir något konstigt med getProperties i ActiveRecordModel gissar jag? Men ja, får bli manuellt. Tack @Jimpxx
Magnus Lj
@MagnusLj

Hej, jag håller på och försöka få det att fungera med kommandona som finns i QueryBuilderTrait, som findAllWhereJoin, men då får jag

Call to undefined method Malm18\Project\Tagsquestions::findAllWhereJoin()

Det funkar med annat, som find, findAllWhere etc. Finns det något särskilt knep man ska ta till för att kunna använda det i DatabaseQueryBuilder och QueryBuilderTrait?

Kristoffer Linder
@liiinder
den finns inte som standard
Magnus Lj
@MagnusLj
@liiinder Ok...fast filerna finns där och ActiveRecordModel har use DatabaseQueryBuilder som i sin tur har use QueryBuilderTrait
Kristoffer Linder
@liiinder
yeah