Oznámení
Omlouváme se, provoz fóra byl ukončen
Skládání podmínky pro dotaz
Upozornění: Tohle vlákno je hodně staré.
před 6 lety
- Hedgexu
- Člen | 12
Funguje správně pokud $_SESSION[‚user_year_id‘] != 0, jinak vypíše všechny řádky a ignoruje Subject.id = %i', $subject
<?php
->from('Subject')
->join('Year')->on('Year.id = Subject.year_id')
->join('Field')->on('Field.id = Subject.field_id')
->where('Subject.id = %i', $subject)
->where('Subject.year_id = %i', $_SESSION['user_year_id'])->or($_SESSION['user_year_id'],' = %i', 0)
->where('Subject.field_id = %i', $_SESSION['user_field_id'])->or($_SESSION['user_field_id'],' = %i', 0)
->fetchAll();
?>
Funguje správně pokud $_SESSION[‚user_year_id‘] == 0, jinak vypíše všechny řádky a ignoruje Subject.id = %i', $subject
<?php
->from('Subject')
->join('Year')->on('Year.id = Subject.year_id')
->join('Field')->on('Field.id = Subject.field_id')
->where('Subject.year_id = %i', $_SESSION['user_year_id'])->or($_SESSION['user_year_id'],' = %i', 0)
->where('Subject.field_id = %i', $_SESSION['user_field_id'])->or($_SESSION['user_field_id'],' = %i', 0)
->where('Subject.id = %i', $subject)
->fetchAll();
?>
Měli by platit tyto podmínky:
<?php
1. where('Subject.id = %i', $subject)
2. where('Subject.year_id = %i', $_SESSION['user_year_id'])nebo($_SESSION['user_year_id'],' = ', 0)
3. where('Subject.field_id = %i', $_SESSION['user_field_id'])nebo($_SESSION['user_field_id'],' = ', 0)
?>
Jak upravitkód, aby fungovalo správně?
Editoval Hedgexu (18. 3. 2013 12:00)
před 6 lety
- Hedgexu
- Člen | 12
Opraveno no:
<?php
if ($_SESSION['user_year_id'] != 0)
{
$query = dibi::select('Subject.name')
->select('Field.code')
->select("Field.name")->as('Fname')
->select('Year.year')
->from('Subject')
->join('Year')->on('Year.id = Subject.year_id')
->join('Field')->on('Field.id = Subject.field_id')
->where('Subject.id = %i', $subject)
->where('Subject.year_id = %i', $_SESSION['user_year_id'])
->where('Subject.field_id = %i', $_SESSION['user_field_id'])
->fetchAll();
}
else
{
$query = dibi::select('Subject.name')
->select('Field.code')
->select("Field.name")->as('Fname')
->select('Year.year')
->from('Subject')
->join('Year')->on('Year.id = Subject.year_id')
->join('Field')->on('Field.id = Subject.field_id')
->where('Subject.id = %i', $subject)
->fetchAll();
}
?>
Pokud skládám příkaz pomocí where nefunguje fetchAll() takže to mám takhle blbě duplicitně.
Editoval Hedgexu (18. 3. 2013 12:57)