[php] kunnen deze 2 queries 1 worden?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • source
  • Registratie: Januari 2000
  • Laatst online: 15-08 15:33
Ik gebruik voor het uitlezen van de datum en tijd altijd een aparte query (omdat ik dus niet weet hoe 't in 1 query kan uitlezen) misschien dat iemand weet hoe ik dit moet doen:

datum_netjes_uitlees_query :
PHP:
1
$dateformat = "select date_format(datetime, '%d-%m-%Y') from mijn_tabel where id= '$id'";


en de bijbehorende query:
PHP:
1
$query = "select * from mijn_tabel where id = '$id'";

Diplomacy is the ability to tell a person to go to hell in such a nice way that he looks forward to the trip.


Acties:
  • 0 Henk 'm!

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 19:49
Ja, maar dan moet je de * weghalen en gewoon alle velden opnoemen (wat überhaupt veel beter is).

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:03
code:
1
2
3
select *, date_format(datetime, '%d-%m-%y')
from mijn_tabel
where id = '$id'


ddc schreef op 05 March 2003 @ 10:38:
Ja, maar dan moet je de * weghalen en gewoon alle velden opnoemen (wat überhaupt veel beter is).


Ook met die * kan het hoor....
Maar, die * weglaten en alle velden opnoemen is idd beter. (sneller)

[ Voor 64% gewijzigd door whoami op 05-03-2003 10:40 ]

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

datum_netjes_uitlees_query :
PHP:
1
2
3
$dateformat = "SELECT DATE_FORMAT(datetime, '%d-%m-%Y'), veld1, veld2, veld3 
               FROM mijn_tabel 
               WHERE id= '$id'";


Een alternatief (ranzig, fout!) is:
PHP:
1
2
3
$dateformat = "SELECT DATE_FORMAT(datetime, '%d-%m-%Y'), * 
               FROM mijn_tabel
               WHERE id= '$id'";


Maarem, dit is toch wel een beetje basiskennis hoor. Daar staat iedere tutorial en manual vol mee.

[ Voor 43% gewijzigd door kvdveer op 05-03-2003 10:42 ]

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • source
  • Registratie: Januari 2000
  • Laatst online: 15-08 15:33
dank jullie wel :)

dan ga ik weer ff verder!

Diplomacy is the ability to tell a person to go to hell in such a nice way that he looks forward to the trip.


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:03
kvdveer schreef op 05 March 2003 @ 10:40:

Een alternatief (ranzig, fout!) is:
PHP:
1
$dateformat = "select date_format(datetime, '%d-%m-%Y'), * from mijn_tabel where id= '$id'";


Ranzig? Hmm..... eerder niet optimaal.
fout? Hoezo?

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

whoami schreef op 05 March 2003 @ 10:42:

[...]


Ranzig? Hmm..... eerder niet optimaal.
fout? Hoezo?
Je hebt gelijk, dat was een overstatement, maar netjes is het zeker niet. Niet flexibel en zo. Het expliciet noemen van je velden is veiliger: dan faalt je code zodra de tabel onverhoopt een keertje verandert. Doorgaans check je of je query goed wordt uitgevoerd, niet of de teruggekomen velden goed zijn - dat is zowiezo lastig om goed te doen in PHP. (het kan wel).

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 19:49
whoami schreef op 05 March 2003 @ 10:42:
Ranzig? Hmm..... eerder niet optimaal.
fout? Hoezo?
Je snapt wel dat het ranzig is, omdat bij de eerste de beste DB aanpassing je query fout loopt.

Acties:
  • 0 Henk 'm!

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 22:47

TheDane

1.618

als je achteraf tabeldefinities niet goed hebt uitgedacht vind ik sowieso dat je -ook- niet op je code kan vertrouwen ... vind 't dus een beetje een non-argument :{

En bijvoorbeeld in Oracle 8i & 9i is de selectie van * 0,00000 sneller of trager dan selectie van veld1, veld2, veld3 etc, dus ook op dat vlak vind ik 't een beetje bollocks.

