2012-04-28 9 views
1

내 스크립트에 서로 후 사용해야하는 3 개의 스크립트가 있습니다. 티켓을 판매 할 상태를 "예"로 변경하여 티켓을 예약하는 스크립트를 만들려고합니다. , 스크립트는 사용자가 html 폼에 입력 한 티켓의 수를 계산합니다.이 폼은 서버 측에 = $tickets이라는 티켓 수의 변수를 제공합니다.PHP mysql 가져 오기 명령문 가져 오기

힌트 :이 같은 모델은 그래서 mysql을 주입 보안 여기

필요 내 코드입니다입니다 : 스크립트는이 구문을 가져 오지 않습니다

//get ticket status 
    $eventTicket = mysql_query("SELECT eventTickets FROM beventreservation WHERE eventId = '$eventId'") or die(mysql_error()); 
    $ticketrow = mysql_fetch_array($eventTicket) or die(mysql_error()); 


    //test... which is working ! 
    echo $ticketrow['eventTickets']; 


    //get classId from classes 
    $selectClass = mysql_query("SELECT classId FROM quotaclasses WHERE className = '$classes' AND eventFK = '$eventId'") or die (mysql_error());  

    $classrow = mysql_fetch_array($selectClass) or die(mysql_error()); 

    //this var is to define which class the user used 
    $choosedClass = $classrow['classId']; 

//test ... which did not work !!! 
echo $classrow['classId']; 

     if ($ticketrow['eventTickets'] == "Yes") 

    { 
     for($counter=1;$counter<$numberOfTickets;$counter++) 

     { 
      $bookTicket = mysql_query("UPDATE unites SET ticketSold = 'Yes' WHERE businessreservationIdFk = '$eventId' AND classIDfk ='$choosedClass'") or die(mysql_error()); 
      echo "ticket ". $counter . " done !"; 


     } 

    } 

하고, 오류가 없습니다 내 페이지에 보여 줬어!

$classrow = mysql_fetch_array($selectClass) or die(mysql_error()); 

또한, 나는 그것은 동일한 스크립트 페이지는 mysql_query 이상을 가져올 수있는 문제가, 나타났다하지 않았다,이 구문 후 변수 $tickets 에코하려고? 여기서 내가 어디가 잘못 될지 말해줘.

답변

4

mysql_fetch_*() 호출과 함께 die()을 호출하지 마십시오. 반환 된 행이없는 경우 mysql_fetch_array()은 을 반환하며 이는 die()을 트리거하며 오류가 없었더라도 스크립트를 종료합니다. mysql_query() 호출에서 $selectClass에 대한 오류 검사를 이미 수행 했으므로 성공했음을 알았습니다.

// This query returned no rows, but was successful syntactically and functionally. 
$selectClass = mysql_query("SELECT classId FROM quotaclasses WHERE className = '$classes' AND eventFK = '$eventId'") or die (mysql_error());  

대신, 테스트 행이 반환 된 경우 :

if (mysql_num_rows($selectClass) > 0) { 
    // Fetch and do other stuff 
    $classrow = mysql_fetch_array($selectClass); 
    $choosedClass = $classrow['classId']; 
    // etc... 
    // etc... 
} 
else { 
    // Do whatever you need to do if no rows return 
}