CGollhardt
Mitglied
Hallo Miteinander,
ich sitze hier vor einem sehr kommischen Problem.
Es geht dabei um folgenden Query:
Wenn ich das ganze in PHPMyAdmin ausführe erhalte ich das gewünschte Ergebnis. In PHP, erhalte ich entweder eine weise Seite (Ich denke wenn die maximale execution time von 30 Sekunden erreicht ist) oder ich bekomme die Meldung dass die 128 MB Arbeitsspeicher überschritten sind.
Der Clou:
Lasse ich id = parentid OR im Where Statement weg, funktioniert auch in PHP alles bestens.
Weitere Daten:
MySQL Server: - 5.6.10 - MySQL Community Server (GPL) (64bit Windows)
Webserver: - Microsoft-IIS/8.0
PHP: 5.4.9
Verbindung über mysqli
Ich bin gerade echt am verzweifeln, würde mich über eure Hilfe sehr freuen.
Edit:
Ersetze ich das Rote mit TRUE AND ist das selbe Phänomen vorhanden.
Edit 2:
Tabellenstruktur und Testdaten:
ich sitze hier vor einem sehr kommischen Problem.
Es geht dabei um folgenden Query:
Code:
SELECT id, parentid, pagetitle, linktitle, authorid, creationtime, updatetime, published, publicationlevel, islink, position, (
SELECT MAX( position )
FROM page_mainpages AS sub
WHERE sub.position < position
AND sub.parentid = parentid
) AS prevpage, (
SELECT MIN( position )
FROM page_mainpages AS sub
WHERE sub.position > position
AND sub.parentid = parentid
) AS nextpage
FROM page_mainpages
WHERE id = parentid
OR parentid !=0
AND parentid NOT
IN (
SELECT id
FROM page_mainpages
)
ORDER BY pagetitle
Wenn ich das ganze in PHPMyAdmin ausführe erhalte ich das gewünschte Ergebnis. In PHP, erhalte ich entweder eine weise Seite (Ich denke wenn die maximale execution time von 30 Sekunden erreicht ist) oder ich bekomme die Meldung dass die 128 MB Arbeitsspeicher überschritten sind.
Der Clou:
Lasse ich id = parentid OR im Where Statement weg, funktioniert auch in PHP alles bestens.
Weitere Daten:
MySQL Server: - 5.6.10 - MySQL Community Server (GPL) (64bit Windows)
Webserver: - Microsoft-IIS/8.0
PHP: 5.4.9
Verbindung über mysqli
Ich bin gerade echt am verzweifeln, würde mich über eure Hilfe sehr freuen.
Edit:
Ersetze ich das Rote mit TRUE AND ist das selbe Phänomen vorhanden.
Edit 2:
Tabellenstruktur und Testdaten:
Code:
--
-- Tabellenstruktur für Tabelle `page_mainpages`
--
CREATE TABLE IF NOT EXISTS `page_mainpages` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`parentid` int(10) unsigned NOT NULL DEFAULT '0',
`pagetitle` varchar(150) NOT NULL,
`linktitle` varchar(50) NOT NULL,
`authorid` int(11) NOT NULL,
`creationtime` datetime NOT NULL,
`updatetime` datetime NOT NULL,
`published` tinyint(4) NOT NULL DEFAULT '0',
`publicationlevel` tinyint(4) NOT NULL DEFAULT '0',
`islink` tinyint(4) NOT NULL DEFAULT '0',
`position` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=56 ;
--
-- Daten für Tabelle `page_mainpages`
--
INSERT INTO `page_mainpages` (`id`, `parentid`, `pagetitle`, `linktitle`, `authorid`, `creationtime`, `updatetime`, `published`, `publicationlevel`, `islink`, `position`) VALUES
(3, 0, 'Der Lange Titel', 'Test 1234', 0, '2013-05-09 20:24:00', '2013-05-13 21:51:29', 1, 1, 1, 12),
(4, 0, 'Der Lange Titel 2', 'Der Lange Titel 2', 0, '0000-00-00 00:00:00', '0000-00-00 00:00:00', 1, 1, 0, 6),
(8, 0, 'sdfsdfsdfsdfdsf', 'sadfsdfsdfsdf', 0, '0000-00-00 00:00:00', '0000-00-00 00:00:00', 1, 1, 1, 4),
(9, 9, 'blibla', 'blibla', 0, '0000-00-00 00:00:00', '0000-00-00 00:00:00', 1, 1, 1, 9),
(18, 0, 'Die lange Beschreiung des Testa', 'Test', 0, '2013-05-11 03:47:03', '2013-05-13 21:51:46', 1, 1, 1, 5),
(20, 0, 'sdgdfsgsfgfsd', 'gsdfgdfsgdsfgfg', 0, '2013-05-13 04:59:49', '2013-05-13 18:28:15', 1, 1, 1, 8),
(55, 3, 'Hallo Welt Titel der Seite', 'Hallo Welt', 2, '0000-00-00 00:00:00', '0000-00-00 00:00:00', 1, 107, 1, 16);