(afgezien van 't feit dat 't hier waarschijnlijk om mysql gaat, waar ik dan weer minder vanaf weet)

(overigens bevat een tabel vaak nogal wat metadata die je helemaal niet hoeft te selecteren .. in dat geval is * natuurlijk overdone, en kun je -ook- beter veld1, veld2, etc selecteren)


't enige (grote) voordeel wat je hebt als je alle velden expliciet noemt, is dat 't overzichtelijker is voor later onderhoud wat er precies gebeurt.

[ Voor 17% gewijzigd door TheDane op 05-03-2003 11:04 ]


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

kolom namen als "datetime" is toch al ranzig fout.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 22:47

TheDane

1.618

dusty schreef op 05 March 2003 @ 11:04:
kolom namen als "datetime" is toch al ranzig fout.
datetime is zelfs een datatype in mysql :D

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:03
[nohtml]
TheDane schreef op 05 March 2003 @ 11:03:
En bijvoorbeeld in Oracle 8i & 9i is de selectie van * 0,00000 sneller of trager dan selectie van veld1, veld2, veld3 etc, dus ook op dat vlak vind ik 't een beetje bollocks
Ik geloof dat dat in MySQL toch wel iets scheelt....
Er is hier ooit eens een topic over geweest. Ga het ff opzoeken.

Ook in SQL Server is het beter dat je * niet gebruikt.
SQL Server performance tips

Daarnaast vind ik het gewoon ook netter als je geen '*' gebruikt.

Het is trouwens nog altijd het beste dat je alles via stored procedures doet. (Je databank moet dat dan wel ondersteunen).

[ Voor 8% gewijzigd door whoami op 05-03-2003 11:12 ]

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 22:47

TheDane

1.618

whoami schreef op 05 March 2003 @ 11:05:
[nohtml]
[...]

Ik geloof dat dat in MySQL toch wel iets scheelt....
Er is hier ooit eens een topic over geweest. Ga het ff opzoeken.

Ook in SQL Server is het beter dat je * niet gebruikt.


Daarnaast vind ik het gewoon ook netter als je geen '*' gebruikt.

Het is trouwens nog altijd het beste dat je alles via stored procedures doet. (Je databank moet dat dan wel ondersteunen).
volgens mij zeggen we allebei 't zelfde ;)
En stored procedures zijn inderdaad vele malen beter ... het schaalbaarheidsverschil is enorm .. met php lopen we al aardig tegen onze capaciteitsgrenzen aan af en toe ... maar met pl/sql (stored procedures) nog lang niet :)

Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb ook altijd geleerd dat je de table datetime als naam moet geven, stond in het boek "PHP zonder stress"... niet zo'n slecht boek trouwens.

Acties:
  • 0 Henk 'm!

  • Yo-han
  • Registratie: December 2001
  • Laatst online: 18-08 20:16

Yo-han

nope.

Verwijderd schreef op 05 maart 2003 @ 12:10:
Ik heb ook altijd geleerd dat je de table datetime als naam moet geven, stond in het boek "PHP zonder stress"... niet zo'n slecht boek trouwens.
klopt idd. Goed boek voor beginners, ben het zelf ook gelezen toen ik begon met PHP

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

Verwijderd schreef op 05 March 2003 @ 12:10:
Ik heb ook altijd geleerd dat je de table datetime als naam moet geven, stond in het boek "PHP zonder stress"... niet zo'n slecht boek trouwens.

Elk boek die jou vertelt om gereserveerde woorden te gebruiken in je eigen tabellen is bij voorbaat al een slecht boek.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • source
  • Registratie: Januari 2000
  • Laatst online: 15-08 15:33
dusty schreef op 05 March 2003 @ 11:04:
kolom namen als "datetime" is toch al ranzig fout.
om hier dan toch nog maar ff op te reageren, datetime was om aan te geven dat het dus om een datetime type gaat... meer niet...

maar iig bedankt.

Diplomacy is the ability to tell a person to go to hell in such a nice way that he looks forward to the trip.

Pagina: 1