Join -> Fetch/ $_get probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Co Vanenwijk

Co Vanenwijk

17/07/2010 12:59:07
Quote Anchor link
Beste allen,

Al enige tijd maak ik gebruik van deze site en leer hier veel van hoewel ik dit al een tijdje doe zie ik mijzelf nogsteeds als über-beginner :d

Ik heb de volgende code :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
include("config.php");
$sql =  'SELECT * FROM nl_product_brand_associations LEFT JOIN nl_product_model ON ( nl_product_brand_associations.model_id = nl_product_model.model_id )
WHERE merk_id = 1
ORDER BY model_name ASC
'
;
   while($row = mysql_fetch_assoc($sql))
   {

   echo $row["model_id"]. " - " . $row["model_name"] . "<br/>";
   }

  
?>


en krijg de volgende foutmelding:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /public/sites/www.url/test/content/join3.php on line 7

Wat doe ik fout? Waarschijnlijk is het iets kleins, maar ik krijg het niet werkend...
Gewijzigd op 17/07/2010 13:31:00 door Co Vanenwijk
 
PHP hulp

PHP hulp

23/11/2024 19:37:48
 
Noppes Homeland

Noppes Homeland

17/07/2010 13:01:36
 
- SanThe -

- SanThe -

17/07/2010 13:02:22
Quote Anchor link
Je bent vergeten de query uit te voeren.
 
Co Vanenwijk

Co Vanenwijk

17/07/2010 13:30:15
Quote Anchor link
Het is door het stappenplan van "Noppes" gelukt. Ik heb het script weer aangepast op sommige punten en loop nu tegen het volgende aan:

Ik wil de zoekwaarde uit de URl/ Adresbalk halen.( index?page=home&id=4 ) Ik zat hieraan te denken met de $_get functie.

de code is nu:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
include("config.php");
$id = $_GET['id'];

$sql =  'SELECT * FROM nl_product_brand_associations LEFT JOIN nl_product_model ON ( nl_product_brand_associations.model_id = nl_product_model.model_id )
WHERE merk_id = ".mysql_real_escape_string($_GET['
id'])."
ORDER BY model_name ASC
'
;
$result = mysql_query($sql);
?>


helaas krijg ik de foutcode:

Parse error: syntax error, unexpected T_STRING in /public/sites/test/content/join3.php on line 6

pak ik het nu verkeerd aan? of zijn er betere manieren om te laten zoeken op variabele uit de adresbalk?
 
Joren de Wit

Joren de Wit

17/07/2010 13:46:09
Quote Anchor link
Gebruik dubbele quotes rond je query (enkele heb je binnen je query nodig voor strings) en haal variabelen buiten quotes.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$sql
=  "SELECT * FROM nl_product_brand_associations LEFT JOIN nl_product_model ON ( nl_product_brand_associations.model_id = nl_product_model.model_id )
WHERE merk_id = '"
.mysql_real_escape_string($_GET['id'])."'
ORDER BY model_name ASC"
;
?>


Edit: en mocht het id een integer zijn, gebruik dan ctype_digit() om te controleren of dat daadwerkelijk zo is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if(isset($_GET['id']) && ctype_digit($_GET['id'])) {
  $sql = "
    SELECT
      ...
    WHERE id = "
.$_GET['id']."
      ...
  "
;
}

else {
  // Geen geldig id
}
?>
Gewijzigd op 17/07/2010 13:48:13 door Joren de Wit
 
Co Vanenwijk

Co Vanenwijk

17/07/2010 13:49:50
Quote Anchor link
mijn dank is groot!

Als er een "Buy me a Coffee"-button was had ik hem gebruikt ;)
 



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.