print van de Query zelf netjes weergeven
Ik bedoel dan dus dat de query niet een lang ononderbroken zin is, maar netjes wordt afgebroken bij ieder niet element.
Dus niet
Quote:
SELECT table.`field` as `tablefield`, `field2`, `field3` FROM table INNER JOIN table2 ON table.`field` = table2.`field` WHERE table.`field2` = '[value]' AND table2.`field3` = '[value2]' ORDER BY table.`field'
maar:
Quote:
SELECT table.`field` as `tablefield`,
`field2`,
`field3`
FROM table
INNER JOIN table2
ON table.`field` = table2.`field`
WHERE table.`field2` = '[value]'
AND table2.`field3` = '[value2]'
ORDER BY table.`field'
`field2`,
`field3`
FROM table
INNER JOIN table2
ON table.`field` = table2.`field`
WHERE table.`field2` = '[value]'
AND table2.`field3` = '[value2]'
ORDER BY table.`field'
Gewijzigd op 03/06/2013 16:09:26 door Lars Anderson
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$query = str_replace("\n", "<br />", $query); \\ voor de line breaks
$query = preg_replace( "/\s\s+/", " ", $query ); \\ om overbodige whitespace weg te halen
echo $query;
?>
$query = str_replace("\n", "<br />", $query); \\ voor de line breaks
$query = preg_replace( "/\s\s+/", " ", $query ); \\ om overbodige whitespace weg te halen
echo $query;
?>
Nu weet ik zo niet uit mijn hoofd wel OS nu wat gebruikt, maar de een gebruikt \r en de ander \n.
Vandaar dat php een eenvoudige oplossing heeft bedacht:
Gewoon je query eerst in een losse variabele zetten zodat je die kan echoën voor het uitvoeren.
Of, aangezien het toch alleen voor debuggen is, het gewoon in een <pre> element printen?
Inderdaad Wouter, maar dan de query dus niet op één regel staan, wat ik nooit doe en ook anderen aanbeveel om dat niet te doen, in ieder geval niet bij lange query's.
Bart V B op 05/06/2013 00:49:48:
Misschien een universele oplossing voor de <br /> ?
Nu weet ik zo niet uit mijn hoofd wel OS nu wat gebruikt, maar de een gebruikt \r en de ander \n.
Vandaar dat php een eenvoudige oplossing heeft bedacht:
Nu weet ik zo niet uit mijn hoofd wel OS nu wat gebruikt, maar de een gebruikt \r en de ander \n.
Vandaar dat php een eenvoudige oplossing heeft bedacht:
Bedankt, deze ga ik onthouden.
Eddy E op 05/06/2013 07:58:41:
En nl2br() ?
Gewoon je query eerst in een losse variabele zetten zodat je die kan echoën voor het uitvoeren.
Gewoon je query eerst in een losse variabele zetten zodat je die kan echoën voor het uitvoeren.
nl2br() had ik eerst geprobeerd, maar om de een of andere reden werkte dit niet goed, ik weet al niet meer waarom.
Een extra bijkomend probleem was dat er veel whitespace tussen de regels in stond.
Nu is met SQL zo dat overal waar je normaal gesproken een spatie kan (of moet) typen, ook een line feed mag toepassen. Met SQL is het net zoals met php, dat je code veel overzichtelijker wordt dmv van line feeds, tabs etc. Je gaat in PHP toch ook niet een hele functie op één regel typen.
Het was mij toen al wel gelukt om de overbodige whitespace er uit te halen met een preg_replace, maar dan stond de query dus nog steeds op één regel.
Dan uiteraard via een debugmodus of in testomgeving.