2014-09-25 2 views
0
$to=$_POST['to']; 
$from=$_POST['from']; 
$repeat=$_POST['repeat']; 


    $mysqlquery= mysql_query("select count(patient_id) as idpateint,patient_id from patient where STR_TO_DATE(date_enter,'%d/%m/%Y') between STR_TO_DATE('$repeat','%d/%m/%Y') and STR_TO_DATE('$to','%d/%m/%Y') and patient_type='opd' and patient_id = (select patient_opd from patient where STR_TO_DATE(date_enter,'%d/%m/%Y') between STR_TO_DATE('$from','%d/%m/%Y') and STR_TO_DATE('$to','%d/%m/%Y') and patient_type='opd')")or die('invalid'.mysql_error()); 
     while($mysqlquery1=mysql_fetch_array($mysqlquery)){ 
    echo $mysqlquery1['idpateint']; 
    } 

Это запрос sql. Я получаю, как решить проблему. любезно помогите решить эту проблему. спасибоКак разрешить недействительныеПовторить возвращает более 1 строки

ответ

0

Вместо этого перейдите на матч IN.

... and patient_id IN (select patient_opd ... 
        ^^---- 

= -типа тестирование равенства чисто для одной стоимости к одной стоимости сравнения, например

42 = 42 

Ваш подзапрос возвращает несколько записей, то есть БД пытается сделать

42 = 42,107,etc.... 
+0

есть ли другое решение ?? bcz i m получает выход как 0. – user12345

+0

Возможно, это '$ myslquery1 ['idpatient']'? Без понятия. Попробуйте 'var_dump ($ mysqlquery1)', чтобы узнать, что вы действительно получаете. –

+0

$ mysqlquery = mysql_query ("select count (patient_id) как idpateint, patient_id от пациента, где STR_TO_DATE (date_enter, '% d /% m /% Y') между STR_TO_DATE ('$ repeat', '% d /% m /% Y ') и STR_TO_DATE (' $ to ','% d /% m /% Y ') и patient_type =' opd 'и patient_id в (выберите patient_id от пациента, где patient_type =' opd 'и STR_TO_DATE (date_enter,'% d /% m /% Y ') между STR_TO_DATE (' $ from ','% d /% m /% Y ') и STR_TO_DATE (' $ to ','% d /% m /% Y ')) ") или умереть ('invalid'.mysql_error()); while ($ mysqlquery1 = mysql_fetch_array ($ mysqlquery)) { echo $ mysqlquery1 ['idpateint']; } Примечание: неопределенная переменная: repeat – user12345

Смежные вопросы