[PHP] Datumwaarde vervangen

Pagina: 1
Acties:

  • pctje
  • Registratie: Juni 2000
  • Laatst online: 27-08 13:55
Ik zit even met een probleem.
Zit met een mysql database.
Ik heb daar een datumveld die niet meteen ingevuld moet worden, maar pas na een aantal weken.
Als ik dan tussentijds een overzicht wil maken staat daar dus standaard als er geen waarde ingevuld is:

0000-00-00

kan dit ook met een bepaalde sql statement vervangen worden door gewoon "" (niets dus) dat je de cel leeg ziet?

  • vinnux
  • Registratie: Maart 2001
  • Niet online
code:
1
 WHERE ..... AND dateField != '0000-00-00'

  • Wilke
  • Registratie: December 2000
  • Laatst online: 09-09 22:48
Nee, dat is denk ik niet wat hij bedoelt, want zo selecteer je de hele rijen waar de datum nog niet ingevuld is gewoon niet.

Als ik het goed begrijp wil 'ie wel die rijen zien, maar dan met gewoon een lege ruimte op de plek van de datum.

(en als ik nog bedenk hoe je dat makkelijk doet edit ik het er nog wel even bij :) )

  • pctje
  • Registratie: Juni 2000
  • Laatst online: 27-08 13:55
Wilke, je hebt gelijk.

Ik bedoel dus, de cel moet wel zichtbaar zijn, maar
op het moment dat er een datum niet ingevoerd is en er normaal gesproken dus 0000-00-00 staat, moet er gewoon niets staan. Bij andere cellen waar dus wel de datum ingevoerd is moet de datum dus wel verschijnen.

  • vinnux
  • Registratie: Maart 2001
  • Niet online
code:
1
SELECT IF( dateField == '0000-00-00', '', dateField) AS datefield

Zo dan ! 2e poging

  • pctje
  • Registratie: Juni 2000
  • Laatst online: 27-08 13:55
SELECT * FROM `Tjeerd` WHERE datum AND IF datum == '0000-00-00': '' :datum

heb ik dus..... maar krijg deze foutmelding

heb ik nog iets fout dan?

You have an error in your SQL syntax near 'datum == '0000-00-00': '' :datum LIMIT 0, 30' at line 1

  • vinnux
  • Registratie: Maart 2001
  • Niet online
SELECT IF( dateField = '0000-00-00', '', dateField) AS datefield

  • pctje
  • Registratie: Juni 2000
  • Laatst online: 27-08 13:55
SELECT IF( datum == '0000-00-00', '', datum) AS datum

geeft ook foutmelding

You have an error in your SQL syntax near '== '0000-00-00', '', datum) AS datum LIMIT 0, 30' at line 1

  • pctje
  • Registratie: Juni 2000
  • Laatst online: 27-08 13:55
Kijk.....dit gaat de goed kant op, de enige melding die ik nu nog krijg is:

You have an error in your SQL syntax near 'LIMIT 0, 30' at line 1

op het moment dat ik dus dit ingevuld heb
code:
1
SELECT IF( datum = '0000-00-00', '', datum) AS datum

Verwijderd

desnoods vang je het gewoon af met php:

[php]
<?php
if($date == '00-00-0000'){
$datum = '';
} else {
$datum = $date;
}
?>

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:10
Maar het geld altijd: Liever in MySQL dan in PHP, maar dan alleen als het in 1 query kan :) Da's het snelste.

Query moet zoiets zijn als:

SELECT *, IF(datum = "0000-00-00", "", datum) AS datum2;

Ik weet trouwens niet of het handig is die * op te vragen.. Heb je echt álle kolommen nodig uit die tabel? datum heb je bijvoorbeeld nu niet nodig, omdat de virtuele kolom datum2 wordt gemaakt. datum gebruik je in dat geval niet meer in je resultaat.

Succes ermee!

Verwijderd

lama

  • pctje
  • Registratie: Juni 2000
  • Laatst online: 27-08 13:55
You have an error in your SQL syntax near 'LIMIT 0, 30' at line 1

Is nog steeds de foutmelding die ik krijg.
Ben bang dat ik toch iets fout doe :'(

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:30
Je gebruikt vast phpMyAdmin, die plakt dat LIMIT 0,30 standaard achter elke query. Soms idd best vervelend.

Als je zelf ook een LIMIT in je query zet gaat het fout, omdat phpmyadmin hem er altijd achter plakt, en je dan dus 2x LIMIT in je query hebt, wat mysql niet zo leuk vind :).

  • pctje
  • Registratie: Juni 2000
  • Laatst online: 27-08 13:55
Dat juist niet, krijg normaal geen foutmeldingen behalve bij het IF statement, dan begint ie inene met dat limit te klooien

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:30
IF statement in je SQL query :?
Post eens wat gegevens, tjonge...

  • vinnux
  • Registratie: Maart 2001
  • Niet online
code:
1
SELECT IF( datum = '0000-00-00', '', datum) AS datum FROM table_name

Dit moet goed gaan hoor !

Verwijderd

Als je nou gewoon je 'oude' query gebruikt en het met PHP afvangt??

zoiets als:
PHP:
1
<?while($result=mysql_fetch_array($$query)) {....if ($result['datum'] != "0000-00-00") {   echo $result['datum'];}...}?>
Pagina: 1