This topic is locked
[SOLVED]

 mysql crashes when open a specific view which was created by phprunner

7/3/2007 8:36:03 AM
PHPRunner General questions
J
jwasielewski author

Hi to all,
I created the following view in mysql and integrated the view as table in phprunner.

[codebox]CREATE View mysql.monatsauswertung AS

select

mitarbeiter.Stammnummer,

mitarbeiter.Nachname,

mitarbeiter.Vorname,

mitarbeiter.Kostenstelle,dayname(stunden.datum) AS Tag,

stunden.Datum As Datum,

Kalender.Periode,

'Arbeitstag' AS Kategorie,

min(stunden.anfang) AS von,

max(stunden.ende) AS bis,

if(count(stunden.Stundenanzahl)>2,

sum(Substring((stunden.Stundenanzahl),1,2)+

Format((Cast(Substring((stunden.Stundenanzahl),4,2)AS Signed))0.0166,2)),

if(count(stunden.Stundenanzahl)=2,

min(if(Substring((stunden.Stundenanzahl),1,1)not between '0' and '9',

Substring((stunden.Stundenanzahl),2,2),Substring((stunden.Stundenanzahl),1,2))+

Format((CAST(Substring((stunden.Stundenanzahl),4,2)AS SIGNED))
0.0166,2))+

max(if(Substring((stunden.Stundenanzahl),1,1)not between '0' and '9',Substring((stunden.Stundenanzahl),2,2),

Substring((stunden.Stundenanzahl),1,2))+

Format((CAST(Substring((stunden.Stundenanzahl),4,2)AS SIGNED))0.0166,2)),

if(Substring((stunden.Stundenanzahl),1,1)not between '0' and '9',Substring((stunden.Stundenanzahl),2,2),

Substring((stunden.Stundenanzahl),1,2))+if(Substring((stunden.Stundenanzahl),1,1

)not between '0' and '9',

Format((CAST(Substring((stunden.Stundenanzahl),5,2)AS SIGNED))
0.0166,2),

Format((CAST(Substring((stunden.Stundenanzahl),4,2)AS SIGNED))*0.0166,2)))) AS Gesamtstunden,

reise.Reisezeit,

reise.Reiseoption,

.....

from mysql.stunden

inner join mysql.kalender on kalender.datum=stunden.datum

inner join mysql.mitarbeiter on mitarbeiter.Stammnummer=stunden.Stammnummer

left outer join mysql.reise on reise.Stammnummer=stunden.Stammnummer and reise.Datum=stunden.Datum

where stunden.datum=stunden.datum

group by stunden.datum, stunden.Stammnummer

union

select

mitarbeiter.Stammnummer,

mitarbeiter.Nachname,

mitarbeiter.Vorname,

mitarbeiter.Kostenstelle,

dayname(ueberstunden.datum) AS Tag,

ueberstunden.Datum As Datum,

Kalender.Periode,

'Überstunden abgefeiert' AS Kategorie,

'---' AS von,

'---' AS bis,

0 AS Gesamtstunden,

'---' As Reisezeit,

'---' As Reiseoption,

if(mitarbeiter.Wochenarbeitsstunden='35',-7,if(mitarbeiter.Wochenarbeitsstunden='40',-8,

if(mitarbeiter.Wochenarbeitsstunden='30',-6,if(mitarbeiter.Wochenarbeitsstunden='25',-5,-4)))) As Ueberstunden,

0 AS 'Zuschlag25',

0 AS 'Zuschlag50',

0 As 'Zuschlag70'

from mysql.kalender, mysql.ueberstunden, mysql.mitarbeiter

where kalender.datum=ueberstunden.datum and ueberstunden.Stammnummer=mitarbeiter.Stammnummer

union

select

mitarbeiter.Stammnummer,

mitarbeiter.Nachname,

mitarbeiter.Vorname,

mitarbeiter.Kostenstelle, dayname(krankheit.datum) AS Tag,

krankheit.Datum As Datum,

Kalender.Periode,

'Krankheit',

'---' AS von,

'---' AS bis,

0 AS Gesamtstunden,

'---' As Reisezeit,

'---' As Reiseoption,

0 As Ueberstunden,

0 AS 'Zuschlag25',

0 AS 'Zuschlag50',

0 As 'Zuschlag70'

from mysql.kalender, mysql.krankheit,mysql.mitarbeiter

where (kalender.datum=krankheit.datum and mitarbeiter.Stammnummer=krankheit.Stammnummer)

union

select

mitarbeiter.Stammnummer,

mitarbeiter.Nachname,

mitarbeiter.Vorname,

mitarbeiter.Kostenstelle,dayname(feiertage.Feiertag) AS Tag,

feiertage.Feiertag As Datum,

Kalender.Periode,

'Feiertag' As Kategorie,

'---' AS von,

'---' AS bis,

0 AS Gesamtstunden,

'---' As Reisezeit,

'---' As Reiseoption,

0 As Ueberstunden,

0 AS 'Zuschlag25',

0 AS 'Zuschlag50',

0 As 'Zuschlag70'

from mysql.feiertage, mysql.mitarbeiter, mysql.kalender, mysql.stunden

where feiertage.Feiertag < '2008-01-01' and feiertage.Feiertag=kalender.Datum and feiertage.Feiertag<>stunden.Datum

union

select

mitarbeiter.Stammnummer,

mitarbeiter.Nachname,

mitarbeiter.Vorname,

mitarbeiter.Kostenstelle,dayname(kalender.datum) AS Tag,

kalender.Datum AS Datum,

Kalender.Periode,

'Urlaub' As Kategorie,

'---' AS von,

'---' AS bis,

0 AS Gesamtstunden,

'---' As Reisezeit,

'---' As Reiseoption,

0 As Ueberstunden,

0 AS 'Zuschlag25',

0 AS 'Zuschlag50',

0 As 'Zuschlag70'

from mysql.kalender, mysql.mitarbeiter, mysql.urlaub, mysql.feiertage

where (kalender.datum between urlaub.von and urlaub.bis) and dayname(kalender.datum)<> 'Sunday' and dayname(kalender.datum)<>'Saturday' and kalender.datum<>feiertage.Feiertag and mitarbeiter.Stammnummer=urlaub.Stammnummer

order by Datum;[/codebox]
The select works quick when starting in mysql query directly, but when I use the php-sites created by phprunner the mysql crashes.

CPU goes to 100%... and nothing can be done anymore. It is only this one site from all sites phprunner creates. the others work fine.
Maybe somebody has the same problem... please help ...

thanks a lot.

Alexey admin 7/3/2007

Hi,
here is what you can do.

Modify this line in generated include\dbcommon.php file:

$dDebug=false;

change it to

$dDebug=true;


Then browse your pages.

You'll see all SQL string that are queried on the page.

Run those queries directly on your MySQL server and find which one crashes the database.
Then contact support team directly at support@xlinesoft.com