[php+mysql] mysql_fetch_row

Pagina: 1
Acties:
  • 169 views sinds 30-01-2008
  • Reageer

  • tabaqui
  • Registratie: Februari 2000
  • Laatst online: 18:09
ik zit al een paar dagen met het volgende probleem op 1 van mijn webpagina's, wil een andere database gaan gebruiken en daarvoor moest ik een pagina aanpassen, de aanpassingen in de code zijn gemaakt maar nu werkt het geheel niet meer

Wie kan mij helpen?

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
54
55
56
57
58
59
60
<?php
include("../../login/dbinc.php");
$bdaysql = "SELECT 'ID', 'naam', 'achternaam', 'geboortedatum' 
FROM 'personal' 
ORDER BY 'achternaam', 
DATE_FORMAT(geboortedatum, \"%M %e, %Y\") AS Birthday, 
MONTH(Birthday) AS MonthIndex, 
DAYOFMONTH(Birthday) AS DayIndex, 
DAYOFYEAR(Birthday) AS DayBirthday, 
DAYOFYEAR(NOW()) AS DayOfYear, (YEAR(NOW()) - YEAR(Birthday)) 
AS Age FROM 'personal' 
WHERE YEAR(Birthday) <= YEAR(NOW()) ORDER BY MonthIndex, DayIndex";
    
     $sql_bday = mysql_query($bdaysql, $connection);
        if (!$connection) {
        echo("<P>An error occurred while trying to connect to the server.");
        echo("<P>Error ".mysql_errno().": ".mysql_error()."<BR>");
        exit();
    }
    
    echo("                <TABLE WIDTH=500 BORDER=0 CELLPADDING=0 CELLSPACING=0>\n");
    echo("                  <TR><TD CLASS=\"headText\" >Naam</td>
<td class=\"headText\">Verjaardag</td>
<td class=\"headText\">leeftijd bij vlg. verjaardag</td></tr>\n");
    while ($t_bday = mysql_fetch_row($sql_bday)) {
        $bday_ID = $t_bday["ID"];
        $bday_FullName = sprintf("%s %s",$t_bday["naam"],$t_bday["achternaam"]);
        $bday_Birthday = $t_bday["Birthday"];
        $birthday = strtotime($bday_Birthday);
        $year = date("Y", $birthday);
        $month = date("m", $birthday);
        $day = date("d", $birthday);
        $today_year = date("Y", time());
        $today_month = date("m", time());
        $today_day = date("d", time());
        
        // persoon moet dit jaar nog jarig worden
        if (($month > $today_month)) {
            $age = $today_year - $year;
        }
        else if(($month == $today_month) && ($day < $today_day)) {
            $age = $today_year - $year + 1;
        }
        else if(($month == $today_month) && ($day > $today_day)) {
            $age = $today_year - $year;
        }
        else {
            $age = $today_year - $year + 1;
        }
        $bday_Age = $age;

        echo("                  <TR>\n");
        echo("                    <TD CLASS=\"listEntry\">
<A HREF=\"" . FILE_ADDRESS . "?id=$bday_ID\">$bday_FullName</A></TD>\n");
        echo("                    <TD CLASS=\"listEntry\">$bday_Birthday</TD>\n");
        echo("                    <TD CLASS=\"listEntry\">$bday_Age yrs</TD>\n");
        echo("                  </TR>\n");
    }
    echo("                </TABLE>\n");
?>


geeft de volgende melding:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/xplo/public_html/leden/adres/list2.php on line 14

Maak van jouw probleem niet mijn probleem


Verwijderd

Tabaqui schreef op 16 september 2004 @ 13:53:
ik zit al een paar dagen met het volgende probleem op 1 van mijn webpagina's, wil een andere database gaan gebruiken en daarvoor moest ik een pagina aanpassen, de aanpassingen in de code zijn gemaakt maar nu werkt het geheel niet meer

Wie kan mij helpen?
Jijzelf, zet even een
PHP:
1
echo mysql_error();

direct achter die mysql_query()

Verwijderd

Wel raar dat je $connection pas checked nadat je de query hebt gedaan...

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022

Reveller

Hopla!

Misschien trap ik een open deur in...maar draai de query eerst eens in mysql (of bv. phpmyadmin) en kijkt of je ueberhaupt wat terugkrijgt. Anders is je query verkeerd of bestaan de gegevens geheel niet. Pas als dat werkt, heeft het zin verder te kijken denk ik. :)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • tabaqui
  • Registratie: Februari 2000
  • Laatst online: 18:09
Verwijderd schreef op 16 september 2004 @ 13:57:
[...]

Jijzelf, zet even een
PHP:
1
echo mysql_error();

