Gekozen letter doorgeven aan query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bever verberne

bever verberne

08/12/2008 18:29:00
Quote Anchor link
Wat wil ik bereiken?

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)
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
<?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>&nbsp;'; //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
 
PHP hulp

PHP hulp

18/12/2024 15:17:54
 
Timen kut

Timen kut

08/12/2008 18:37:00
Quote Anchor link
Wel makkelijk om de foutmelding erbij te zetten...
 
Jeroen

Jeroen

08/12/2008 18:41:00
Quote Anchor link
Als je naar de kleuren van je MySQL query kijkt zie je al dat het niet klopt :-)

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
<?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>&nbsp;'; //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
 
Bever verberne

bever verberne

08/12/2008 18:56:00
Quote Anchor link
Thanks Jeroen, dat was een snelle reactie! Ik krijg geen foutmelding meer. Probleem opgelost.
 
- SanThe -

- SanThe -

08/12/2008 19:08:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= "SELECT LastName FROM Customers WHERE LastName LIKE '" . mysql_real_escape_string($_GET['letter']) . "%'";// de query
?>
 
Bever verberne

bever verberne

08/12/2008 20:32:00
Quote Anchor link
Om een bijdrage te leveren aan dit forum zodat anderen er ook iets aan hebben wil ik nog even reageren.
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)
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
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>&nbsp;';
  }

  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)
PHP script in nieuw venster Selecteer het PHP script
1
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
 



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.