PFZ.nl - PHP Community: Error in MySQL - Databases - Forum - PFZ.nl - PHP Community

Je kunt niet antwoorden op dit topic
#1 02-09-2012 11:48
  • Quart
  • Groep: Forumleden
  • Posts: 42
  • Actief sinds: 29-07-2012
Ik heb een fout zitten in MySQL. Ik krijg deze niet opgelost.

In de bijlage een printscreen wat de melding inhoudt.

Bvd.

[IMG]http://i46.tinypic.com/ofoyef.jpg[/IMG]

#2 02-09-2012 12:07
Quart, de melding kun je gewoon hier over typen, het is niet nodig om daar een plaatje van te maken. Als het plaatje weg is, is het nut van dit topic namelijk ook weg.

Beschrijf hier:
- wat je aan het doen bent,
- welke query je draait,
- waar het in je php code fout gaat
- welke foutmelding je krijgt,
- en wat je zelf al geprobeerd hebt om het op te lossen.

Dan kunnen we je veel beter en gerichter helpen. Het topic is nu 'wat karig'. Zie ook onze wiki hierover: Vragen stellen en antwoord krijgen.

Bekijk ook eens onze Troubleshooter en foutmeldingen artikel, dan kun je eerst zelf op zoek gaan naar foutmeldingen en deze proberen op te lossen.

#3 02-09-2012 12:46
  • Quart
  • Groep: Forumleden
  • Posts: 42
  • Actief sinds: 29-07-2012
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/schaesberg/domains/vvschaesberg.nl/public_html/wedstrijdschema.php on line 35

Er is nog geen wedstrijdschema beschikbaar.

- Alle wedsstrijden ( voetbalclub ) zijn in gebracht in de database. Op de teampagina van het desbtreffende team kun je nu een volledig wedstrijdschema opvragen.

Echter dan zie je bovenstaande foutmelding.

Kijk ik naar de line ( 35 ) dan zou daar de fout moeten zitten. Echter ik heb geen idee wat er fout staat.

Ik heb op internet gekeken naar dezelfde soort meldingen echyter nergens staat een goede oplossing gegeven.

by the way is mijn kennisn van SQl en PHP nog lang niet zo optimaal.

Dit is het script van de line waar het fout zou zitten: Ik heb er LINE 35 voorgezet!

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
$categorie = $_GET['p2'];
if($categorie == "junioren")
{
    $categorie_q = "jeugd";    
}
elseif($categorie == "pupillen")
{
    $categorie_q = "jeugd";    
}
else
{
    $categorie_q = $categorie;    
}
$team = $_GET['p3'];
$seizoen = "2012-2013";

if(substr($team,0,4) == "team")
{
    $get_team = str_replace("team-", "", $team);
}
else
{
    $get_team = $team;
}

$teamvolledig = "V.V. Schaesberg " . $get_team;


echo "<h1 style=\"padding:0px 0px 15px 0px;\">Wedstrijdschema " . ucfirst($categorie) . " " . ucfirst(str_replace("-", " ", $team)) . " seizoen " . $seizoen . "</h1>";

$query_wedstrijden = "SELECT *, DATE_FORMAT(datum, '%a %e %M %Y') as datum_format, DATE_FORMAT(tijd, '%H:%i') as tijd_format FROM wedstrijdschema WHERE categorie = '$categorie_q' AND (thuis = '$teamvolledig'OR uit = '$teamvolledig') AND seizoen '2012-2013' AND (doelpunten_thuis IS NULL AND doelpunten_uit IS NULL) ORDER BY datum ASC";

$result_wedstrijden = mysql_query($query_wedstrijden);
LINE 35 !! if(mysql_num_rows($result_wedstrijden) !=0)
{
    echo "<table style=\"width:100%;\" cellpadding=\"5\" cellspacing=\"1\">";
    while($record_wedstrijden = mysql_fetch_object($result_wedstrijden))
    {
        if($record_wedstrijden->status != "")
            {
                $status = "<div style=\"color:red; font-weight:bold;\">" . $record_wedstrijden->status . "</div>";
            }
            else
            {
                $status = "-";
            }
            
            
        if($record_wedstrijden->thuis == $teamvolledig)
        {
            $thuis = "<b>" . $record_wedstrijden->thuis . "</b>";    
        }
        else
        {
            $thuis = $record_wedstrijden->thuis;
        }
        
        if($record_wedstrijden->uit == $teamvolledig)
        {
            $uit = "<b>" . $record_wedstrijden->uit . "</b>";    
        }
        else
        {
            $uit = $record_wedstrijden->uit;
        }
            
        $bg = ($a++ % 2) ? "#ffffff" : "#ebebeb";
        echo "<tr style=\"background-color:" . $bg . ";\">
                <td style=\"width:143px; font-size:11px;\">" . ucfirst(nlMonth($record_wedstrijden->datum_format)) . "</td>";
                
                if($record_wedstrijden->thuis == "Geen team" or $record_wedstrijden->uit == "Geen team")
                {
                    echo "<td colspan=\"5\" style=\"font-size:11px;\"><center><i>Geen wedstrijd</i></center></td>";
                }
                else
                {
                    echo"
                <td style=\"font-size:11px;\">" . $record_wedstrijden->tijd_format . "</td>
                <td style=\"font-size:11px;\">" . $record_wedstrijden->type . "</td>
                <td style=\"font-size:11px; text-align:right;\">" . $thuis . "</td>
                <td style=\"font-size:11px; text-align:center;\">" . $status . "</td>
                <td style=\"font-size:11px;\">" . $uit . "</td>
        </tr>";
                }
    }
    echo "</table>";
    echo "<p>&nbsp;</p>";
}
else
{
    echo "<p style=\"font-size:11px font-weight:bold; font-style:italic;\">Er is nog geen wedstrijdschema beschikbaar.</p>";    
}

