ericburnard Posted December 22, 2012 Share Posted December 22, 2012 Im having a bit of trouble with my script. I wrote the script originaly to run from one variable which i changed manualy, but now im trying to put the whole script inside a loop. The script is now running all the way through fine on the first loop, starting starting the second but getting stuck at the part with my implode. This is my script that is around the implode area. Bear in mind that this code snippet is from a very large script. $t=1; while ($t <= $bm) { $mn=${'m'.$t}; $mn2[$t]="$mn"; $t++; } // The is where the script runs to, and the error comes from the next few lines and the script stops running $implode=implode(',', $mn2); print $implode; $query2="SELECT * FROM artists WHERE id IN(".implode(',', $mn2).")"; $result2=mysql_query($query2) or die(mysql_error()); $i=0; $bm2=$bm-1; while ($i <= $bm2) { $id3=mysql_result($result2,$i,"id"); ${"id3$i"} = $id3; $s1=mysql_result($result2,$i,"s1"); ${"s1$i"} = $s1; $s2=mysql_result($result2,$i,"s2"); ${"s2$i"} = $s2; $sl1=mysql_result($result2,$i,"sl1"); ${"sl1$i"} = $sl1; $sl2=mysql_result($result2,$i,"sl2"); ${"sl2$i"} = $sl2; $i++; } And this is the error that im getting ,,,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 ',,)' at line 1 Any help or point in the right direction would be amazing right no. Thanks Eric Link to comment https://forums.phpfreaks.com/topic/272294-implode-into-a-table-inside-a-loop/ Share on other sites More sharing options...
PFMaBiSmAd Posted December 22, 2012 Share Posted December 22, 2012 $mn2 contains some empty entries at the end, probably because some of your $m1, $m2, ,,, variables don't exist. Why not just use an array - $m[1], $m[2], ... and avoid the extra code needed to make the $m1, $m2, ...into an array every time you use the values? By using individual $m1, $m2, ,,, variables, you must now keep track of how many of them there are so that you don't iterate past the end, which is likely what is causing your current error. P.S. mysql_result is the slowest way of retrieving data from a query. And again, creating a series of name/numbered variables in your while(){} loop is taking a bunch more code to set the variables, then more code later to access the values. Just assign the rows from the query to an array. BTW - variable variables are three times slower than using an array. Link to comment https://forums.phpfreaks.com/topic/272294-implode-into-a-table-inside-a-loop/#findComment-1400924 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.