Leeftijd uitrekenen vanuit MYSQL en van verkorte tekens naar volledige tekst
Ik heb 2 vraagjes..
Ten eerste ik ben bezig met een registratie sysyteem (met mysql)
deze zal een geboorte datum in een mysql database moeten zetten bijv: 21/03/1993. ik wil dit dan uit laten drukken naar een leeftijd in dit geval dus 19.
-_-
Tevens staat er in dit registratie formulier ook de mogelijkheid om vrouw/man te selecteren, deze worden in de mysql database als m of v opgeslagen, maar hoe zou ik deze uit kunnen drukken als man of vrouw in plaats van m/v op de php pagina
Momenteel ben ik zo ver met het script (als ik ontzettend falends heb gedaan gewoon zeggen :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
session_start();
$ID = $_SESSION['user'];
$PASS = $_SESSION['pass'];
mysql_connect("localhost", "admin", "**") or die(mysql_error());
mysql_select_db("**") or die(mysql_error());
$data = mysql_query("SELECT * FROM members WHERE username = '$ID' AND password = '$PASS'")
or die(mysql_error());
while($info = mysql_fetch_array( $data ))
{
Print "<th>Gebruikersnaam:</th> <td>".$info['username'] . "</td> ";
Print '<br />';
Print "<th>E-mail:</th> <td>".$info['email'] . "</td> ";
Print '<br />';
Print "<th>Ik ben een:</th> <td>".$info['m/v'] . "</td> ";
}
?>
session_start();
$ID = $_SESSION['user'];
$PASS = $_SESSION['pass'];
mysql_connect("localhost", "admin", "**") or die(mysql_error());
mysql_select_db("**") or die(mysql_error());
$data = mysql_query("SELECT * FROM members WHERE username = '$ID' AND password = '$PASS'")
or die(mysql_error());
while($info = mysql_fetch_array( $data ))
{
Print "<th>Gebruikersnaam:</th> <td>".$info['username'] . "</td> ";
Print '<br />';
Print "<th>E-mail:</th> <td>".$info['email'] . "</td> ";
Print '<br />';
Print "<th>Ik ben een:</th> <td>".$info['m/v'] . "</td> ";
}
?>
<form action="#">
<p>
<label>Ik zoek een</label>
<select name="ik-zoek" class="red" id="ik-zoek" style="width:150px; font-size:14px">
<option value="Man">Man</option>
<option value="Stel">Stel</option>
<option value="Vrouw" >Vrouw</option>
</select>
<label>Geboortemaand / -jaar</label>
<select style="width:40px; font-size:14px" name="F_GEBDAG">
<option value="0">??</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20" selected="">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select style="width:58px; font-size:14px" name="F_GEBMAAND">
<option value="0"> - Selecteer - </option>
<option value="240">Januari</option>
<option value="241">Februari</option>
<option value="242" selected="">Maart</option>
<option value="243">April</option>
<option value="244">Mei</option>
<option value="245">Juni</option>
<option value="246">Juli</option>
<option value="247">Augustus</option>
<option value="248">September</option>
<option value="249">Oktober</option>
<option value="250">November</option>
<option value="251">December</option>
</select><select style="width:58px; font-size:14px" name="F_GEBJAAR">
<option value="0">????</option>
<option value="1900">1900</option>
<option value="1901">1901</option>
<option value="1902">1902</option>
<option value="1903">1903</option>
<option value="1904">1904</option>
<option value="1905">1905</option>
<option value="1906">1906</option>
<option value="1907">1907</option>
<option value="1908">1908</option>
<option value="1909">1909</option>
<option value="1910">1910</option>
<option value="1911">1911</option>
<option value="1912">1912</option>
<option value="1913">1913</option>
<option value="1914">1914</option>
<option value="1915">1915</option>
<option value="1916">1916</option>
<option value="1917">1917</option>
<option value="1918">1918</option>
<option value="1919">1919</option>
<option value="1920">1920</option>
<option value="1921">1921</option>
<option value="1922">1922</option>
<option value="1923">1923</option>
<option value="1924">1924</option>
<option value="1925">1925</option>
<option value="1926">1926</option>
<option value="1927">1927</option>
<option value="1928">1928</option>
<option value="1929">1929</option>
<option value="1930">1930</option>
<option value="1931">1931</option>
<option value="1932">1932</option>
<option value="1933">1933</option>
<option value="1934">1934</option>
<option value="1935">1935</option>
<option value="1936">1936</option>
<option value="1937">1937</option>
<option value="1938">1938</option>
<option value="1939">1939</option>
<option value="1940">1940</option>
<option value="1941">1941</option>
<option value="1942">1942</option>
<option value="1943">1943</option>
<option value="1944">1944</option>
<option value="1945">1945</option>
<option value="1946">1946</option>
<option value="1947">1947</option>
<option value="1948">1948</option>
<option value="1949">1949</option>
<option value="1950">1950</option>
<option value="1951">1951</option>
<option value="1952">1952</option>
<option value="1953">1953</option>
<option value="1954">1954</option>
<option value="1955">1955</option>
<option value="1956">1956</option>
<option value="1957">1957</option>
<option value="1958">1958</option>
<option value="1959">1959</option>
<option value="1960">1960</option>
<option value="1961">1961</option>
<option value="1962">1962</option>
<option value="1963">1963</option>
<option value="1964">1964</option>
<option value="1965">1965</option>
<option value="1966">1966</option>
<option value="1967">1967</option>
<option value="1968">1968</option>
<option value="1969">1969</option>
<option value="1970">1970</option>
<option value="1971">1971</option>
<option value="1972">1972</option>
<option value="1973">1973</option>
<option value="1974">1974</option>
<option value="1975">1975</option>
<option value="1976">1976</option>
<option value="1977">1977</option>
<option value="1978">1978</option>
<option value="1979">1979</option>
<option value="1980">1980</option>
<option value="1981">1981</option>
<option value="1982">1982</option>
<option value="1983">1983</option>
<option value="1984">1984</option>
<option value="1985">1985</option>
<option value="1986">1986</option>
<option value="1987">1987</option>
<option value="1988">1988</option>
<option value="1989">1989</option>
<option value="1990">1990</option>
<option value="1991">1991</option>
<option value="1992">1992</option>
<option value="1993" selected="">1993</option>
<option value="1994">1994</option>
</select></p>
<p>
<label>Land</label>
<select name="country" class="red" id="ik-zoek2" style="width:150px; font-size:14px">
<option value="1">Nederland</option>
<option value="2">België</option>
</select>
</p>
<p><br />
<input class="button" type="submit" />
</p>
</form>
<br />
Daan tje op 10/04/2012 01:22:57:
deze zal een geboorte datum in een mysql database moeten zetten bijv: 21/03/1993. ik wil dit dan uit laten drukken naar een leeftijd in dit geval dus 19.
Ik mag hopen dat je geen datum als 21/03/1993 in je database wilt. Kies voor date als veldtype.
Leeftijd laat je berekenen als je het nodig hebt.
Daan tje op 10/04/2012 01:22:57:
maar hoe zou ik deze uit kunnen drukken als man of vrouw in plaats van m/v op de php pagina
Gewoon als man / vrouw? Begrijp je probleem niet.
or die --> lijkt me geen nette foutafhandeling.
Waarom al die dagen en jaartallen uitschrijven? Zet ze in een loop.
Waarom variabelen kopieren?
Gewijzigd op 10/04/2012 08:00:04 door Obelix Idefix
Toevoeging op 10/04/2012 08:52:30:
verder als je je leeftijd wilt berekenen moet je gewoon de tijd van nu nemen
$dit_jaar = date("Y"); geeft 2012 weer
$geboortejaar = $_POST['geboortejaar']; geeft bijvoorbeeld 1994 weer
$leeftijd = $dit_jaar-$geboortejaar;
Ik hoop dat dit is wat je zoekt.
function dateDiff($dformat, $endDate, $beginDate)
{
$date_parts1=explode($dformat, $beginDate);
$date_parts2=explode($dformat, $endDate);
$start_date=gregoriantojd($date_parts1[0], $date_parts1[1], $date_parts1[2]);
$end_date=gregoriantojd($date_parts2[0], $date_parts2[1], $date_parts2[2]);
return $end_date - $start_date;
}
$date1="07/11/2003";
$date2="09/04/2004"; // Opgegeven datum
$date3=date("dd/mm/Y"); // Voor huidige datum
print "If we subtract " . $date1 . " from " . $date2 . " we get " . dateDiff("/", $date2, $date1) . ".";
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
// start sessie
session_start();
// password zet je niet in een sessie, dit maakt je script onveilig. gebruik hier alleen de username/id voor
$ID = $_SESSION['user'];
// gooi je connection script in een losse php file en include deze ( stel je wilt het op meerdere pagina's gebruiken dan hoef je het niet weer uit te typen maar kan je gewoon includen, bijv:)
include ('connection.php');
// verder foutafhandeling inbouwen doe je niet met or die maar zo:
$connect = mysql_connect("localhost", "admin", "password");
if ($connect === false){
echo "er kon niet geconnect worden met de database";
}
else {
$database = mysql_select_db(database_name, $connect);
if ($database === false){
echo "database kon niet worden geselecteerd";
}
// verder houd variablen buiten quotes en gebruik geen wildcard (*)
else {
$data =" SELECT
username, password, geslacht
FROM
Table_name
WHERE
username = '". mysql_real_escape_string($ID)."'
";
$ophalen = mysql_query($data);
if ($ophalen === false){
echo "gegevens konden niet worden opgehaald.";
}
else {
while($row = mysql_fetch_assoc($ophalen)){
echo "<th>Gebruikersnaam:</th> <td>".$row['username'] . "</td> ";
echo "<br />";
echo "<th>E-mail:</th> <td>".$row['email'] . "</td> ";
echo "<br />";
echo "<th>Ik ben een:</th> <td>".$row['m/v'] . "</td> ";
}
}
}
}
?>
// start sessie
session_start();
// password zet je niet in een sessie, dit maakt je script onveilig. gebruik hier alleen de username/id voor
$ID = $_SESSION['user'];
// gooi je connection script in een losse php file en include deze ( stel je wilt het op meerdere pagina's gebruiken dan hoef je het niet weer uit te typen maar kan je gewoon includen, bijv:)
include ('connection.php');
// verder foutafhandeling inbouwen doe je niet met or die maar zo:
$connect = mysql_connect("localhost", "admin", "password");
if ($connect === false){
echo "er kon niet geconnect worden met de database";
}
else {
$database = mysql_select_db(database_name, $connect);
if ($database === false){
echo "database kon niet worden geselecteerd";
}
// verder houd variablen buiten quotes en gebruik geen wildcard (*)
else {
$data =" SELECT
username, password, geslacht
FROM
Table_name
WHERE
username = '". mysql_real_escape_string($ID)."'
";
$ophalen = mysql_query($data);
if ($ophalen === false){
echo "gegevens konden niet worden opgehaald.";
}
else {
while($row = mysql_fetch_assoc($ophalen)){
echo "<th>Gebruikersnaam:</th> <td>".$row['username'] . "</td> ";
echo "<br />";
echo "<th>E-mail:</th> <td>".$row['email'] . "</td> ";
echo "<br />";
echo "<th>Ik ben een:</th> <td>".$row['m/v'] . "</td> ";
}
}
}
}
?>
Gewijzigd op 10/04/2012 10:21:02 door Reshad F
Is het niet zo dat je in zoals while() enz.. beter echo '' kunt gebruiken in plaats van print'' ?
Tevens zie ik dat je ene keer print"" gebruikt en andere keer print''. Dit zou je beter gelijk kunnen houden,toch?
oh ja ik heb het even snel gemaakt en de print had ik van de TS zelf gekopieerd je kan idd echo gebruiken beter en eerlijk gezegd heb ik niet heel uitgebreid naar zijn printjes gekeken ( de quotes dan ) omdat de kleurtjes goed zaten in mijn editor :) maar je hebt wel gelijk ik ga het even aanpassen.
Albert de Wit op 10/04/2012 08:49:08:
verder als je je leeftijd wilt berekenen moet je gewoon de tijd van nu nemen
$dit_jaar = date("Y"); geeft 2012 weer
$geboortejaar = $_POST['geboortejaar']; geeft bijvoorbeeld 1994 weer
$leeftijd = $dit_jaar-$geboortejaar;
Ik hoop dat dit is wat je zoekt.
$dit_jaar = date("Y"); geeft 2012 weer
$geboortejaar = $_POST['geboortejaar']; geeft bijvoorbeeld 1994 weer
$leeftijd = $dit_jaar-$geboortejaar;
Ik hoop dat dit is wat je zoekt.
Heh heh, dat werkt geweldig voor iedereen die op 1 januari jarig is. Voor iedereen die later jarig is werkt dat maar een deel van het jaar.....
Voor leeftijd zal je dus ook een check moeten doen of de dag in het jaar lager is dan de dag van het geboortejaar. Iemand die op 1 juni 1990 is geboren is vandaag (10 april 2012) nog 21, maar op 10 juni 2012 is die 22. Met DAY() en MONTH() kan je de dag en maand uit een datum halen. Als je dat doet voor het veld in de database en voor DATE(), wat de huidige datum teruggeeft, dan kan je checken of je al voorbij de verjaardag bent in het jaar of niet.
Je kan ook kijken naar de functie DAYOFYEAR() alleen dan moet je uitkijken met schrikkeljaren.
P.S. dit is allemaal voor SQL, niet PHP. Dit soort berekeningen kan je beter in SQL uitvoeren, zeker als je het ook wilt gebruiken om rijen wel of niet te selecteren.
Gewijzigd op 10/04/2012 10:27:27 door Erwin H
ja klopt.. het is niet erg accuraat.. 1 op de 365 mensen krijgt een perfecte leeftijd binnen. Ik denk dat je op timestamps moet werken en dan de huidige timestamp min de geboorte timestamp en dan die van elkaar af trekken. Ik dacht dat dat wel moest kloppen.
Quote:
The TIMESTAMP data type is used for values that contain both date and time parts. TIMESTAMP has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC.
Iedereen geboren voor 1 januari 1970 heeft dan dus pech.
-1 moet dan toch zijn 1969-12-31 23:59:59 ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
// start sessie
session_start();
// password zet je niet in een sessie, dit maakt je script onveilig. gebruik hier alleen de username/id voor
$ID = $_SESSION['user'];
$connect = mysql_connect("localhost", "admin", "admin");
if ($connect === false){
echo "er kon niet geconnect worden met de database";
}
else {
$database = mysql_select_db(Testdatabase, $connect);
if ($database === false){
echo "database kon niet worden geselecteerd";
}
// verder houd variablen buiten quotes en gebruik geen wildcard (*)
else {
$data ="SELECT
username, password, m/v
FROM
members
WHERE
username = '". mysql_real_escape_string($ID)."'
";
$ophalen = mysql_query($data);
if ($ophalen === false){
echo "gegevens konden niet worden opgehaald.";
}
else {
while($row = mysql_fetch_assoc($ophalen)){
Print "<th>Gebruikersnaam:</th> <td>".$info['username'] . "</td> ";
Print '<br />';
Print "<th>E-mail:</th> <td>".$info['email'] . "</td> ";
Print '<br />';
Print "<th>Ik ben een:</th> <td>".$info['m/v'] . "</td> ";
}
}
}
}
?>
// start sessie
session_start();
// password zet je niet in een sessie, dit maakt je script onveilig. gebruik hier alleen de username/id voor
$ID = $_SESSION['user'];
$connect = mysql_connect("localhost", "admin", "admin");
if ($connect === false){
echo "er kon niet geconnect worden met de database";
}
else {
$database = mysql_select_db(Testdatabase, $connect);
if ($database === false){
echo "database kon niet worden geselecteerd";
}
// verder houd variablen buiten quotes en gebruik geen wildcard (*)
else {
$data ="SELECT
username, password, m/v
FROM
members
WHERE
username = '". mysql_real_escape_string($ID)."'
";
$ophalen = mysql_query($data);
if ($ophalen === false){
echo "gegevens konden niet worden opgehaald.";
}
else {
while($row = mysql_fetch_assoc($ophalen)){
Print "<th>Gebruikersnaam:</th> <td>".$info['username'] . "</td> ";
Print '<br />';
Print "<th>E-mail:</th> <td>".$info['email'] . "</td> ";
Print '<br />';
Print "<th>Ik ben een:</th> <td>".$info['m/v'] . "</td> ";
}
}
}
}
?>
En de database
-- phpMyAdmin SQL Dump
-- version 3.4.10.1
-- http://www.phpmyadmin.net
--
-- Machine: localhost
-- Genereertijd: 10 apr 2012 om 10:59
-- Serverversie: 5.1.49
-- PHP-Versie: 5.3.10
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `Sexdates`
--
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `Testdatabase`
--
CREATE TABLE IF NOT EXISTS `members` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`username` varchar(65) NOT NULL DEFAULT '',
`password` varchar(65) NOT NULL DEFAULT '',
`Age` text NOT NULL,
`m/v` varchar(5) NOT NULL,
`credits` varchar(10) NOT NULL DEFAULT '60',
`email` varchar(225) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Gegevens worden uitgevoerd voor tabel `members`
--
INSERT INTO `members` (`id`, `username`, `password`, `Age`, `m/v`, `credits`, `email`) VALUES
(1, 'john', '1234', '', '0', '60', ''),
(2, 'ohdude', '227321', '', 'man', '60', '[email protected]');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Toevoeging op 10/04/2012 11:10:04:
leuk ik gooide m'n vraag er uit.
ik heb het script van reshadd geciteerd, maar ik krijg telkens de melding 'gegevens konden niet worden opgehaald' hij haalt dus geen gegevens uit de tabel verder laat hij de host, database wel dus ik kan het probleem niet vinden.
Zou iemand mij nog een klein beetje verder kunnen helpen -_-
of willen voor doen hoe ik een or die(mysql_error()) optie in kan stellen in
$ophalen = mysql_query($data);
if ($ophalen === false){
echo "gegevens konden niet worden opgehaald.";
}
zodat ik zelf de fout kan vinden.
GR, daan ;_)
Daan tje op 10/04/2012 11:03:39:
En de database
-- phpMyAdmin SQL Dump
-- version 3.4.10.1
-- http://www.phpmyadmin.net
--
-- Machine: localhost
-- Genereertijd: 10 apr 2012 om 10:59
-- Serverversie: 5.1.49
-- PHP-Versie: 5.3.10
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `Sexdates`
--
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `Testdatabase`
--
CREATE TABLE IF NOT EXISTS `members` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`username` varchar(65) NOT NULL DEFAULT '',
`password` varchar(65) NOT NULL DEFAULT '',
`Age` text NOT NULL,
`m/v` varchar(5) NOT NULL,
`credits` varchar(10) NOT NULL DEFAULT '60',
`email` varchar(225) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Gegevens worden uitgevoerd voor tabel `members`
--
INSERT INTO `members` (`id`, `username`, `password`, `Age`, `m/v`, `credits`, `email`) VALUES
(1, 'john', '1234', '', '0', '60', ''),
(2, 'ohdude', '227321', '', 'man', '60', '[email protected]');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
// start sessie
session_start();
// password zet je niet in een sessie, dit maakt je script onveilig. gebruik hier alleen de username/id voor
$ID = $_SESSION['user'];
$connect = mysql_connect("localhost", "admin", "admin");
if ($connect === false){
echo "er kon niet geconnect worden met de database";
}
else {
$database = mysql_select_db(Testdatabase, $connect);
if ($database === false){
echo "database kon niet worden geselecteerd";
}
// verder houd variablen buiten quotes en gebruik geen wildcard (*)
else {
$data ="SELECT
username, password, m/v
FROM
members
WHERE
username = '". mysql_real_escape_string($ID)."'
";
$ophalen = mysql_query($data);
if ($ophalen === false){
echo "gegevens konden niet worden opgehaald.";
}
else {
while($row = mysql_fetch_assoc($ophalen)){
Print "<th>Gebruikersnaam:</th> <td>".$info['username'] . "</td> ";
Print '<br />';
Print "<th>E-mail:</th> <td>".$info['email'] . "</td> ";
Print '<br />';
Print "<th>Ik ben een:</th> <td>".$info['m/v'] . "</td> ";
}
}
}
}
?>
// start sessie
session_start();
// password zet je niet in een sessie, dit maakt je script onveilig. gebruik hier alleen de username/id voor
$ID = $_SESSION['user'];
$connect = mysql_connect("localhost", "admin", "admin");
if ($connect === false){
echo "er kon niet geconnect worden met de database";
}
else {
$database = mysql_select_db(Testdatabase, $connect);
if ($database === false){
echo "database kon niet worden geselecteerd";
}
// verder houd variablen buiten quotes en gebruik geen wildcard (*)
else {
$data ="SELECT
username, password, m/v
FROM
members
WHERE
username = '". mysql_real_escape_string($ID)."'
";
$ophalen = mysql_query($data);
if ($ophalen === false){
echo "gegevens konden niet worden opgehaald.";
}
else {
while($row = mysql_fetch_assoc($ophalen)){
Print "<th>Gebruikersnaam:</th> <td>".$info['username'] . "</td> ";
Print '<br />';
Print "<th>E-mail:</th> <td>".$info['email'] . "</td> ";
Print '<br />';
Print "<th>Ik ben een:</th> <td>".$info['m/v'] . "</td> ";
}
}
}
}
?>
En de database
-- phpMyAdmin SQL Dump
-- version 3.4.10.1
-- http://www.phpmyadmin.net
--
-- Machine: localhost
-- Genereertijd: 10 apr 2012 om 10:59
-- Serverversie: 5.1.49
-- PHP-Versie: 5.3.10
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `Sexdates`
--
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `Testdatabase`
--
CREATE TABLE IF NOT EXISTS `members` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`username` varchar(65) NOT NULL DEFAULT '',
`password` varchar(65) NOT NULL DEFAULT '',
`Age` text NOT NULL,
`m/v` varchar(5) NOT NULL,
`credits` varchar(10) NOT NULL DEFAULT '60',
`email` varchar(225) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Gegevens worden uitgevoerd voor tabel `members`
--
INSERT INTO `members` (`id`, `username`, `password`, `Age`, `m/v`, `credits`, `email`) VALUES
(1, 'john', '1234', '', '0', '60', ''),
(2, 'ohdude', '227321', '', 'man', '60', '[email protected]');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Albert de Wit op 10/04/2012 10:54:21:
ik weet dat 1970-01-01 00:00:01 timestamp heeft van 1 maar ik doel eigenlijk naar de min kant
-1 moet dan toch zijn 1969-12-31 23:59:59 ?
-1 moet dan toch zijn 1969-12-31 23:59:59 ?
Uh, nee dus. Probeer maar eens gewoon -1 in te voeren, dat gaat je niet lukken. Ook met de functie FROM_UNIXTIME krijg je dan een iets andere waarde dan je denkt.
Uiteindelijk komen de limieten namelijk niet voort uit de unix tijd (begin bij 1 januari 1970), maar uit het feit dat het als een integer wordt opgeslagen. Daardoor loop je gewoon vast op hoe groot dat getal kan worden. Zelfs al zou je negatieve waardes in kunnen voeren, dan nog krijg je ergens een limiet.
haal alsjeblieft even alle onnodige code wat niet relevant is weg, dit houd je topic overzichtelijk en makkelijk voor andere gebruikers om naar te kijken en je te helpen. dus bijv alle html eruit gooien en je sql dump kan drie-kwart korter bijvoorbeeld.
Daan tje op 10/04/2012 11:03:39:
`m/v` varchar(5) NOT NULL,
Dit lijkt mij de boosdoener. Je kan geen speciale characters als '/' gebruiken in tabel of veld namen. http://dev.mysql.com/doc/refman/5.0/en/identifiers.html
Gewijzigd op 10/04/2012 11:21:59 door Erwin H
Erwin H op 10/04/2012 11:21:32:
Dit lijkt mij de boosdoener. Je kan geen speciale characters als '/' gebruiken in tabel of veld namen. http://dev.mysql.com/doc/refman/5.0/en/identifiers.html
Daan tje op 10/04/2012 11:03:39:
`m/v` varchar(5) NOT NULL,
Dit lijkt mij de boosdoener. Je kan geen speciale characters als '/' gebruiken in tabel of veld namen. http://dev.mysql.com/doc/refman/5.0/en/identifiers.html
Yep, maak hier geslacht van ofzo.
nu krijg ik wel de
- Gebruikersnaam:
- E-mail:
- Ik ben een:
Maar tevens nog geen gegevens die daar aan gekoppelt zijn
verder denk ik dat de rijen die je ophaalt in sql en de rijen die je echoed verschillen, kan dat kloppen?
Toevoeging op 10/04/2012 14:02:29:
niet dat ik weet, in deze denk ik dat het voor de rest niet uit maakt ;)
De (my)sql dump staat er in deze bij en dit is tevens ook de enige die ik gebruik, ik moest wel ff kijken wat je nou eigelijk schreef :P
Toevoeging op 10/04/2012 14:05:30:
Zover ik weet zijn deze identiek
Code (php)
en de database
`id` int(4) NOT NULL AUTO_INCREMENT,
`username` varchar(65) NOT NULL DEFAULT '',
`password` varchar(65) NOT NULL DEFAULT '',
`Age` text NOT NULL,
`mv` varchar(5) NOT NULL,
`credits` varchar(10) NOT NULL DEFAULT '60',
`email` varchar(225) NOT NULL,
Toevoeging op 10/04/2012 14:06:14:
ik heb ze maar even tussen php haakjes gezet xD
Code (php)
1
2
3
4
2
3
4
<?php
while($row = mysql_fetch_assoc($ophalen)){
Print "<th>Gebruikersnaam:</th> <td>".$info['username'] . "</td> ";
?>
while($row = mysql_fetch_assoc($ophalen)){
Print "<th>Gebruikersnaam:</th> <td>".$info['username'] . "</td> ";
?>
Waar komt $info opeens vandaan? De resultaten van de query die je fetcht komen namelijk in $row terecht.
Tevens heb je ook een hele vreemde (lees: foute) manier van het gebruik van 'th' en 'td' tags.
Gewijzigd op 10/04/2012 14:30:10 door Erwin H
Mag ik vragen waarom je in je database het geslacht als varchar hebt staan ?
Is het niet veel makkelijker om dit als int(1), tinyint, boolean of enum ?
Aangezien je eigenlijk grof maar 2 opties hebt (man/vrouw) kan dit heel goed met;
1/0, true/false
en met ENUM kan je ook 3,4 opties menen.
En Age hoef je niet op te slaan in je database want dit is uit te rekenen door php of mysql (voorkeur mysql) met bijvoorbeeld
(even snel uit me hoofd)
Gewijzigd op 10/04/2012 14:35:40 door Marco PHPJunky