probleem met selecteren en weergeven database gegevens
met onderstaand script is het de bedoeling om bestanden te laten weergeven die op de server zijn opgeslagen.
In een databasetabel "files" wordt bij het uploaden een "file_id", "categorie_id", "user", "filename", "filelocation" en "date" megegeven.
als er nog geen categorie geselecteerd is, dan moet deze eerst gekozen worden. eens er een categorie gekozen wordt, wordt de "categorie_id" meegegeven in de url met GET. en tot hier toe werkt alles zoals het hoort.
op basis van die "categorie_id" laat ik dan alle bestanden zien die volgens de database daarbij horen. indien er geen bestanden zijn met een categorie, dan wil ik dat er "Geen resultaten." getoond wordt.
weet iemad wat er fout loopt want zelf kan ik het niet vinden
alvast bedankt
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
51
52
53
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
51
52
53
<?php
if (isset($_SESSION['id'])) {
include("dbconnect.php");
if (isset($_GET['categorie'])) {
$sql_get_files = "SELECT user, filename, filelocation, date FROM files WHERE categorie_id='". $_GET['categorie'] ."'";
$res_get_files = mysql_query($sql_get_files) or die(mysql_error());
if (mysql_num_rows($sql_get_files) > 0) {
echo "<h2>". $_GET['categorie'] ."</h2>";
echo "<table class='edit'>";
echo "<tr>";
echo "<td>Naam</td>";
echo "<td>Door</td>";
echo "<td>Datum</td>";
echo "</tr>";
while ($row = mysql_fetch_array($res_get_files)) {
echo "<tr>";
echo "<td><a href='". $row['filelocation'] ."'>". $row['filename'] ."</td>";
echo "<td>". $row['user'] ."</td>";
echo "<td>". $row['date'] ."</td>";
echo "</tr>";
}
} else {
echo "Geen resultaten";
}
} else {
$sql_get_cat = "SELECT id, categorienaam FROM categorie";
$res_get_cat = mysql_query($sql_get_cat) or die(mysql_error());
echo "<h2>Bestanden</h2>";
echo "<form action='' method='get'>";
echo "<select class='sel50' name='categorie'>";
while ($row = mysql_fetch_array($res_get_cat)) {
echo "<option value='". $row['id'] ."'>". $row['categorienaam'] ."</option>";
}
echo "</select>";
echo "<input type='submit' name='' value='Volgende' />";
echo "</form>";
}
} else {
echo "U dient ingelogd te zijn.";
}
?>
if (isset($_SESSION['id'])) {
include("dbconnect.php");
if (isset($_GET['categorie'])) {
$sql_get_files = "SELECT user, filename, filelocation, date FROM files WHERE categorie_id='". $_GET['categorie'] ."'";
$res_get_files = mysql_query($sql_get_files) or die(mysql_error());
if (mysql_num_rows($sql_get_files) > 0) {
echo "<h2>". $_GET['categorie'] ."</h2>";
echo "<table class='edit'>";
echo "<tr>";
echo "<td>Naam</td>";
echo "<td>Door</td>";
echo "<td>Datum</td>";
echo "</tr>";
while ($row = mysql_fetch_array($res_get_files)) {
echo "<tr>";
echo "<td><a href='". $row['filelocation'] ."'>". $row['filename'] ."</td>";
echo "<td>". $row['user'] ."</td>";
echo "<td>". $row['date'] ."</td>";
echo "</tr>";
}
} else {
echo "Geen resultaten";
}
} else {
$sql_get_cat = "SELECT id, categorienaam FROM categorie";
$res_get_cat = mysql_query($sql_get_cat) or die(mysql_error());
echo "<h2>Bestanden</h2>";
echo "<form action='' method='get'>";
echo "<select class='sel50' name='categorie'>";
while ($row = mysql_fetch_array($res_get_cat)) {
echo "<option value='". $row['id'] ."'>". $row['categorienaam'] ."</option>";
}
echo "</select>";
echo "<input type='submit' name='' value='Volgende' />";
echo "</form>";
}
} else {
echo "U dient ingelogd te zijn.";
}
?>
Gewijzigd op 23/01/2013 14:00:32 door Ch th
Probeer eens mysql_num_rows van je query te echo'n.
dan krijg ik helaas niks te zien
inderdaad, ik heb het aangepast maar blijft hetzelfde probleem
Hoe ziet je tabel er uit?
Is je $_SESSION wel gevuld? Want als dat niet zo is kom je ook verder dan regel 1.
en mij tabel ziet er als volgt uit:
file_id | categorie_id | user | filename | filelocation | date
Misschien bij SELECT in je query ook categorie_id even selecteren.
ik include deze zit script in een andere pagina en wanneer ik dus voor de eerste keer op de pagina kom dan ziet de url er als volgt uit: ../vw.php?page=viewfiles
wanneer ik vervolgens een categorie selecteer en dan op "Volgende" klik, dan ziet deze er zo uit: /vw.php?categorie=10
en dat zou dus eigenlijk
../vw.php?page=viewfiles&categorie=10 moeten zijn.
hoe kan ik dit realiseren?
Wat denk ik handiger is is om gewoon even echt te gaan debuggen. Plaats na elke regel code een echo met het regelnummer. Zie wat je op je scherm krijgt. Eerste regel die je niet ziet geeft dan dus het probleem.
Toevoeging op 23/01/2013 14:43:23:
echo "<form action='?page=viewfiles' method='get'>";
Of een hidden input
<input type="hidden" name="page" value="viewfiles">
Gewijzigd op 23/01/2013 14:44:03 door Erwin H
oké, bedankt. het werkt zoals het hoort nu ;)