Iemand een idee hoe ik dit kan oplossen??



$query  = "SELECT page FROM page WHERE title='(SELECT title FROM page_menu WHERE menu='".$menu."' AND submenu='".$submenu."' AND topitem='".$topitem."' AND subitem='".$subitem."' AND machine='".$machine."' AND info='".$info."')'";

$result = mysql_query($query)or die(mysql_error());



[foutmelding]
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'products' AND submenu='sheet metal' AND topitem='Haco - Sheetmetal' AND subitem=' at line 1
[/foutmelding]
Schrijf de query eens netjes uit over meerdere regels en echo hem eens.
<?
$query = "
SELECT
page
FROM
page
WHERE
title = '(SELECT title FROM page_menu WHERE menu='".$menu."' AND submenu='".$submenu."' AND topitem='".$topitem."' AND subitem='".$subitem."' AND machine='".$machine."' AND info='".$info."')'
";
?>
Weet je wel heel zeker dat de foutmelding over deze query gaat? De sub-query zet je nu als een string in de query. Deze wordt dus niet uitgevoerd!
query heb ik opgelost met:

$query  = "SELECT page 
           FROM page, 
                page_menu 
          WHERE page_menu.title = page.title 
            AND page_menu.menu='".$menu."' 
            AND page_menu.submenu='".$submenu."' 
            AND page_menu.topitem='".$topitem."' 
            AND page_menu.subitem='".$subitem."' 
            AND page_menu.machine='".$machine."' 
            AND page_menu.info='".$info."'"; 


maar nu leest hij wel niets uit??

nog een idee hoe dit kan??

rest van mijn code:


 $result = mysql_query($query)or die('Error : ' . mysql_error()); 
            echo "test"; 
            echo "<br>query: ".$query; 
            echo "<br>result: ".$result."<br>"; 
            while($row = mysql_fetch_array($result)) 
            
                {    
                      echo $row['page']; 
                } 



query= SELECT page FROM page, page_menu WHERE page_menu.title = page.title AND page_menu.menu='products' AND page_menu.submenu='sheet metal' AND page_menu.topitem='Haco - Sheetmetal' AND page_menu.subitem='Hydraulic pressbrakes' AND page_menu.machine='tooling' AND page_menu.info='standard'

result= Resource id #42

enig idee wat er verkeerd is??
gevonden ipv $menu en $submenu ...
$_GET['menu']

bednakt voor de hulp
Die GET moet je natuurlijk wel beveiligen! Of zit je te wachten op SQL-injection?

mysql_real_escape_string() kan je hierbij helpen, zie de handleiding.
die get verdwijnt door het programma dat op de server draait alle dynamische paginanamen worden omgezet naar statische dus nergens nog een variabele te bespeuren?? of denk je dat dit nog niet veilig genoeg is??
Zodra jij een $_GET variabele direct in je query opneemt zonder enige vorm van beveiliging toe te passen is er altijd sql injectie mogelijk, ongeacht wat er verder met die $_GET gebeurd in je script...
zo beter??

			$menu	=	mysql_real_escape_string($_GET['menu']);
			$submenu	=	mysql_real_escape_string($_GET['submenu']);
			$topitem	=	mysql_real_escape_string($_GET['topitem']);
			$subitem	=	mysql_real_escape_string($_GET['subitem']);
			$machine	=	mysql_real_escape_string($_GET['machine']);
			$info	=	mysql_real_escape_string($_GET['info']);
			
			
			$query  = "SELECT page 
           FROM page, 
                page_menu 
          WHERE page_menu.title = page.title  
			AND	page_menu.menu='".$menu."' 
            AND page_menu.submenu='".$submenu."' 
            AND page_menu.topitem='".$topitem."' 
            AND page_menu.subitem='".$subitem."' 
            AND page_menu.machine='".$machine."' 
            AND page_menu.info='".$info."'"; 

Precies, dat is hem!
Ja, beter :)
merci voor het waarschuwen, kdacht dat ik goed bezig was

Reageren