weird Mysql Order By problem

Associate
Joined
19 Jul 2006
Posts
1,847
I have the following code which works
PHP:
$arrange=$_POST[arrange];
$name=$_POST[username];
$school=$_POST[School];
$theDate1 = isset($_REQUEST["date1"]) ? $_REQUEST["date1"] : "";
$theDate2 = isset($_REQUEST["date2"]) ? $_REQUEST["date2"] : "";
// set up query for table data
mysql_select_db($database_conn, $conn);
$query = sprintf("SELECT * FROM Entries WHERE Username LIKE '%s' AND School LIKE '%s' AND Dateofvisit BETWEEN '%s' AND '%s' ORDER BY School ASC",  
mysql_real_escape_string($name),
mysql_real_escape_string($school),
mysql_real_escape_string($theDate1),
mysql_real_escape_string($theDate2));
//mysql_real_escape_string($arrange));
$result = mysql_query($query);


So far the $arrange returns the values School or Username but when I change to

PHP:
$query = sprintf("SELECT * FROM Entries WHERE Username LIKE '%s' AND School LIKE '%s' AND Dateofvisit BETWEEN '%s' AND '%s' ORDER BY '%s" ASC",  
mysql_real_escape_string($name),
mysql_real_escape_string($school),
mysql_real_escape_string($theDate1),
mysql_real_escape_string($theDate2),
mysql_real_escape_string($arrange));
$result = mysql_query($query);
The result is not ordered am I missing something?
 
PHP:
$query = sprintf("SELECT * FROM Entries WHERE Username LIKE '%s' AND School LIKE '%s' AND Dateofvisit BETWEEN '%s' AND '%s' ORDER BY '%s" ASC",  
mysql_real_escape_string($name),
mysql_real_escape_string($school),
mysql_real_escape_string($theDate1),
mysql_real_escape_string($theDate2),
mysql_real_escape_string($arrange));
$result = mysql_query($query);


I would suggest you have the " and ' mixed up next to the last '%s
Unless that's a typo.
 
Yeah sorry thats a typo

heres what i have
Code:
$arrange=$_POST[arrange];
$name=$_POST[username];
$school=$_POST[School];
$theDate1 = isset($_REQUEST["date1"]) ? $_REQUEST["date1"] : "";
$theDate2 = isset($_REQUEST["date2"]) ? $_REQUEST["date2"] : "";




// set up query for table data
mysql_select_db($database_conn, $conn);
$query = sprintf("SELECT * FROM Entries WHERE Username LIKE '%s' AND School LIKE '%s' AND Dateofvisit BETWEEN '%s' AND '%s' ORDER BY '%s' ASC",  
mysql_real_escape_string($name),
mysql_real_escape_string($school),
mysql_real_escape_string($theDate1),
mysql_real_escape_string($theDate2),
mysql_real_escape_string($arrange));
$result = mysql_query($query);

when i echo $query i get
SELECT * FROM Entries WHERE Username LIKE '%' AND School LIKE '%' AND Dateofvisit BETWEEN '2009-11-01' AND '2009-11-01' ORDER BY 'School' ASC

should the last 'School' have ' ' round it as this is a database column name?
How do i get rid of the ' ' if its coming from a variable
 
Back
Top Bottom