Dear all,
first of all, phprunner is a great program, i'm testing it since some days, and it is very easy to handle.
But unfortunately I have one question about using unions in the select statement.
Here is my select statement (my original table is mysql.stunden because there I have the most queries)
[codebox]select
mitarbeiter.Stammnummer,
mitarbeiter.Nachname, dayname(stunden.datum) AS Tag,
stunden.Datum As Datum,
@Kategorie:='Arbeitstag' AS Kategorie,
@von:='---' AS von,
@bis:='---' AS bis,
@Gesamtstunden:='---' AS Gesamtstunden, --> here I have a special query to calculate hours (depends on the mysql.stunden table)
@Reisezeit:='---' As Reisezeit,
@Reiseoption:='---' As Reiseoption,
@Ueberstunden:='---' As Ueberstunden, --> special query
@Zuschlag25:='---' AS 'Zuschlag 25%', --> special query
@Zuschlag50:='---' AS 'Zuschlag 50%', --> special query
@Zuschlag70:='---' As 'Zuschlag 70%' --> special query
from mysql.mitarbeiter, mysql.stunden, mysql.kalender
where kalender.datum=stunden.datum and stunden.Stammnummer=mitarbeiter.Stammnummer
union
select
mitarbeiter.Stammnummer,
mitarbeiter.Nachname, dayname(ueberstunden.datum) AS Tag,
ueberstunden.Datum As Datum,
@Kategorie:='Überstunden abgefeiert' AS Kategorie,
@von:='---' AS von,
@bis:='---' AS bis,
@Gesamtstunden:='---' AS Gesamtstunden,
@Reisezeit:='---' As Reisezeit,
@Reiseoption:='---' As Reiseoption,
@Ueberstunden:='---' As Ueberstunden,
@Zuschlag25:='---' AS 'Zuschlag 25%',
@Zuschlag50:='---' AS 'Zuschlag 50%',
@Zuschlag70:='---' As 'Zuschlag 70%'
from mysql.kalender, mysql.ueberstunden, mysql.mitarbeiter
where kalender.datum=ueberstunden.datum and ueberstunden.Stammnummer=mitarbeiter.Stammnummer
union
select
mitarbeiter.Stammnummer,
mitarbeiter.Nachname, dayname(krankheit.datum) AS Tag,
krankheit.Datum As Datum,
@Kategorie:='Krankheit',
@von:='---' AS von,
@bis:='---' AS bis,
@Gesamtstunden:='---' AS Gesamtstunden,
@Reisezeit:='---' As Reisezeit,
@Reiseoption:='---' As Reiseoption,
@Ueberstunden:='---' As Ueberstunden,
@Zuschlag25:='---' AS 'Zuschlag 25%',
@Zuschlag50:='---' AS 'Zuschlag 50%',
@Zuschlag70:='---' As 'Zuschlag 70%'
from mysql.kalender, mysql.krankheit,mysql.mitarbeiter
where (kalender.datum=krankheit.datum and mitarbeiter.Stammnummer=krankheit.Stammnummer)
union
select
mitarbeiter.Stammnummer,
mitarbeiter.Nachname,dayname(feiertage.Feiertag) AS Tag,
feiertage.Feiertag As Datum,
@Kategorie:='Feiertag' As Kategori,
@von:='---' AS von,
@bis:='---' AS bis,
@Gesamtstunden:='---' AS Gesamtstunden,
@Reisezeit:='---' As Reisezeit,
@Reiseoption:='---' As Reiseoption,
@Ueberstunden:='---' As Ueberstunden,
@Zuschlag25:='---' AS 'Zuschlag 25%',
@Zuschlag50:='---' AS 'Zuschlag 50%',
@Zuschlag70:='---' As 'Zuschlag 70%'
from mysql.feiertage, mysql.mitarbeiter
where feiertage.Feiertag < '2008-01-01'
union
select
mitarbeiter.Stammnummer,
mitarbeiter.Nachname, dayname(kalender.datum) AS Tag,
kalender.Datum AS Datum,
@Kategorie:='Urlaub' As Kategorie,
@von:='---' AS von,
@bis:='---' AS bis,
@Gesamtstunden:='---' AS Gesamtstunden,
@Reisezeit:='---' As Reisezeit,
@Reiseoption:='---' As Reiseoption,
@Ueberstunden:='---' As Ueberstunden,
@Zuschlag25:='---' AS 'Zuschlag 25%',
@Zuschlag50:='---' AS 'Zuschlag 50%',
@Zuschlag70:='---' As 'Zuschlag 70%'
from mysql.kalender, mysql.mitarbeiter, mysql.urlaub
where (kalender.datum between urlaub.von and urlaub.bis) and mitarbeiter.Stammnummer=urlaub.Stammnummer
order by Datum;[/codebox]
That query works fine if I run it in mysql. It is also running with phprunner in the xxx_list.php opening the first time as admin.
The security for that xx_list. site is so, that everyone can only see his own data. So when somebody else opens the xxx_list page
he get's an error message because LoginID (login table) and Id of the mysql.stunden table is not correct (because it's not only the id from mysql.stunden, but also from mysql.ueberstunden, mysql.krankheit and so on)
Also when I use the search functions one the search page (i'm searching for name, id and date), I get error messages.
error type 256
Unknown column 'stunden.Datum' in 'where clause'
The search fields are the fields from the original table mysql.stunden and not matching with the table view I create with the union statement, I guess.
Maybe you have some hints for me?
Thanks a lot for you help.
Janina