Portál AbcLinuxu, 19. dubna 2024 01:03


Dotaz: Onjasnění kódi v metodě třídy v PHP

28.4.2014 18:54 Jan
Onjasnění kódi v metodě třídy v PHP
Přečteno: 278×
Odpovědět | Admin
Ahoj, rozebíram tady jeden příklad, a nevím, co to je ten "amount_of_songs" v returnu. Poradí mi někdo? Děkuji
public function getAmountOfSongs() {
  $sql = "SELECT COUNT(id) AS amount_of_songs FROM song";
  $query = $this->db->prepare($sql);
  $query->execute();
  return $query->fetch()->amount_of_songs;
}
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.4.2014 19:05 kozzi11
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je to pocet zaznamu v tabulce song, vzdyt to tam mas hned v druhem radku v dotazu
28.4.2014 19:06 kozzi11
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP
Proste je to vysledek toho sql dotazu, jelikoz tam mas receno vrat pocet zaznamu (count(id)) pod nazvem amount_of_songs
28.4.2014 19:35 Jan
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP
Ano to vím, ale co to je? Proměnná nebo co přesně to je je? Jde to zapsat i jinak abych to pochopil ? Díky
28.4.2014 21:03 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP

No podle zápisu je to property(proměnná) vráceného objektu.

Jinak:

 …
  $RowObject = $query->fetch();
  return $RowObject->amount_of_songs;
}

OT: Nový notebook?

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
28.4.2014 21:47 Jan
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP
Stále nerozumím :-(

OT: Nový notebook?

Co?
FrostyX avatar 28.4.2014 21:54 FrostyX | skóre: 27 | blog: Frostyho_blog | Olomouc
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP
Tak ti nezbývá nic jiného, než se naučit alespoň základy OOP, SQL a databází, když už do toho děláš.
FrostyX.cz | 1984 was not supposed to be an instruction manual.
28.4.2014 23:41 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP

A kterému slovu nerozumíš?

OT: No píšeš o písmenko vedle a to je obvykle jinou klávesnicí, no a na ntb je většinou něco jiného než normální klávesnice.

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
29.4.2014 12:15 Jan
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP

A kterému slovu nerozumíš?

No napsal jsi mi ekvivalent co vrací ta metoda..
$RowObject = $query->fetch();
  return $RowObject->amount_of_songs;
ale pořád nevím co je to ten "amount_of_songs". Mám to prostě brát, že tam musí být něco napsáno?
return $RowObject->amount_of_songs;
return $RowObject->of_songs;
return $RowObject->songs;
return $RowObject->var;
Vždy to bude fungovat nebo se ten zápis k něčemu váže? Díky

PS: Ano, zásah, bych nevěřil jak někdo dokáže číst mezi řádky...
29.4.2014 12:18 kozzi11
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP
nee, ta property se jmenuje podle toho vysledku SQL dotazu.
29.4.2014 12:18 kozzi11
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP
neboli: $sql = "SELECT COUNT(id) AS amount_of_songs FROM song"; return $RowObject->amount_of_songs;

$sql = "SELECT COUNT(id) AS of_songs FROM song"; return $RowObject->of_songs; ...
29.4.2014 12:58 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP
Je tam vazba mezi atributem a názvem sloupce v SQL dotazu. Zkus najít, co jsem přejmenoval.
public function getAmountOfSongs() {
  $sql = "SELECT COUNT(id) AS amount FROM song";
  $query = $this->db->prepare($sql);
  $query->execute();
  return $query->fetch()->amount;
}
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
29.4.2014 13:30 Jan
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP
Přejmenoval jsi název sloupce v mysql ?
29.4.2014 13:41 kozzi11
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP
Ne doslova, spis mu jen pridelil alias pod kterym se vrati ten vysledek, samotny sloupec v databazi zustane stale stejne pojemnovany
29.4.2014 14:57 Jan
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP
Už tomu rozumím, díky moc !
29.4.2014 14:28 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP
Žádný sloupec jsem nepřejmenoval. V tabulce přece sloupec `amount` není.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
29.4.2014 13:54 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP
Nějak (nepřesně) takto:

SELECT COUNT(id) AS amount_of_songs FROM song;
=> Vyber „počet id“ a vrať to jako „amount_of_songs“ a vyber to z tabulky „song“

$query = $this->db->prepare($sql);
=> Připrav dotaz a přiřaď mi objekt do „$query“

$query->execute();
=> Proveď sql příkaz, předpřipravený v „$query“

$RowObject = $query->fetch();
=> Vyber řádek s výsledku dotazu a přiřaď jej do $RowObject.

return $RowObject->amount_of_songs;
=> Vrať z fce proměnou „amount_of_songs“ (patřící a jsoucí v) objektu $RowObject.

$RowObject bude něco jako dynamicky definovaná třída:

class TRow{
  /* integer */
  public amount_of_songs;
}
a jeho property se dynamicky vytvoří z názvů sloupců vrácené s SQL dotazu.

Pokud bude dotaz: SELECT id AS personid, name, weight FROM people; Tak to bude asi takto:

class TRow{
  /* integer */
  public personid;
  /* string */
  public name;
  /* number */
  public weight;
}
tedy ...
$RowObject = $query->fetch();
print 'Person ID: ',$RowObject->personid,
; print ' Name: ',$RowObject->name,
; print ' Weight: ',$RowObject->weight,
;

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
29.4.2014 14:58 Jan
Rozbalit Rozbalit vše Re: Onjasnění kódi v metodě třídy v PHP
Velké díky za příklad, musím si ho pořádně rozebrat... ;-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.