Probleem met mysql_fetch_row

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Erik van Maanen

Erik van Maanen

30/05/2006 18:43:00
Quote Anchor link
Ik heb een MySQL-database draaien waaruit ik de info in een tabel wil krijgen. De bedoeling is dat hij op één regel in de 1e cel de mdl_course.shortname zet, in de 2e cel de mdl_course_sections.summary.

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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();


?>
Gewijzigd op 01/01/1970 01:00:00 door Erik van Maanen
 
PHP hulp

PHP hulp

16/11/2024 07:46:27
 
Frank -

Frank -

30/05/2006 18:50:00
Quote Anchor link
Begin je script ALTIJD met error_reporting(E_ALL); en controleer ALTIJD of je query wel is gelukt. Jij doet de aanname dat alles wel goed gaat, maar geheel volgens verwachting treedt de wet van Murphy in werking.

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.
 
Erik van Maanen

Erik van Maanen

30/05/2006 19:19:00
Quote Anchor link
Ik heb me er al in verdiept, maar kwam er helaas niet uit.

$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
 
Bo az

Bo az

30/05/2006 19:35:00
Quote Anchor link
Je zou bv.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
mysql_query($sql) or die(mysql_error());
?>

kunnen doen, dit is geen voorbeeld van nette fout afhandeling, maar het kan je wel verder helpen ...
 
Frank -

Frank -

30/05/2006 19:42:00
Quote Anchor link
Doe eens een print_r($aRow); Dan kun je zien wat er in de array staat.
 
Erik van Maanen

Erik van Maanen

30/05/2006 20:06:00
Quote Anchor link
Bedankt voor alle tips. De oplossing bleek echter ergens anders te zitten. De server waar de database op staat, staat op mijn werk. Vanaf hier kan ik niks aanpassen op die server.

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?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.