direct achter die mysql_query()
Gedaan,
krijg dan de volgende foutmelding You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS Birthday, MONTH(Birthday) AS MonthIndex, DAYOFMONTH(Birthda
maar het vreemde hiervan vindt ik dat de $bdsql op dat stukje niet veranderd is met de oude pagina

oude $bdsql
PHP:
1
2
3
$bdaysql = "SELECT ID, CONCAT(FirstName,' ',LastName) AS FullName, DATE_FORMAT(Birthday, \"%M %e, %Y\") AS Birthday,
MONTH(Birthday) AS MonthIndex, DAYOFMONTH(Birthday) AS DayIndex, DAYOFYEAR(Birthday) AS DayBirthday, DAYOFYEAR(NOW()) AS DayOfYear, (YEAR(NOW()) - YEAR(Birthday)) AS Age
FROM Contact WHERE YEAR(Birthday) <= YEAR(NOW()) ORDER BY MonthIndex, DayIndex";


nieuwe:
PHP:
1
2
3
$bdaysql = "SELECT ID, naam, achternaam, geboortedatum FROM personal ORDER BY achternaam, DATE_FORMAT(geboortedatum, \"%M %e, %Y\") AS Birthday, 
MONTH(Birthday) AS MonthIndex, DAYOFMONTH(Birthday) AS DayIndex, DAYOFYEAR(Birthday) AS DayBirthday, DAYOFYEAR(NOW()) AS DayOfYear, (YEAR(NOW()) - YEAR(Birthday)) AS Age 
FROM personal WHERE YEAR(Birthday) <= YEAR(NOW()) ORDER BY MonthIndex, DayIndex";

[ Voor 43% gewijzigd door tabaqui op 16-09-2004 14:18 ]

Maak van jouw probleem niet mijn probleem


  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 12-05 15:26

Eelke Spaak

- Vlad -

Volgens mij moet je toch echt eerst alle velden die je wil selecteren specificeren, en daarna pas FROM tabelnaam zetten.

Dus niet:

SQL:
1
SELECT naam, geboortedatum FROM tabelletje, DATEFORMAT(geboortedatum) AS geformatteerd


of wat dan ook, maar:

SQL:
1
SELECT naam, geboortedatum, DATEFORMAT(geboortedatum) AS geformatteerd FROM tabelletje

TheStreme - Share anything with anyone


Verwijderd

Twee keer FROM in een query lijkt me ook niet zo handig nee, en als je dan de tabel aan wilt geven kan dat zo:

SELECT tabel1.veld, tabel2.veld FROM tabel1,tabel2 ....

  • tabaqui
  • Registratie: Februari 2000
  • Laatst online: 18:09
dank u allen,

ben al een stuk verder in de bughunt
code:
1
2
3
4
5
6
7
8
9
10
11
SELECT personal.ID, personal.naam, personal.achternaam, personal.geboortedatum, 
DATE_FORMAT( geboortedatum, '%M %e, %Y' ) AS Birthday, 
MONTH( Birthday ) AS MonthIndex, 
DAYOFMONTH( Birthday ) AS DayIndex, 
DAYOFYEAR( Birthday ) AS DayBirthday, 
DAYOFYEAR( NOW( ) ) AS DayOfYear, 
YEAR( NOW( ) ) - YEAR( Birthday ) AS Age
WHERE YEAR( Birthday ) <= YEAR( NOW( ) ) 
ORDER BY MonthIndex, DayIndex
FROM Personal
ORDER BY personal.achternaam

is het nu, maar nu gaat het hier:
WHERE YEAR( Birthday ) <= YEAR( NOW( ) )
ORDER BY
nog fout, error in de sql syntax

Maak van jouw probleem niet mijn probleem


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
ff goed herschrijven naar hoe hij het zou moeten doen.
code:
1
2
3
4
5
6
7
8
9
10
SELECT personal.ID, personal.naam, personal.achternaam, personal.geboortedatum, 
DATE_FORMAT( geboortedatum, '%M %e, %Y' ) AS Birthday, 
MONTH( Birthday ) AS MonthIndex, 
DAYOFMONTH( Birthday ) AS DayIndex, 
DAYOFYEAR( Birthday ) AS DayBirthday, 
DAYOFYEAR( NOW( ) ) AS DayOfYear, 
YEAR( NOW( ) ) - YEAR( Birthday ) AS Age
FROM Personal
WHERE YEAR( Birthday ) <= YEAR( NOW( ) ) 
ORDER BY MonthIndex, DayIndex,personal.achternaam


Maar kijk eens naar een sql-tutorial / boek. Want dit is allemaal gewoon basic.

  • tabaqui
  • Registratie: Februari 2000
  • Laatst online: 18:09
tnx, het werkt

Maak van jouw probleem niet mijn probleem

Pagina: 1