hulp bij database
ik ben net begonnen op php te leren en nu wou ik iets uit een database halen. daar heb ik dit script voor:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$sHostname = 'db.112hulpdiensten-apd.nl' ; //Is meestal localhost
$sUsername = 'md180685db133810' ;
$sPassword = '******' ;
$sDatabase = 'md180685db133810' ;
$rsConnection = mysql_connect($sHostname, $sUsername, $sPassword) ;
mysql_select_db($sDatabase, $rsConnection) ;
$sql = mysql_query('SELECT `leeftijd`, `naam`, `id` * FROM `tbltest`');
echo $sql ;
?>
$sHostname = 'db.112hulpdiensten-apd.nl' ; //Is meestal localhost
$sUsername = 'md180685db133810' ;
$sPassword = '******' ;
$sDatabase = 'md180685db133810' ;
$rsConnection = mysql_connect($sHostname, $sUsername, $sPassword) ;
mysql_select_db($sDatabase, $rsConnection) ;
$sql = mysql_query('SELECT `leeftijd`, `naam`, `id` * FROM `tbltest`');
echo $sql ;
?>
natuurlijk heb ik een database aangemaakt met ene tabel genaamd tbltest, en dri kolommen aangemaakt namelijk: id, naam, leeftijd.
maar als ik deze pagina upload en dan open dan krijg ik een leeg scherm, heeft iemand een idee wat ik fout doe??
alvast bedankt
error_reporting(E_ALL);
ini_set("display_errors", 1);
Dan kun je errors zien, en dan zie je misschien beter waar het mis gaat.
Gewijzigd op 20/10/2010 22:07:45 door Meddiecap B
in jouw $sql staat ook niet zoveel, lees een een sql tutorial door. Ook kan je beter geen backtics gebruiken (`).
dan geeft hij alsnog een lege pagina
$sql = mysql_query('SELECT `leeftijd`, `naam`, `id` * FROM `tbltest`');
...eens:
$sql = mysql_query('SELECT `leeftijd`, `naam`, `id` * FROM `tbltest`') or die ('Fout: ' . mysql_error());
Zo kun je zien of de query wel juist is.
Probeer ook eens:
echo 'In $sql zit: '.$sql;
Quote:
$sql = mysql_query('SELECT `leeftijd`, `naam`, `id` * FROM `tbltest`') or die ('Fout: ' . mysql_error());
die() == kerkhof tactiek. Als jij iets fout doet ga je toch ook niet dood?
Laten we zulke fouten gewoon netjes afhandelen....
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
$sHostname = 'db.112hulpdiensten-apd.nl' ; //Is meestal localhost
$sUsername = 'md180685db133810' ;
$sPassword = '******' ;
$sDatabase = 'md180685db133810' ;
$rsConnection = mysql_connect($sHostname, $sUsername, $sPassword) ;
mysql_select_db($sDatabase, $rsConnection) ;
$result = mysql_query('SELECT leeftijd,naam,id FROM tbltest');
if($result) {
while($data = mysql_fetch_assoc($result)) {
print_r($data);
}
} else {
echo "Er is een fout opgetreden in de query: ".mysql_error();
}
?>
error_reporting(E_ALL);
ini_set("display_errors", 1);
$sHostname = 'db.112hulpdiensten-apd.nl' ; //Is meestal localhost
$sUsername = 'md180685db133810' ;
$sPassword = '******' ;
$sDatabase = 'md180685db133810' ;
$rsConnection = mysql_connect($sHostname, $sUsername, $sPassword) ;
mysql_select_db($sDatabase, $rsConnection) ;
$result = mysql_query('SELECT leeftijd,naam,id FROM tbltest');
if($result) {
while($data = mysql_fetch_assoc($result)) {
print_r($data);
}
} else {
echo "Er is een fout opgetreden in de query: ".mysql_error();
}
?>
Gewijzigd op 20/10/2010 22:23:29 door - Ariën -
Jou manier is beter idd, maar voor een beginner mss een beetje te gevorderd...
Maargoed, @roy, je weet nu hoe je de fout netjes afhandelt.
If-else gebruik is een van de basics die men hoort te kennen, en op de juiste manier hoort te gebruiken.
Blijft vrij sneu dat veel tutorials en boeken liever die() gebruiken.
Code (php)
1
2
3
4
5
2
3
4
5
ping db.112hulpdiensten-apd.nl
PING db.112hulpdiensten-apd.nl (81.4.97.167) 56(84) bytes of data.
64 bytes from blade32.geenpunt.nl (81.4.97.167): icmp_seq=1 ttl=58 time=7.01 ms
64 bytes from blade32.geenpunt.nl (81.4.97.167): icmp_seq=2 ttl=58 time=6.96 ms
64 bytes from blade32.geenpunt.nl (81.4.97.167): icmp_seq=3 ttl=58 time=8.02 ms
PING db.112hulpdiensten-apd.nl (81.4.97.167) 56(84) bytes of data.
64 bytes from blade32.geenpunt.nl (81.4.97.167): icmp_seq=1 ttl=58 time=7.01 ms
64 bytes from blade32.geenpunt.nl (81.4.97.167): icmp_seq=2 ttl=58 time=6.96 ms
64 bytes from blade32.geenpunt.nl (81.4.97.167): icmp_seq=3 ttl=58 time=8.02 ms
Gewijzigd op 20/10/2010 23:42:26 door Aad B
Mag aannemen dat menig systeembeheerder de boel goed dichtgespijkerd heeft.
Aar anoniem op 21/10/2010 00:31:19:
Dit is een naieve veronderstelling. Google maar eens op brute force en brute force passwordEn wat willen die dan doen?
Mag aannemen dat menig systeembeheerder de boel goed dichtgespijkerd heeft.
Mag aannemen dat menig systeembeheerder de boel goed dichtgespijkerd heeft.
Als hij goed beveiligd is, kan je met een brute force ook niks doen.
Gewijzigd op 21/10/2010 09:09:08 door - Ariën -
John D op 21/10/2010 08:53:30:
Aar anoniem op 21/10/2010 00:31:19:
Dit is een naieve veronderstelling. Google maar eens op brute force en brute force passwordEn wat willen die dan doen?
Mag aannemen dat menig systeembeheerder de boel goed dichtgespijkerd heeft.
Mag aannemen dat menig systeembeheerder de boel goed dichtgespijkerd heeft.
Ik vermoed dat Aar ook bedoelt dat je niet van overal toegang mag krijgen tot de database server?
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
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
<?php
# De query
$qry = "SELECT
id,
naam,
leeftijd
FROM
tbltest
ORDER BY
naam
ASC";
# De query uitvoeren
if( $sql = mysql_query( $qry ) )
{
# Als er resultaten zijn
if( mysql_num_rows( $sql ) > 0 )
{
# Data weergeven
while( $rec = mysql_fetch_assoc( $sql ) )
{
echo $rec['id'].'<br />';
echo $rec['naam'].'<br />';
echo $rec['leeftijd'].'<br />';
}
}
else
{
# Er zijn geen resultaten error
echo 'Er zijn geen resultaten.';
}
}
else
{
# Fout in query error, vergeet niet als de site af is de regel met mysql_error() weg te halen...
echo 'Er is een fout opgetreden in de query. <br />';
echo mysql_error();
}
?>
# De query
$qry = "SELECT
id,
naam,
leeftijd
FROM
tbltest
ORDER BY
naam
ASC";
# De query uitvoeren
if( $sql = mysql_query( $qry ) )
{
# Als er resultaten zijn
if( mysql_num_rows( $sql ) > 0 )
{
# Data weergeven
while( $rec = mysql_fetch_assoc( $sql ) )
{
echo $rec['id'].'<br />';
echo $rec['naam'].'<br />';
echo $rec['leeftijd'].'<br />';
}
}
else
{
# Er zijn geen resultaten error
echo 'Er zijn geen resultaten.';
}
}
else
{
# Fout in query error, vergeet niet als de site af is de regel met mysql_error() weg te halen...
echo 'Er is een fout opgetreden in de query. <br />';
echo mysql_error();
}
?>
Hierboven zoals het hoort, met alle checks en wat commentaar zodat je weet wat je daar doet.
If statement is inderdaad gewoon basic, dus leer dat ook gewoon.
Geen resultaat oftewel geen records gevonden is geen error maar ook een correct resultaat technisch gezien.
Code (php)
1
2
3
2
3
# Fout in query error, vergeet niet als de site af is de regel met mysql_error() weg te halen...
echo 'Er is een fout opgetreden in de query. <br />';
echo mysql_error();
echo 'Er is een fout opgetreden in de query. <br />';
echo mysql_error();
Of zorg dat die alleen getoond worden op jouw gebruikersaccount, als je die hebt op je site, of anders je IP.
@ Aar, dat kan ook maar dit is persoonlijke voorkeur. Hoe dan ook de gewone gebruikers het lekker niet laten zien.
het is gelukt, allemaal bedankt