between in samenwerking met Zoeken in MySQL tabel
http://www.phphulp.nl/php/tutorials/3/100
Maar nu zit ik nog met het probleem dat mijn between functie niet wil werken.
Ingave gebeurd als volgend: Naam, begin nr en laatste nummer worden ingegeven per persoon, datum word automatisch mee weggeschreven door: $datum = time();
Naam: pers1 - Begin nr: 590123 - Laatste nr: 590321
Naam: pers2 - Begin nr: 590723 - Laatste nr: 590921
Naam: pers1 - Begin nr: 591123 - Laatste nr: 593321
Naam: pers1 - Begin nr: 599123 - Laatste nr: 599321
Naam: pers2 - Begin nr: 690123 - Laatste nr: 690321
Zoeken gebeurd als volgend: er wordt een nummer ingegeven om te zoeken
Nummer: 591277
Resultaat als dit nummer nergens tussen een begin of laatste nummer ligt:
Dit nummer is door niemand geboekt.
Resultaat als dit nummer ergens tussen een begin of laatste nummer ligt:
Naam: pers1 - Datum: 13-10-09
Dus die nummer 591277 zit tussen Begin nr: 591123 - Laatste nr: 593321 die door Naam: pers1 geboekt zijn op Datum: 13-10-09
De query heb ik aangepast naar: maar dan krijg ik steeds de vermelding dat het getal dat ik ingeef om te zoeken, door niemand geboekt is.
Bij volgende code krijg ik wel een resultaat:
Weet er iemand wat er mis is met mijn query?
Ook lukt het mij niet om de datum te tonen:
Alvast bedankt voor jullie moeite
Ik heb dus volgend script in gebruik genomen: Maar nu zit ik nog met het probleem dat mijn between functie niet wil werken.
Ingave gebeurd als volgend: Naam, begin nr en laatste nummer worden ingegeven per persoon, datum word automatisch mee weggeschreven door: $datum = time();
Naam: pers1 - Begin nr: 590123 - Laatste nr: 590321
Naam: pers2 - Begin nr: 590723 - Laatste nr: 590921
Naam: pers1 - Begin nr: 591123 - Laatste nr: 593321
Naam: pers1 - Begin nr: 599123 - Laatste nr: 599321
Naam: pers2 - Begin nr: 690123 - Laatste nr: 690321
Zoeken gebeurd als volgend: er wordt een nummer ingegeven om te zoeken
Nummer: 591277
Resultaat als dit nummer nergens tussen een begin of laatste nummer ligt:
Dit nummer is door niemand geboekt.
Resultaat als dit nummer ergens tussen een begin of laatste nummer ligt:
Naam: pers1 - Datum: 13-10-09
Dus die nummer 591277 zit tussen Begin nr: 591123 - Laatste nr: 593321 die door Naam: pers1 geboekt zijn op Datum: 13-10-09
De query heb ik aangepast naar:
Code (php)
1
$sql = "SELECT * FROM facturen WHERE '%$HTTP_POST_VARS[zoekterm]%' BETWEEN begin AND laatste";
Bij volgende code krijg ik wel een resultaat:
Weet er iemand wat er mis is met mijn query?
Ook lukt het mij niet om de datum te tonen:
Alvast bedankt voor jullie moeite
Code (php)
1
2
3
2
3
<?
$sql = "SELECT * FROM facturen WHERE ". (int)$_POST['zoekterm']." BETWEEN begin AND laatste";
?>
$sql = "SELECT * FROM facturen WHERE ". (int)$_POST['zoekterm']." BETWEEN begin AND laatste";
?>
is de enige correcte en veilige benadering..
Door de typecast naar een Int, is er ook geen mysql_real_escape_string of wat dan ook nodig.
Nu heb ik alleen nog het probleem om de datum weer te geven bij de resultaten.
Bij het ingeven van de gegevens verstuur ik de datum op dat ogenblik automatisch mee door:
In de database komt hij zo terecht: 1258531507
Op een overzicht pagina roep ik de datum als volgt op: en daar zie ik hem dan als: 18-11-2009
Maar als ik dat op dezelfde manier doe bij resultaat.php krijg ik als resultaat: 01-01-1970
Doe ik het op deze manier: krijg ik als resultaat: 1258531507
Wat doe ik mis? Ben hier nog een echte leek in.
ten tweede: Als welk type staat je datum opgeslaan in de database?
Dit hoort namelijk TIMESTAMP te zijn als je zoals je aangeeft met timestamps werkt. Verder kan ik je aanraden om met DATE of DATETIME te werken, dan kan je makkelijker mee berekeningen maken en kan je ook verder gaan dan 1970..
en ten derde: als je datum eenmaal als een correct type in de database zit (zie punt 2) dan kan je makkelijk dit doen:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
mysql> SELECT DATE_FORMAT(datum, '%d-%m-%Y') as datumF FROM tabel;
+------------+
| datumF |
+------------+
| 19-11-2009 |
+------------+
1 row in set (0.00 sec)
+------------+
| datumF |
+------------+
| 19-11-2009 |
+------------+
1 row in set (0.00 sec)
Dus zo:
Gewijzigd op 01/01/1970 01:00:00 door Hipska BE
Bedankt hiervoor, ik had ondertussen al een nieuw topic geopend voor dat datum probleem: http://www.phphulp.nl/forum/showtopic.php?cat=2&id=68899&page=
Daar hebben ze mij ook al geholpen, maar ik geraak er nog steeds niet uit.