Vraagje over sql
ID - Datum - Naw - enz.
Nu kan het zijn dat er op een datum meerdere registraties worden toegevoegd bijvoorbeeld:
1 - 10-09-07 - Jan Janssen - enz.
2 - 20-12-06 - Fred Hermsen - enz.
3 - 10-09-07 - Piet Peeters - enz.
Is het mogelijk om dmv een sql query om het volgende overzicht te krijgen:
Dag 20-12-06:
Registratie 1: Fred Hermsen - enz.
Dag 10-09-07:
Registratie 1: 10-09-07 - Jan Janssen - enz.
Registratie 2: 10-09-07 - Piet Peeters - enz.
Hoe kan ik dit het makkelijkste oplossen, kan ik de datbase sorten op datum en daaronder weer sorten op ID terwijl de datum sort in stand blijft en vervolgens een output geven?
Of is dit niet mogelijk en moet ik het met php oplossen?
Graag advies, alvast bedankt!
Gewijzigd op 01/01/1970 01:00:00 door OMEGA_ReD
Kortom, dat zul je als eerste moeten veranderen. En vervolgens krijg je dan een query als:
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Code (php)
Je moet het veld 'dag' dan wel toevoegen aan het voorbeeld van Blanche.
de datum is niet de datum dat word geregistreerd als de data word geschreven in de database. Maar een door de gebruiker in te vullen datum waarop bv het geregistreerde gesprek plaats gevonden heeft.
dus als het goed is kan ik met je voorbeeldje de gewenste output genereren.
Bedankt voor je hulp en snelle reactie!
Ik laat nog weten of het gelukt is!
Vergeet niet om met de functie checkdate() te controleren of de datum wel een geldige datum is. Vervolgens zet jij de boel in de juiste volgorde (yyyy-mm-dd) en schrijf je de boel weg in de database.
Omdat ik alles uit mijn database wil laten laten zien in het overzicht heb ik SELECT * er van gemaakt en ook heb ik de datum op ASC gezet omdat de oudste boven moet staan.
Ik heb het even in de "draai sql" in phpmyadmin gedraait en het resulteerde in het gewenste overzicht!
Even een php scriptje er omheen bouwen om het mooi vorm te geven en het is klaar!
Bedankt!!
Frank schreef op 23.03.2007 23:44:
Vergeet niet om met de functie checkdate() te controleren of de datum wel een geldige datum is. Vervolgens zet jij de boel in de juiste volgorde (yyyy-mm-dd) en schrijf je de boel weg in de database.
De datum's worden gecontrolleerd bij de invoer dus die zouden als het goed is altijd geldig moeten zijn.
MySQL ziet een worteltaart nog aan voor een geldige datum...
De overige velden worden gecontrolleerd door javascript.
De datum is wel required maar word niet op inhoud gecontrolleerd.
Ik heb wel een php script wat de datum van DD-MM-YYYY naar YYYY-MM-DD zodat de gebruiker niet steeds de datums achterstevoren moet invoeren. Maar deze controlleerd de inhoud volgens mij niet zo dat hij met een melding komt.
Dit word vervolgens ook weer steeds gedaan bij de database outputs en bij eventuele bewerkingn via formulieren.
thx
Gewijzigd op 01/01/1970 01:00:00 door OMEGA_ReD
Database:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?
mysql_connect($host,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM $datatable1 ORDER BY Datum ASC, RitNummer ASC";
$result=mysql_query($query);
$num=mysql_num_rows($result);
mysql_close();
?>
mysql_connect($host,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM $datatable1 ORDER BY Datum ASC, RitNummer ASC";
$result=mysql_query($query);
$num=mysql_num_rows($result);
mysql_close();
?>
Result printen:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
while($row = mysql_fetch_array($result)) {
echo 'RitNummer: '.$row['ritnummer'].' Datum: '.$row['datum'].'<br>';
}
?>
while($row = mysql_fetch_array($result)) {
echo 'RitNummer: '.$row['ritnummer'].' Datum: '.$row['datum'].'<br>';
}
?>
Gewijzigd op 01/01/1970 01:00:00 door OMEGA_ReD
Ik zou niet mysql_close gebruiken voordat je gaat fetchen ;-)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
include("../db.inc.php");
$start=$_GET['start'];
$end=$_GET['end'];
mysql_connect($host,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM $datatable1 ORDER BY Datum ASC, RitNummer ASC LIMIT $start,$end";
$result=mysql_query($query);
$num=mysql_num_rows($result);
while($row = mysql_fetch_array($result)) {
echo "while";
echo 'RitNummer: '.$row['ritnummer'].' Datum: '.$row['datum'].'<br>';
}
mysql_close();
?>
include("../db.inc.php");
$start=$_GET['start'];
$end=$_GET['end'];
mysql_connect($host,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM $datatable1 ORDER BY Datum ASC, RitNummer ASC LIMIT $start,$end";
$result=mysql_query($query);
$num=mysql_num_rows($result);
while($row = mysql_fetch_array($result)) {
echo "while";
echo 'RitNummer: '.$row['ritnummer'].' Datum: '.$row['datum'].'<br>';
}
mysql_close();
?>
De echo die in de while staat word niet vertoont. Dus houd dat in dat de while niet loopt.
Ik krijg verder ook geen error's of echo's.
Gewijzigd op 01/01/1970 01:00:00 door OMEGA_ReD
iemand een idee?