Jama koodijupiga:S

Algajatele mõeldud foorum. Siia võib teha kõik Linuxiga seotud teemad, mida mujale ei oska panna

Moderaator: Moderaatorid

Vasta
as1238
Uus kasutaja
Uus kasutaja
Postitusi: 13
Liitunud: 07.12.2009, 00:59

Jama koodijupiga:S

Postitus Postitas as1238 »

Et siis on jama koodiga mis näeb välja selline:
[php] $sql = $database->query('SELECT a.`dynamic_page_id`, a.`headline`, a.`comments_allowed`, (SELECT COUNT(*) FROM `nagaro_comments` WHERE `attach_to` = \'dynamic_pages\' + a.`dynamic_page_id`) AS `comments` FROM `nagaro_dynamic_pages` AS a ORDER BY '.$order.' '.$pages->return_limit()); [/php]
Et siis põhjendus ka nüüd:
Mysql andmebaasis on 2 erinevat tabelit 1 on nagaro_comments teine nagaro_dynamic_pages.
Probleem on selles, et see koodijupp näitab kommentaaride arvu 0 kuigi kommentaare on 3.
Teeme nüüd näite.. Attach_to-s on (3) dynamic_pages1 (1 on lehe id, mis on nagaro_dynamic_pages tabelis ja dynamic_page_id reas) nagaro_dynamic_pages reas on dynamic_page_id mis on 1. nüüd ta peaks arvutama kokku mitu sellise id-ga (dynamic_pages1) nagaro_comments-is on..peaks olema 3 aga 0. Loodan, et oli arusaadav
Natukene pilte ka
Pilt
Pilt
pealeht mis on id 1. seal on 0 mis peaks olema 3.
Pilt
Kas keegi tore oskab ulatada abistava käe ja öelda mis viga?
aldo
Uus kasutaja
Uus kasutaja
Postitusi: 7
Liitunud: 13.09.2008, 21:47

Postitus Postitas aldo »

[php]<?php $sql = $database->query('SELECT a.`dynamic_page_id`, a.`headline`, a.`comments_allowed`, (SELECT COUNT(*) FROM `nagaro_comments` WHERE `attach_to` = \'dynamic_pages\' + a.`dynamic_page_id`) AS `comments` FROM `nagaro_dynamic_pages` AS a ORDER BY '.$order.' '.$pages->return_limit()); ?>[/php]

Ma pakun välja, et see a.`dynamic_page_id` selle koha peal ei saa endale praegu mingit väärtust.
as1238
Uus kasutaja
Uus kasutaja
Postitusi: 13
Liitunud: 07.12.2009, 00:59

Postitus Postitas as1238 »

Aga mis nipiga ma saaks anda talle väärtuse?... proovisin ka nii, et tõstsin selle + a.`dynamic_page_id` AS ette aga siis annab lehe id 0 asemele mitte ei tuvasta kui palju kommentaare on:S [glow=red]NII-->[/glow]
[php]$sql = $database->query('SELECT a.`dynamic_page_id`, a.`headline`, a.`comments_allowed`, (SELECT COUNT(*) FROM `nagaro_comments` WHERE `attach_to` = \'dynamic_pages\' `) + a.`dynamic_page_id` AS `comments` FROM `nagaro_dynamic_pages` AS a ORDER BY '.$order.' '.$pages->return_limit()); [/php]
viljaste
Uus kasutaja
Uus kasutaja
Postitusi: 3
Liitunud: 21.04.2008, 00:36

Postitus Postitas viljaste »

Ehk piisab, kui string luua CONCAT() funktsiooni abil?

[php]<?php $sql = $database->query('SELECT a.`dynamic_page_id`, a.`headline`, a.`comments_allowed`, (SELECT COUNT(*) FROM `nagaro_comments` WHERE `attach_to` = CONCAT(\'dynamic_pages\', a.`dynamic_page_id`)) AS `comments` FROM `nagaro_dynamic_pages` AS a ORDER BY '.$order.' '.$pages->return_limit()); ?>[/php]
as1238
Uus kasutaja
Uus kasutaja
Postitusi: 13
Liitunud: 07.12.2009, 00:59

Postitus Postitas as1238 »

viljaste kirjutas:Ehk piisab, kui string luua CONCAT() funktsiooni abil?

[php]<?php $sql = $database->query('SELECT a.`dynamic_page_id`, a.`headline`, a.`comments_allowed`, (SELECT COUNT(*) FROM `nagaro_comments` WHERE `attach_to` = CONCAT(\'dynamic_pages\', a.`dynamic_page_id`)) AS `comments` FROM `nagaro_dynamic_pages` AS a ORDER BY '.$order.' '.$pages->return_limit()); ?>[/php]
Viljaste aitäh sulle:) Tänu sinule sai probleem lahendatud.
priit
Vana Pingviin
Vana Pingviin
Postitusi: 521
Liitunud: 04.08.2005, 03:00

Postitus Postitas priit »

Ausalt öeldes arvan, et peaksid oma tabelid pigem üle vaatama:
comment_id -> id
dynamic_page_id -> id
attach_to -> dynamic_page_id
ja pole mingit CONCATi vaja ning tabelid palju puhtamad. Sellest nagaro_ algusest ja dynamic_pages lihtsalt pages asemel ma ei hakka rääkimagi :)
Võib-olla on hea põhjus ...
Vasta