Toon posts:

[SQL] Formaat van een query

Pagina: 1
Acties:
  • 67 views sinds 30-01-2008

Verwijderd

Topicstarter
Hallo mede tweakers,

ik wil mijn data die in een tabel wordt weergegeven sorten op de kolom waarop je klikt.
Ik kan nu wel simple iedere keer de query verandere, maar ik kan ook alleen de kolom en de volgorde veranderen.

Nu dacht ik dus, als ik het formaat van de query, dus het select gedeelte enz enz hebt (bijv in een array).
Dan hoef ik dus alleen die stukjes in de query te vervangen (dus de sorteer kolom en de volgorde), dit scheel nogal bij groter (of dynamische) queryies.

Alleen nu mijn probleem,
hoe krijg ik die query uit elkaar in de bepaalde stukken ??

Kan iemand mij hiermee helpen??
Alvast bedankt

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Welke taal?

Localhost, sweet localhost


Verwijderd

Je kunt dit doen door met php ( mogelijk ) je query in een record te zetten en dan vanafdaar de record aan te spreken en niet de database.
Moet wel makkelijk te doen zijn denk ik?

Verwijderd

Topicstarter
Taal maakt me opzich niet uit,
dat is zelf nog wel uit de vogelen.

Maar het probleem zit het in de opmaak/formaat van de query.

HOE krijg ik ui de hele query het SELECT gedeelte, het WHERE en het ORDER BY gedeelte (eventueel de rest ook nog)

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 24-08 15:45
In PHP zet je de sql in een variable, en voer je die daarna uit. Zoals je hopelijk weet kun je variablen ook aan elkaar plakken...

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Verwijderd schreef op 30 januari 2003 @ 16:55:
Taal maakt me opzich niet uit,
dat is zelf nog wel uit de vogelen.

Maar het probleem zit het in de opmaak/formaat van de query.

HOE krijg ik ui de hele query het SELECT gedeelte, het WHERE en het ORDER BY gedeelte (eventueel de rest ook nog)
Als de taal je niet uitmaakt - down dan PHPMyAdmin - die doet alles al voor je ;-)

Localhost, sweet localhost


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

:? Volgens mij denk je de verkeerde kant uit ...

Jij bent toch zelf degene die de query samenstelt, of niet? Stel hem dan samen op basis van de parameters, in plaats van eerst de query samen te stellen en daarna de parameters te gaan verwerken...

Of snap ik je nou helemaal verkeerd :?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Verwijderd schreef op 30 januari 2003 @ 16:55:
Maar het probleem zit het in de opmaak/formaat van de query.

HOE krijg ik ui de hele query het SELECT gedeelte, het WHERE en het ORDER BY gedeelte (eventueel de rest ook nog)
Parsen? Stringfuncties? Regexp? Gokken?

Localhost, sweet localhost


  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Verwijderd schreef op 30 januari 2003 @ 16:55:
Taal maakt me opzich niet uit,
dat is zelf nog wel uit de vogelen.

Maar het probleem zit het in de opmaak/formaat van de query.

HOE krijg ik ui de hele query het SELECT gedeelte, het WHERE en het ORDER BY gedeelte (eventueel de rest ook nog)
code:
1
2
3
4
$select = "";
$where = "";
$order by = "";
$query = sprintf("%s %s %s", $select, $where, $order_by);

[ Voor 7% gewijzigd door Olaf van der Spek op 30-01-2003 18:43 ]


  • esf
  • Registratie: Juni 2002
  • Laatst online: 11-03 14:06

esf

Je kunt natuurlijk ook de resultaten uit de database in een meervoudige array opslaan en die elke keer uitlezen. Dit is volgens mij sneller dan steeds een SQL connectie opzetten.

The hardest thing in the world to understand is the income tax. - Albert Einstein


  • whoami
  • Registratie: December 2000
  • Laatst online: 24-08 16:37
Verwijderd schreef op 30 January 2003 @ 16:55:
Taal maakt me opzich niet uit,
dat is zelf nog wel uit de vogelen.
Hmm... Op zich wel.
Als je het mbhv een webapplicatie doet, dan zal je de query hoogstwaarschijnlijk opnieuw moeten submitten.
Doe je het echter in een 'Rich client' omgeving, zoals Windows, dan kan je de gegevens sorteren zonder dat je query opnieuw hoeft toe te passen.
HOE krijg ik ui de hele query het SELECT gedeelte, het WHERE en het ORDER BY gedeelte (eventueel de rest ook nog)


Je kunt, zoals je zelf al aangaf die query dynamisch laten opbouwen, en dan wel zo dat je zelf aangeeft welke kolommen er in de select moeten komen, welke in de Order By, welke tabellen je nodig hebt en wat er in de WHERE moet komen.

Je kunt bv. een aantal lijsten bijhouden die die gegevens bijhouden en dan kan je als volgt te werk gaan:
code:
1
2
3
4
5
6
7
8
SelectKolommen.Add ('persoon.naam');
SelectKolommen.Add('persoon.voornaam');

SelectTabellen.Add('persoon');

WhereClause.Add ('persoon.id = :p_id');

OrderClause.Add ('naam');


Om uw query dan op te bouwen, ga je die lijsten overlopen en zo uw query samenstellen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ja dat is een mogelijkheid.
Dan moet ik alleen zelf een form maken voor het invoeren van de query.
Maar hoe los ik dit op als er een join in de query zit ??

Nu krijg je gewoon de query builder te zien, kun je het een en ander aanklikken
en die query krijg ik terug. In een string zonder enters of iets.

En nu wil ik dus die query sorten op een van de zichtbare kollomen.

offtopic:
heeft SQL Server ook een LIMIT clause ??

[ Voor 9% gewijzigd door Verwijderd op 31-01-2003 09:56 ]


  • esf
  • Registratie: Juni 2002
  • Laatst online: 11-03 14:06

esf

hoe krijg ik die query uit elkaar in de bepaalde stukken ??
Je kan het volgende gebruiken:

PHP:
1
2
3
4
5
6
$query = "SELECT t.id, t.name ";
$query.= "FROM Table t ";
if(isset($_GET["sort"]) && $_GET["sort"] == "id")
    $query.= "ORDER BY t.id";
else
    $query.= "ORDER BY t.name";


Ik hoop dat je hier wat aan hebt...

[ Voor 14% gewijzigd door esf op 03-02-2003 22:18 ]

The hardest thing in the world to understand is the income tax. - Albert Einstein


Verwijderd

In bv. VB gewoon een ADO.RECORDSET aanmaken en dan rsRecordset.Sort = "Kolomnaam" dan hoef je helemaal niet in die query te sleutelen.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Dit leidt nergens toe.

Topicstarter: Druk 's f1 en zoek eens op wat je nou precies wilt, want dit is allemaal veel te onduidelijk. Mail mij ff als je wat nieuwe (betere) vragen hebt, dan kan deze weer open, maar op deze manier gaat iedereen maar wat zitten roepen, en dat schiet niks op.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1

Dit topic is gesloten.