Gekozen letter doorgeven aan query
Een bezoeker klikt op een letter (die bovenaan de pagina staan), vervolgens wordt de bezoeker naar een pagina geleid waar de letter gebruikt wordt in de query om een lijstje met namen te tonen die beginnen met die letter.
Op dit moment krijg ik een foutmelding op de laatste regel en ik weet niet hoe de juiste syntax moet luiden.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$arrList = array_merge(array('0-9'), range('A','Z')); //Alfabet boven aan pagina weergeven
foreach ($arrList as $value) {
echo '<a href="http://www.mywebsite.com/test/index.php?letter=' . $value . '">' .
$value . '</a> '; //naar de desbetreffende pagina
}
$host = 'MyHost'; //your host
$username = 'MyUsername'; //your username
$password = 'MyPassword'; //your password
$database = 'MyDB'; //your database name
$connect = mysql_connect($host,$username,$password); //connect to the mysql database
if( $connect )
{
mysql_select_db($database, $connect); //select the database
$sql = 'SELECT LastName FROM Customers WHERE LastName LIKE "$_GET['letter']%"';// de query
?>
$arrList = array_merge(array('0-9'), range('A','Z')); //Alfabet boven aan pagina weergeven
foreach ($arrList as $value) {
echo '<a href="http://www.mywebsite.com/test/index.php?letter=' . $value . '">' .
$value . '</a> '; //naar de desbetreffende pagina
}
$host = 'MyHost'; //your host
$username = 'MyUsername'; //your username
$password = 'MyPassword'; //your password
$database = 'MyDB'; //your database name
$connect = mysql_connect($host,$username,$password); //connect to the mysql database
if( $connect )
{
mysql_select_db($database, $connect); //select the database
$sql = 'SELECT LastName FROM Customers WHERE LastName LIKE "$_GET['letter']%"';// de query
?>
Gewijzigd op 01/01/1970 01:00:00 door Bever verberne
Wel makkelijk om de foutmelding erbij te zetten...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$arrList = array_merge(array('0-9'), range('A','Z')); //Alfabet boven aan pagina weergeven
foreach ($arrList as $value) {
echo '<a href="http://www.mywebsite.com/test/index.php?letter=' . $value . '">' .
$value . '</a> '; //naar de desbetreffende pagina
}
$host = 'MyHost'; //your host
$username = 'MyUsername'; //your username
$password = 'MyPassword'; //your password
$database = 'MyDB'; //your database name
$connect = mysql_connect($host,$username,$password); //connect to the mysql database
if( $connect )
{
mysql_select_db($database, $connect); //select the database
$sql = 'SELECT LastName FROM Customers WHERE LastName LIKE "$_GET[\'letter\']%"';// de query
?>
$arrList = array_merge(array('0-9'), range('A','Z')); //Alfabet boven aan pagina weergeven
foreach ($arrList as $value) {
echo '<a href="http://www.mywebsite.com/test/index.php?letter=' . $value . '">' .
$value . '</a> '; //naar de desbetreffende pagina
}
$host = 'MyHost'; //your host
$username = 'MyUsername'; //your username
$password = 'MyPassword'; //your password
$database = 'MyDB'; //your database name
$connect = mysql_connect($host,$username,$password); //connect to the mysql database
if( $connect )
{
mysql_select_db($database, $connect); //select the database
$sql = 'SELECT LastName FROM Customers WHERE LastName LIKE "$_GET[\'letter\']%"';// de query
?>
Gewijzigd op 01/01/1970 01:00:00 door Jeroen
Thanks Jeroen, dat was een snelle reactie! Ik krijg geen foutmelding meer. Probleem opgelost.
Code (php)
1
2
3
2
3
<?php
$sql = "SELECT LastName FROM Customers WHERE LastName LIKE '" . mysql_real_escape_string($_GET['letter']) . "%'";// de query
?>
$sql = "SELECT LastName FROM Customers WHERE LastName LIKE '" . mysql_real_escape_string($_GET['letter']) . "%'";// de query
?>
Allereerst, jullie code werkt zonder fouten maar ik krijg soms geen resultaten uit de query.
Ik heb even een opzetje gemaakt op:
http://www.bertverberne.com/test/index.php
en als sample database gebruik ik de Noordenwind database.
Dit is de code:
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
39
40
41
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
<?php
$arrList = array_merge(array('0-9'), range('A','Z'));
foreach ($arrList as $value) {
echo '<a href="http://www.bertverberne.com/test/index.php?letter=' . $value . '">' .
$value . '</a> ';
}
echo "<br /><br />";
$host = 'MyHost'; //your host
$username = 'MyUsername'; //your username
$password = 'MyPassword'; //your password
$database = 'MyDB'; //your database name
$connect = mysql_connect($host,$username,$password); //connect to the mysql database
if( $connect )
{
mysql_select_db($database, $connect); //select the database
//$sql = 'SELECT companyname FROM customers WHERE companyname LIKE "a%"'; //deze query doet het, maar is statisch er worden gegevens opgehaald die beginnen met a
//$sql = 'SELECT companyname FROM customers WHERE companyname LIKE "$_GET[\'letter\']%"';// deze doet het ook, maar haalt geen gegevens op
$sql = "SELECT companyname FROM customers WHERE companyname LIKE '" . mysql_real_escape_string($_GET['letter']) . "%'";// deze query doet het, en er worden gegevens opgehaald.
$result = mysql_query($sql); //store result
if ($result && mysql_num_rows($result) >= 1)
{
while ($row = mysql_fetch_array($result))
{
echo $row['companyname'] . '<br>';
}
} else {
echo 'Geen data gevonden';
}
mysql_close($connect); //close the connection
}
else
{
echo 'Er is geen verbinding met de database: ' . mysql_error();
}
?>
$arrList = array_merge(array('0-9'), range('A','Z'));
foreach ($arrList as $value) {
echo '<a href="http://www.bertverberne.com/test/index.php?letter=' . $value . '">' .
$value . '</a> ';
}
echo "<br /><br />";
$host = 'MyHost'; //your host
$username = 'MyUsername'; //your username
$password = 'MyPassword'; //your password
$database = 'MyDB'; //your database name
$connect = mysql_connect($host,$username,$password); //connect to the mysql database
if( $connect )
{
mysql_select_db($database, $connect); //select the database
//$sql = 'SELECT companyname FROM customers WHERE companyname LIKE "a%"'; //deze query doet het, maar is statisch er worden gegevens opgehaald die beginnen met a
//$sql = 'SELECT companyname FROM customers WHERE companyname LIKE "$_GET[\'letter\']%"';// deze doet het ook, maar haalt geen gegevens op
$sql = "SELECT companyname FROM customers WHERE companyname LIKE '" . mysql_real_escape_string($_GET['letter']) . "%'";// deze query doet het, en er worden gegevens opgehaald.
$result = mysql_query($sql); //store result
if ($result && mysql_num_rows($result) >= 1)
{
while ($row = mysql_fetch_array($result))
{
echo $row['companyname'] . '<br>';
}
} else {
echo 'Geen data gevonden';
}
mysql_close($connect); //close the connection
}
else
{
echo 'Er is geen verbinding met de database: ' . mysql_error();
}
?>
De laatste query is helemaal ok. Hoewel ik niet precies weet wat het allemaal betekent (maar dat ga ik natuurlijk uitzoeken).
Code (php)
1
2
2
<?php $sql = "SELECT companyname FROM customers WHERE companyname LIKE '" . mysql_real_escape_string($_GET['letter']) . "%'";// deze query doet het, en er worden gegevens opgehaald.
?>
?>
Mijn dank is groot aan degenen die een bijdrage hebben geleverd.
Groetjes, Bert