Php Script probleem.
mysql date and time functions.
Mysql kan gewoon dat omzetten, van datum notatie naar andere notatie.
Eigenlijk maakt het per definitie niet uit hoe je het wilt tonen, daar houd je pas rekening mee als je het toont. Misschien wil je nog wel eens RSS toevoegen, dan kan dat niet makkelijk met jouw gare datum opslag.
Mysql kan gewoon dat omzetten, van datum notatie naar andere notatie.
Eigenlijk maakt het per definitie niet uit hoe je het wilt tonen, daar houd je pas rekening mee als je het toont. Misschien wil je nog wel eens RSS toevoegen, dan kan dat niet makkelijk met jouw gare datum opslag.
hoe zou jij het me adviseren dan?
wat heb je zelf al geprobeerd?
Ik heb 2 pagina's
addrapport.php en rapporten.php
Rapporten laat alle rapporten zien.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
echo '
<SELECT class="input" NAME="station">
';
if ($result = mysql_query("SELECT * FROM " . piraten)) {
while ($row=mysql_fetch_assoc($result)) {
// datum en omschrijving zijn willekeurig gekozen
echo '<OPTION value="'.$row['naam'].'">'.$row['naam'].' ['.$row['freq'].'] te '.$row['locatie'].'</OPTION>';
}
}
else {
echo mysql_error();
}
?>
echo '
<SELECT class="input" NAME="station">
';
if ($result = mysql_query("SELECT * FROM " . piraten)) {
while ($row=mysql_fetch_assoc($result)) {
// datum en omschrijving zijn willekeurig gekozen
echo '<OPTION value="'.$row['naam'].'">'.$row['naam'].' ['.$row['freq'].'] te '.$row['locatie'].'</OPTION>';
}
}
else {
echo mysql_error();
}
?>
Rapporten.php (Dus laten zien)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
//Database gegevens
**Hier staat de connectie gegevens**
$try['connect'] = mysql_connect($cfg['host'], $cfg['user'], $cfg['pass']) or die(mysql_error());
$try['selectd'] = mysql_select_db($cfg['datb'], $try['connect']) or die (mysql_error());
$getItems = mysql_query("SELECT * FROM rapporten ORDER BY id");
$evenOdd = 'odd';
while ($item = mysql_fetch_assoc($getItems))
{
echo '<tr><td width="60"></td><td class="stationInfo" style="cursor: default;">' .$item['station'] . '</td><td>' .$item['freq'] . '</td><td>' .$item['locatie'] . '</td><td><img alt="" src="images/' .$item['monostereo'] . '.gif"></td><td><img alt="" src="images/' .$item['rds'] . '.gif"></td><td width="45">' .$item['db'] . ' ' .$item['db2'] . '</td><td class="stationInfo" style="cursor: default;">' .$item['opmerking'] . '</td><td>' .$item['tijd'] . '</td><td class="stationInfo" style="cursor: default;">' .$item['ontvanger'] . '</td></tr>';
}
?>
//Database gegevens
**Hier staat de connectie gegevens**
$try['connect'] = mysql_connect($cfg['host'], $cfg['user'], $cfg['pass']) or die(mysql_error());
$try['selectd'] = mysql_select_db($cfg['datb'], $try['connect']) or die (mysql_error());
$getItems = mysql_query("SELECT * FROM rapporten ORDER BY id");
$evenOdd = 'odd';
while ($item = mysql_fetch_assoc($getItems))
{
echo '<tr><td width="60"></td><td class="stationInfo" style="cursor: default;">' .$item['station'] . '</td><td>' .$item['freq'] . '</td><td>' .$item['locatie'] . '</td><td><img alt="" src="images/' .$item['monostereo'] . '.gif"></td><td><img alt="" src="images/' .$item['rds'] . '.gif"></td><td width="45">' .$item['db'] . ' ' .$item['db2'] . '</td><td class="stationInfo" style="cursor: default;">' .$item['opmerking'] . '</td><td>' .$item['tijd'] . '</td><td class="stationInfo" style="cursor: default;">' .$item['ontvanger'] . '</td></tr>';
}
?>
Dit haal ik dus nu uit piraten.
Hij post de naam.
Dat werkt allemaal goed.
Maar als ik nu op rapporten.php ben.
is het veld locatie nog leeg.
in de tabel piraten staat de locatie ingevuld.
Hoe haal ik dan de Locatie uit de tabel Piraten die bij de naam hoort?
Mvg,
Gewijzigd op 10/02/2011 21:06:16 door Marvin Radioo
Met while haal je een lijst met gegevens op, wil je 1 record ophalen, dan heb je geen while nodig.
Een locatie ophalen die bij een naam hoort kan als volgt:
"SELECT locatie FROM piraten WHERE naam='Jaap'";
Gebruik niet SELECT *. Maar zet gewoon de tabellen neer die jij wilt ophalen. Dit is sneller en overzichtelijker en vaak hoef je niet eens alles op te halen.
Voor een datum hebben ze in de database het type "DATE" of "DATETIME" uitgevonden.
Hierin sla je je datum dan ook ALTIJD op als 2011-02-11 of 2011-02-11 23:58:00
Hoe je je datum dan wil tonen bepaal je met DATE_FORMAT
Bijv. SELECT DATE_FORMAT(datum, '%d-%m-%Y') FROM piraten
Nou krijg je de datum als 10-02-2011. Het voordeel is dat je nu bijv ook het weeknummer kunt opvragen, of er een volledige datum als "donderdag 10 februari 2011" van kunt maken. Je kunt gegevens tonen tussen 2 bepaalde datums. en nog veel meer dingen die niet kunnen als jij je datum gaat opslaan als 11-2-2011.
Gewijzigd op 11/02/2011 00:02:39 door Michael -
Code (php)
1
2
3
4
5
2
3
4
5
<?php $sql = "SELECT locatie FROM piraten WHERE id = "' .$item['station'] . '"
$query = mysql_query($sql) or die(mysql_error());
$hoeveel = mysql_result($query,0,0);
echo $hoeveel; ?>
$query = mysql_query($sql) or die(mysql_error());
$hoeveel = mysql_result($query,0,0);
echo $hoeveel; ?>
Dit gebruik ik nu, alleen nu laat hij niks zien.
Hoe kan dat?
or die is niet de mooiste manier van foutafhandeling.
Code (php)
1
2
3
4
5
2
3
4
5
<?php $sql = "SELECT locatie FROM piraten WHERE id = '" .$item['station'] . "'";
$query = mysql_query($sql) or die(mysql_error());
$hoeveel = mysql_result($query,0,0);
echo $hoeveel; ?>
$query = mysql_query($sql) or die(mysql_error());
$hoeveel = mysql_result($query,0,0);
echo $hoeveel; ?>
Gewijzigd op 11/02/2011 22:17:42 door Tur min
Vertel dan ook hoe je wel een goede fout afhandeling bouwt.
@TS
Een goede fout afhandeling kan je het beste maken door een if / else structuur te gebruiken zoals hieronder is weergegeven:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$query = '...';
$result = mysql_query( $query );
if( !$result ) {
trigger_error( 'Er is een fout opgetreden bij het uitvoeren van de query.' );
exit;
}
$query = '...';
$result = mysql_query( $query );
if( !$result ) {
trigger_error( 'Er is een fout opgetreden bij het uitvoeren van de query.' );
exit;
}
Gewijzigd op 12/02/2011 10:35:18 door Niels K
Tur min op 11/02/2011 22:17:11:
Zoals je aan de kleuren kunt zien, zit er een fout in je quotes. Ook sluit je $sql niet af.
or die is niet de mooiste manier van foutafhandeling.
or die is niet de mooiste manier van foutafhandeling.
Code (php)
1
2
3
4
5
2
3
4
5
<?php $sql = "SELECT locatie FROM piraten WHERE id = '" .$item['station'] . "'";
$query = mysql_query($sql) or die(mysql_error());
$hoeveel = mysql_result($query,0,0);
echo $hoeveel; ?>
$query = mysql_query($sql) or die(mysql_error());
$hoeveel = mysql_result($query,0,0);
echo $hoeveel; ?>
Krijg de error: Parse error: parse error, expecting `','' or `';'' in C:\Abyss Web Server\htdocs\rapporten.php on line 129
Dat is op de eerste regel van