?>

#4 02-09-2012 13:05
Dat lijkt er al meer op Quart, kun je ook nog even je post bewerken en de code tussen de bestemde code tags [php][/ php] (zonder spatie) zetten?

#5 02-09-2012 13:09
  • Quart
  • Groep: Forumleden
  • Posts: 42
  • Actief sinds: 29-07-2012
Hoe bedoelt u dit? bvd.

#6 02-09-2012 13:14
De code die je nu hebt geplaatst is niet echt leesbaar omdat hier geen tabs en kleurtjes bij staan. Als je onderaan dat bericht op de 'Bewerk'-knop klikt, en om de code [php][ /php] plaatst, wordt de code netjes ingesprongen en in kleurtjes weergegeven. Dat maakt alles een stuk leesbaarder.

Tip: Als je een bericht plaatst, kun je ook op de knop 'gebruik volledige editor' gebruiken. Deze editor heeft meer functies, waaronder de mogelijkheid om de code-tags ([php][/ php]) om jouw code te zetten met een muisklik.

#7 02-09-2012 13:21
  • Quart
  • Groep: Forumleden
  • Posts: 42
  • Actief sinds: 29-07-2012
1
LINE 35 !! if(mysql_num_rows($result_wedstrijden) !=0)

#8 02-09-2012 13:23
Ik bedoelde dus in je vorige bericht, zodat alle code leesbaar werd.. ik zal het dit keer voor je doen, graag de volgende keer zelf en meteen doen, dan kunnen we on-topic blijven!

#9 02-09-2012 13:32
De query waar het om gaat:
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
$query_wedstrijden = "
    SELECT 
        * 
    ,   DATE_FORMAT(datum, '%a %e %M %Y') as datum_format
    ,   DATE_FORMAT(tijd, '%H:%i') as tijd_format 
    FROM 
        wedstrijdschema 
    WHERE 
        categorie = '$categorie_q' 
    AND 
    (
            thuis = '$teamvolledig'
        OR 
            uit = '$teamvolledig'
    ) 
    AND 
        seizoen '2012-2013' 
    AND 
    (
            doelpunten_thuis IS NULL 
        AND 
            doelpunten_uit IS NULL
    ) 
    ORDER BY 
        datum ASC";

Tip 1: Schrijf een query over meerdere regels uit, het kost niets in snelheid, maar maakt alles wel een heel stuk leesbaarder zodat je sneller je eigen fouten zult vinden.
Tip 2: Benoem alle kolommen die je nodig hebt, en gebruik geen asterisk. Dit gaat vroeg of laat namelijk verkeerd als je tabellen moet gaan koppelen. Beter is het om jezelf aan te leren de kolommen te benoemen, dan doe je het nooit fout en weet je tenminste precies welke gegevens je query ophaalt.


Je krijgt die foutmelding omdat je query fout gaat (je mist ergens een =) en jij daar niet op controleert voordat je verder gaat.

Lees het volgende artikel eens, daarin staat precies uitgelegd hoe je te werk moet gaan als je gegevens uit een database wilt halen. zie http://www.pfz.nl/wi...ndeling-in-php/


Tip 3: Let er ook op dat je site nu gevoelig is voor SQL Injectie en XSS... Lees dit artikel om te leren hoe je SQL injectie kunt voorkomen, en dit artikel om te leren hoe je XSS kunt voorkomen.

#10 02-09-2012 13:50
  • Quart
  • Groep: Forumleden
  • Posts: 42
  • Actief sinds: 29-07-2012
Tot zover is het mij we duidelijk.

Echter ik snap niet waar ik dan kan zien waar die " = " is vergeten?

#11 02-09-2012 14:00
Kijk eens op regel 17 in de query.

Als het verder ook duidelijk is, kun je je query dan aanpassen zodat deze beveiligd is tegen SQL Injectie? Hebben we dat euvel ook al verholpen voordat het misgaat.

Verder moet je je phpcode dus ook aanpassen zodat deze foutmelding niet meer gegeven wordt. Vraag aan jou om te controleren of je het artikel inderdaad begrepen hebt: Welke controle moet je dus uitvoeren, en waar hoort deze controle uitgevoerd te worden om te kijken of de query wel gelukt is?


Inloggen wachtwoord vergeten? Aanmelden