Verschil tussen String en Int?
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
38
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.";
}
?>
//-- 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 ;-)
vb:
[2] Quotes om de stringindexes van arrays (bij ints niet)
vb:
[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
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)
Werk eerst m'n lijstje maar eens af voordat je weer met een vraag komt die al beantwoord is ...