2010-07-23 2 views
0

저는 여기에 온전히 새로운 PHP에 익숙하지 않습니다. 왜 이것이 작동하지 않는지 확실하지 않습니다.두 개의 변수를 하나의 변수로 연결하면

내가 echo $ordernum1 인 경우, 내가 찾는 값을 얻지 만 echo ${"ordernum".$x};을 표시하면 아무 것도 표시되지 않습니다.

나는 또한 $attempts을 되풀이하여 내가 찾고있는 가치를 얻었습니다. 어떤 도움 감사합니다 좋은 것

$update=$_POST['update']; //echo $update; 
$attempts=$_POST['attempts'];//echo $attempts; 

if($update==2){ 
    for($x=0; $x<=$attempts; $x++){ 
     ${"ordernum".$x} = $POST["ordernum".$x.""]; echo ${"ordernum".$x}; 
     $query="UPDATE OrderTrack 
     SET applicationID='--junk($appid)' 
     WHERE OrderNum='".${"ordernum".$x}."'"; 
    } 
} 
+0

내가 마음에 드는 것은 $ post와 $ _post 멍청한 것을 쓴다. – mike

+0

나는 이것이 당신을 도울 것이라고 생각한다 : http://php.net/faq.html – Gumbo

+0

나는 사람들이 왜 모르는 지 궁금해한다. (또는 알기를 원하지 않거나 (아무 이유없이)) 배열을 싫어 ...). – oezi

답변

1

그냥 $ ordernum. $ X가 모두이 시도

${"ordernum".$x} = $_POST["ordernum".$x.""]; 
      here --^ 
4

_ 한 VAR를 추가 할 필요가있다

$update = $_POST['update']; //echo $update; $attempts=$_POST['attempts'];//echo $attempts; 

if ($update == 2) { 
    for ($x = 0; $x <= $attempts; $x++) { 
    $ordernum = $_POST["ordernum" . $x]; 
    echo $ordernum; 
    $query = "UPDATE OrderTrack SET applicationID='--junk($appid)' WHERE OrderNum = '$ordernum'"; 
    } 
} 

루프에서 새 변수를 설정하지 않아도됩니다. $ ordernum을 다시 사용할 수 있습니다.

희망이

$ordernums = array(); 
if($update==2){ 
    for($x=0; $x<=$attempts; $x++){ 
     $ordernums[$x] = $_POST["ordernum".$x.""]; 

물론 이거니와 그 정보를 저장하는 배열을 만들기 ...

1

에 당신이 놓친 다른

0

이 같은 관련 변수의 톤과 함께 해당 지역의 범위를 오염하지 않을

루크 데 도움이 거기에 방대한 SQL 인젝션 취약점이 있습니다. mysql_real_escape_string() 또는 mysqli::real_escape_string()과 같은 것을 사용하여 모든 오류를 피할 필요가 있습니다. 또는 매개 변수가있는 쿼리를 사용하는 것이 가장 좋습니다.

+0

어레이 생각과 정말 깨끗한 것,하지만 솔직히 말해서 나는 거대한 SQL 주입 취약점을 가지고있다. SQL과 PHP – mike

+0

에 array()를 호출하면 모든 $ _POST [ 'ordernums']가 호출되거나 모든 $ _POST가 호출됩니까? – mike

+0

그래서 배열()을 구현하고 대단히 감사합니다 내 코드 속도가 많이! – mike

관련 문제