print van de Query zelf netjes weergeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lars Anderson

Lars Anderson

03/06/2013 16:08:45
Quote Anchor link
Is er standaard functie of kent iemand een scriptje waarme ik mijn mysql query op een nette manier kan weergeven op het scherm (voor debug doeleinden)?
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'
Gewijzigd op 03/06/2013 16:09:26 door Lars Anderson
 
PHP hulp

PHP hulp

16/11/2024 18:51:11
 
Lars Anderson

Lars Anderson

04/06/2013 23:45:45
Quote Anchor link
Oplossing gevonden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>
 
Bart V B

Bart V B

05/06/2013 00:49:48
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query
= str_replace(PHP_EOL, "<br />", $query); \\ voor de line breaks
?>
 
Eddy E

Eddy E

05/06/2013 07:58:41
Quote Anchor link
En nl2br() ?

Gewoon je query eerst in een losse variabele zetten zodat je die kan echoën voor het uitvoeren.
 
Wouter J

Wouter J

05/06/2013 08:53:02
Quote Anchor link
Of, aangezien het toch alleen voor debuggen is, het gewoon in een <pre> element printen?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

05/06/2013 10:08:41
Quote Anchor link
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.
 
Lars Anderson

Lars Anderson

05/06/2013 13:32:38
Quote Anchor link
Bedankt voor jullie reacties alsnog :-)
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query
= str_replace(PHP_EOL, "<br />", $query); \\ voor de line breaks
?>


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.


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.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

05/06/2013 15:53:31
Quote Anchor link
Wat mij altijd opvalt is dat veel mensen in PHP query's gaan uittesten, ik doe dat, bij wat gecompliceerdere query's altijd met een tool (bv workbench).
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.
 
Lars Anderson

Lars Anderson

06/06/2013 08:17:44
Quote Anchor link
Helemaal mee eens. Ik zelf programmeer ook gewoon met line feeds. De reden dat ik om bovenstaande vroeg was dat ik de query wil weergeven binnen een DataTables tabel (javascript). Om een of andere reden werd mijn query hier op één regel gezet, maar welde wel alle voorloop spaties behouden. Dit zag er dus totaal niet uit.

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.
 
- Ariën  -
Beheerder

- Ariën -

06/06/2013 08:38:51
Quote Anchor link
In een exception zou dat wel handig kunnen zijn. Vooral als je query wordt aangevuld door diverse variabelen.
Dan uiteraard via een debugmodus of in testomgeving.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.