Probleem met mysql_fetch_row
Mijn webform levert de waarden voor $nivo, $periode, en $week.
Als ik hem nu run krijg ik als output de tabel, maar zonder enige inhoud. Het lijkt erop dat hij niks doet met hetgeen in de WHILE staat (regel 22)
Ziet iemand wat ik fout doe?
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
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
<?PHP
// form vraagt naar $nivo $periode $week
// Make a MySQL Connection
mysql_connect("localhost", "username", "passwd");
mysql_select_db("moodle");
// Run sql
$sql = "SELECT mdl_course.shortname , mdl_course_sections.summary, mdl_course_sections.section"
. " FROM mdl_course LEFT JOIN mdl_course_sections ON ( mdl_course.id = mdl_course_sections.course )"
. " WHERE ( mdl_course.shortname like '$nivo%$periode' AND mdl_course_sections.section like '$week')"
. " ORDER BY mdl_course.shortname LIMIT 0, 30";
$res = mysql_query($sql);
// begin table
echo "<table rules = 'all' frame='border'>";
echo "<tr><td><b>Vak</b></td><td><b>Weektaak</b></td></tr>";
// Voeg resultaten in
while ($aRow = mysql_fetch_row($res))
{
echo "<tr>";
echo "<td>$aRow[0]</td>";
echo "<td>$aRow[1]</td>";
echo "</tr>";
}
// end table
echo "</table>";
// Close MySQL Connection
mysql_close();
?>
// form vraagt naar $nivo $periode $week
// Make a MySQL Connection
mysql_connect("localhost", "username", "passwd");
mysql_select_db("moodle");
// Run sql
$sql = "SELECT mdl_course.shortname , mdl_course_sections.summary, mdl_course_sections.section"
. " FROM mdl_course LEFT JOIN mdl_course_sections ON ( mdl_course.id = mdl_course_sections.course )"
. " WHERE ( mdl_course.shortname like '$nivo%$periode' AND mdl_course_sections.section like '$week')"
. " ORDER BY mdl_course.shortname LIMIT 0, 30";
$res = mysql_query($sql);
// begin table
echo "<table rules = 'all' frame='border'>";
echo "<tr><td><b>Vak</b></td><td><b>Weektaak</b></td></tr>";
// Voeg resultaten in
while ($aRow = mysql_fetch_row($res))
{
echo "<tr>";
echo "<td>$aRow[0]</td>";
echo "<td>$aRow[1]</td>";
echo "</tr>";
}
// end table
echo "</table>";
// Close MySQL Connection
mysql_close();
?>
Gewijzigd op 01/01/1970 01:00:00 door Erik van Maanen
Ga je er eens in verdiepen en probeer het zelf op te lossen. Echo de query ook eens, dan weet je wat er wordt verstuurd naar de database.
Verder kun je beter mysql_fetch_assoc() gebruiken i.p.v. mysql_fetch_row(). Met de keys 0 en 1 weet je nooit wat er nu als output op je scherm komt te staan.
$sql levert de bedoelde query, deze heb ik ook direct de database ingestuurd om te controleren of er wel resultaten zijn.
$res geeft Resource id #3
kunnen doen, dit is geen voorbeeld van nette fout afhandeling, maar het kan je wel verder helpen ...
Doe eens een print_r($aRow); Dan kun je zien wat er in de array staat.
Ik zet net de php-file op een andere server (waar ik wel nu bijkan), verander de localhost naar het adres in mysql_connect... en opeens werkt het :)
Al ben ik blij dat het werkt; ik snap er nu helemaal niks meer van. Waarom werkt het wel vanaf een externe server, maar niet vanaf de server zelf?