check op data
Ik probeer alle tekst op mijn site vanuit de database te halen.
Nou wil ik een controle inbouwen dat als er geen data is, er een melding wordt weer gegeven dat er geen data is.
Dat heb ik als volgt geprobeerd:
Code (php)
Hier heb ik vervolgens een functie van gemaakt, maar dat werkt nog niet zoals het helemaal moet.
Ik wil namelijk de eerste echo, de echo waarmee ik dus het resultaat uit de database haal, als het ware variabel maken. Ik wil namelijk de functie meerdere keren aanroepen, eerst voor de titel, dan bericht, en vervolgens op datum en bron.
Als je meer informatie wilt, zegt u t maar, ik weet het niet meer... :S
Gr. mark
if($query) {
Zie de diverse tutorials.
Bouw foutafhandeling in.
Of is het probleem dat je niet weet welke variabele je op wilt halen?
1) Controleren of er gegevens in je result (hetgeen mysql_query terug geeft) zitten kan op meerdere manieren. Een gemakkelijke manier is mysql_num_rows():
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$exec = mysql_query( 'SELECT * FROM table WHERE id = 1');
if(mysql_num_rows( $exec ) > 0){
// ja, er zijn gegevens, hier fetchen
}else{
// nee geen gegevens, echo'en maar
}
?>
$exec = mysql_query( 'SELECT * FROM table WHERE id = 1');
if(mysql_num_rows( $exec ) > 0){
// ja, er zijn gegevens, hier fetchen
}else{
// nee geen gegevens, echo'en maar
}
?>
2) Je wilt meerdere variabelen ophalen uit je database? Ja dat kan. In de SELECT query kun je aangeven welke kolommen er opgehaald worden. "*" voor alle kolommen, anders de kolomnaam specificeren, gescheiden door een komma, zoals SELECT id, name, title FROM table.
Daarna kunnen deze gegevens opgehaald worden met mysql_fetch-array():
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
while($data = mysql_fetch_array( $exec )){
echo $data[ 'title' ]; // kolomnaam 'title' in de DB
echo $data[ 'message']; // kolomnaam 'message' in DB
// etc.
}
?>
while($data = mysql_fetch_array( $exec )){
echo $data[ 'title' ]; // kolomnaam 'title' in de DB
echo $data[ 'message']; // kolomnaam 'message' in DB
// etc.
}
?>
Hopelijk helpt je dit verder.
Gewijzigd op 01/01/1970 01:00:00 door Dbr Br
Edit: Okee, je had het al door en je was een stuk sneller. ;-)
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Gewijzigd op 01/01/1970 01:00:00 door Dbr Br
die if($query) { sloeg op hierop, was ik vergeten in te voegen.
Code (php)
1
2
3
2
3
<?php
$query = mysql_query("SELECT titel,bericht,datum,link FROM tekst WHERE id='". $id ."'");
?>
$query = mysql_query("SELECT titel,bericht,datum,link FROM tekst WHERE id='". $id ."'");
?>
Ik ben beginnend, wil t graag goed leren, kun je mij vertellen welke controles ik moet inbouwen? of anders een linkje geven, spit ik t zelf door.
@ Dave:
Jou script komt volgens mij aardig overeen met het doel wat ik met dat van mij voor ogen had, alleen waar het me om gaat is dat ik dit script in een functie wil stoppen, en vervolgens de gegevens, wanneer die bestaan, op een andere plek echoen.
EDIT:
Ik wil dus de kolomnaam als het ware variabel maken. Dat ik dus wanneer ik de functie aanroep een andere kolomnaam kan gebruiken.
Gewijzigd op 01/01/1970 01:00:00 door mark moes
mark moes schreef op 05.02.2009 11:01:
@SanThe:
die if($query) { sloeg op hierop, was ik vergeten in te voegen.
die if($query) { sloeg op hierop, was ik vergeten in te voegen.
Code (php)
1
2
3
2
3
<?php
$query = mysql_query("SELECT titel,bericht,datum,link FROM tekst WHERE id='". $id ."'");
?>
$query = mysql_query("SELECT titel,bericht,datum,link FROM tekst WHERE id='". $id ."'");
?>
$query is dus niet zoals de naam doet vermoeden een query, maar een result van het uitvoeren van een query. $result zou een betere benaming zijn.
Na heel veel edits hier in deze topic, en heel veel gepruts meer van mij, kan ik de blijde mededeling doen dat ik 'er uit' ben. Graag wat feedback (bijvoorbeeld van SanThe, jij gaf aan dat er meer controle moest komen)
of de controles goed zijn, en of er geen fouten in zitten.
Dit heb ik er van gemaakt, en het werkt hier vlekkeloos:
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
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
<?php
if(isset($_GET['id']) && is_numeric($_GET['id'])) {
$id = $_GET['id'];
}
else {
$id = 1;
}
$sql = "SELECT * FROM tekst WHERE id='". $id ."'";
$result = mysql_query($sql);
if (mysql_num_rows($result) >=1)
{
while ($row = mysql_fetch_array($result))
{
echo '<div class="headline">';
echo $row['titel'];
echo '</div>';
echo '<div class="text">';
echo $row['bericht'];
echo '</div>';
echo '<div class="footer">';
echo $row['datum'];
echo '</div>';
}
}
else
{
echo '<div class="headline">';
echo '</div>';
echo '<div class="text">';
echo 'Op dit moment zijn er (nog) geen gegevens beschikbaar.';
echo '</div>';
echo '<div class="footer">';
echo '</div>';
}
?>
if(isset($_GET['id']) && is_numeric($_GET['id'])) {
$id = $_GET['id'];
}
else {
$id = 1;
}
$sql = "SELECT * FROM tekst WHERE id='". $id ."'";
$result = mysql_query($sql);
if (mysql_num_rows($result) >=1)
{
while ($row = mysql_fetch_array($result))
{
echo '<div class="headline">';
echo $row['titel'];
echo '</div>';
echo '<div class="text">';
echo $row['bericht'];
echo '</div>';
echo '<div class="footer">';
echo $row['datum'];
echo '</div>';
}
}
else
{
echo '<div class="headline">';
echo '</div>';
echo '<div class="text">';
echo 'Op dit moment zijn er (nog) geen gegevens beschikbaar.';
echo '</div>';
echo '<div class="footer">';
echo '</div>';
}
?>
Ik hoor t graag! Van fouten wil ik leren...
Gewijzigd op 01/01/1970 01:00:00 door mark moes