Verschil tussen String en Int?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

15/07/2004 22:25:00
Quote Anchor link
Het volgende script wil ik gebruiken om een x aantal records uit een tabel te halen.

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
38
<?
    //-- maak eerst de connectie met de database!
    $user = "gebruiker";
    $pass = "ask";
    $host = "localhost";
    $dbdb = "advertenties";

    
    if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
    {

        echo "Kan geen verbinding maken met de database.";
        exit();
    }

    
    unset($user);
    unset($pass);
    unset($host);
    unset($dbdb);

    $sql = "SELECT * FROM Nummer WHERE Provincie = $HTTP_GET_VARS[id] ORDER BY Nummer";

    $res = mysql_query($sql);

    if (mysql_num_rows($res) >= 1)

    {

        while ($row = mysql_fetch_array($res))
        {

            $row[Nummer] = substr($row[Nummer], 0, 10);
            
            echo "<tr><td><a href=\"advertentie.php?id=$row[Nummer]\">$row[Nummer]</a></td><td>$row[Naam]</td><td>$row[Woonplaats]</td></tr>";
        }
    }

    else
    {
        echo "Er zijn geen advertenties.";
    }

?>



In de SQL-regel wordt de Provincie als variabele opgehaald uit de http-regel. Echter… dit werkt niet. Ik krijg dan de volgende foutmelding:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

Als ik in plaats van de provincie het advertentienummer (een Integer) gebruik, dan gaat het wel goed, ook als een advertentienummer meerdere keren voorkomt

Ik heb wat op internet gezocht, maar daar blijkt nergens uit dat HTTP_GET_VARS een numerieke waarde moet zijn.

Misschien is het antwoord heel simpel, maar ik ben nog maar een beginner ;-)
 
PHP hulp

PHP hulp

27/11/2024 01:40:39
 
Mitch X

Mitch X

15/07/2004 22:30:00
Quote Anchor link
[1] Variabelen altijd buiten de quotes ("")
vb:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? $a = "Mijn naam is : " . $b; ?>

[2] Quotes om de stringindexes van arrays (bij ints niet)
vb:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? $a['b']; ?>

[3] Een int is een integer (een geheel getal) en een string is een reeks karakters (getallen, cijfers en tekens)
[4] Er is case-sensivity dus $row['Nummer'] is anders dan $row['nummer'] (just in case ;))
[5] Gebruik $_GET[] ipv $HTTP_GET_VARS[]
[6] Provincie = $HTTP_GET_VARS[id] <- als $_GET['id'] een getal is klopt het, anders niet. (En haal hem ook buiten de haakjes he? Zie [1] .

Kom daarna maar weer eens terug :P
Gewijzigd op 15/07/2004 22:31:00 door Mitch X
 

15/07/2004 22:47:00
Quote Anchor link
Ik heb de verschillende mogelijkheden geprobeerd, maar helaas bieden ze (nog) geen oplossing.

Dit is wat er naar mijn idee gebeurd:

$sql = "SELECT * FROM Nummer WHERE Provincie = $HTTP_GET_VARS[id] ORDER BY Nummer";
//In deze regel haal ik uit de tabel mijn gegevens op, als de Provincie gevuld is met een nummerieke waarde, dan krijg ik geen foutmelding, maar ook geen resultaat. Zodra ik deze variabele vul met bijvoorbeeld Limburg, dan krijg ik deze foutmelding:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource


$res = mysql_query($sql);
//Hier schrijf ik het resultaat van de query weg.

if (mysql_num_rows($res) >= 1)
//Hier bepaald ik of mijn variabele $res gevuld is, is dat het geval gaat hij een lusje in, dat gaat goed, want ik krijg een resultaat als ik Provincie vervang door het Advertentienummer.

De browser meldt heel nadrukkelijk dat de fout zit in if (mysql_num_rows($res) >= 1)
 
Mitch X

Mitch X

16/07/2004 00:10:00
Quote Anchor link
Daar treed het gevolg van de fout het eerste op ...
Werk eerst m'n lijstje maar eens af voordat je weer met een vraag komt die al beantwoord is ...
 



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.