0

fpdfクラスを呼び出すコードに入れた条件をphpが読み取らない理由がわかりません。私は(むしろいくつかのチェックボックス)の値を読み取り、どのチェックボックスがチェックされているかの機能で機能する小さなアプリケーションを持っています。ただし、1 つの条件を具体的に管理しようとすると、PHP は条件内のコード ブロックを読み取って入力しないようです。私は非常に具体的でなければならないことを知っているので、値を送信しているチェックボックスと空のチェックボックスの両方を読み取る条件を設定しました。基本的には、たとえば次のようにします。

if($cedula=='si' && $licenciados=='si' && $maestros=='' &&$especialistas==''  &&$doctores=='' &&$correo_main=='' &&$cuenta==''&&$afiliado==''&&$fechas!='si' &&  $facultades!='si' && $generacion!='si') {... } 

また:

if($doctores=='si'&&$cedula=='si'&& $maestros=='' &&$especialistas=='' &&$licenciados==''&&$correo_main=='' &&$cuenta==''&&$afiliado==''&&$fechas!='si' && $facultades!='si' && $generacion!='si'){

また:

else if($cedula='si' && $licenciados == 'si' && $fechas=='si' && $facultades=='si' &&   $generacion=='si'&&$correo_main==''  &&$cuenta==''&&$afiliado==''&&$especialistas!='si'&&$maestros!='si'&&$doctores!='si') {

ただし、次の条件は認識されていないようです。

else if($cedula=='si' &&  $licenciados=='si' && $maestros=='si' && $especialistas=='si'   && $doctores=='si' && $fechas=='si' && $facultades=='si'   &&$generacion=='si'&&$correo_main=='' &&$cuenta==''&&$afiliado==''&&$telefonos !='si' &&   $direccion!='si' && $correo !='si') {
echo "Consulta de todos los grados";

どのチェックボックスが特定の値を持つ必要があり、そのイベントではどのチェックボックスが必要でないかを明確に指定している原因がわかりません。

それから、偶然にも mysql で行を返さないかなり大きなクエリがありますが、問題の原因はクエリではないことは確かです。実際、最後のコードの最後の部分は何もエコーしないため、条件は読み取られません。

私が言ったように、私は fpdf を使用しているため、特にエコーしない限りエラーが表示されないため、これをデバッグする方法がわかりません。そのため、前のオプションで Web ページを実行すると空白のページしか表示されません。

コードをさらに詳しく調べたり、デバッグしたりするために、誰かが私を正しい方向に向けることができますか? 私はそれを感謝します。

コード ブロックで実行するクエリは次のとおりです。

SELECT Nombre_Licen, Apellido_Licen, GROUP_CONCAT(Ced_Profesional SEPARATOR '|||') AS   Cedulas_Esp, GROUP_CONCAT(Ced_Profesional_Lic SEPARATOR '|||') AS Cedulas_Lic,   GROUP_CONCAT(Ced_Profesional_Ma SEPARATOR '|||') AS Cedulas_Maestria,   GROUP_CONCAT(Ced_Profesional_Dr SEPARATOR '|||') AS Cedulas_Doctorado,   GROUP_CONCAT(Generacion_Lic SEPARATOR '|||') AS Gener_Lic,
 GROUP_CONCAT(Generacion_Especialidad SEPARATOR '|||') AS Gener_Esp,   GROUP_CONCAT(Generacion_Maestro SEPARATOR '|||') AS Gener_Maestria,    GROUP_CONCAT(Generacion_Dr SEPARATOR '|||') AS Gener_Doctorado,   GROUP_CONCAT(Fecha_Egreso_Lic SEPARATOR '|||') AS Egreso_Lic,   GROUP_CONCAT(Fecha_Egreso_Especialidad SEPARATOR '|||') AS Egreso_Especialidad,   GROUP_CONCAT(Fecha_Egreso_Maest SEPARATOR '|||') AS Egreso_Maestria,   GROUP_CONCAT(Fecha_Egreso_Doctor SEPARATOR '|||') AS Egreso_Doctorado,    GROUP_CONCAT(Fecha_Ingreso_Lic SEPARATOR '|||') AS Ingreso_Lic,   GROUP_CONCAT(Fecha_Ingreso_Especialidad SEPARATOR '|||') AS Ingreso_Especialidad,    GROUP_CONCAT(Fecha_Ingreso_Maest SEPARATOR '|||') AS Ingreso_Maestria,    GROUP_CONCAT(Fecha_Ingreso_Doctor SEPARATOR '|||') AS Ingreso_Doctorado,    GROUP_CONCAT(Facultad_Lic SEPARATOR '|||') AS Facultad_Licenciatura,    GROUP_CONCAT(Facultad_Maestro SEPARATOR '|||') AS Facultad_Maestria,    GROUP_CONCAT(Facultad_Especialidad SEPARATOR '|||') AS Facultad_Especializacion,    GROUP_CONCAT(Facultad_Dr SEPARATOR '|||') AS Facultad_Doctorado
FROM datos_especializacion, datos_maestria, datos_licenciatura, datos_doctorado WHERE   Apellido_Licen BETWEEN '$primerterm' AND '$segterm'
AND Facultad_Lic IS NOT NULL
AND Facultad_Maestro IS NOT NULL
AND Facultad_Especialidad IS NOT NULL
AND Facultad_Dr IS NOT NULL
AND Generacion_Lic IS NOT NULL
AND Generacion_Maestro IS NOT NULL
AND Generacion_Dr IS NOT NULL
AND Generacion_Especialidad IS NOT NULL
AND Fecha_Ingreso_Lic IS NOT NULL
AND Fecha_Ingreso_Maest IS NOT NULL
AND Fecha_Ingreso_Doctor IS NOT NULL
AND Fecha_Ingreso_Especialidad IS NOT NULL
AND Fecha_Egreso_Lic IS NOT NULL
AND Fecha_Egreso_Maest IS NOT NULL
AND Fecha_Egreso_Doctor IS NOT NULL
AND Fecha_Egreso_Especialidad IS NOT NULL
AND Ced_Profesional IS NOT NULL
AND Ced_Profesional_Lic IS NOT NULL
AND Ced_Profesional_Ma IS NOT NULL
AND Ced_Profesional_Dr IS NOT NULL
AND Apellido_Maest = Apellido_Licen
AND Apellido_Licen = Apellidos_Especialidad
AND Apellido_Licen = Apellido_Doctor GROUP BY datos_licenciatura.id_usuario ORDER BY    Apellido_Licen;";

(私が言ったように、それは非常に大きいです)。次に、次の非常に大きな文字列を使用してpdfを出力します。

if(mysql_num_rows($consEstudio)>0) {
while($objeto = mysql_fetch_array($consEstudio)){
$txt = "Nombre y Apellidos: ".$objeto['Nombre_Licen']."  ".$objeto['Apellido_Licen']."\nCédula(s) Profesional(es) de Licenciatura:  ".preg_replace('/\|\|\|/', ', ', $objeto['Cedulas_Lic'])." Fecha de Ingreso / Egreso de  Licenciatura: ".preg_replace('/\|\|\|/', ', ', $objeto['Ingreso_Lic'])." /  ".preg_replace('/\|\|\|/', ', ', $objeto['Egreso_Lic'])." Generación de Licenciatura:  ".preg_replace('/\|\|\|/', ', ', $objeto['Gener_Lic'])." Facultad:  ".preg_replace('/\|\|\|/', ', ', $objeto['Facultad_Licenciatura'])."\nCédula(s)  Profesional(es) de Especialidad: ".preg_replace('/\|\|\|/', ', ', $objeto['Cedulas_Esp'])."  Fecha de Ingreso / Egreso de Especialidad: ".preg_replace('/\|\|\|/', ', ',  $objeto['Ingreso_Especialidad'])." / ".preg_replace('/\|\|\|/', ', ',  $objeto['Egreso_Especialidad'])." Generación de Especialidad: ".preg_replace('/\|\|\|/', ',  ', $objeto['Gener_Esp'])." Facultad: ".preg_replace('/\|\|\|/', ', ',  $objeto['Facultad_Especializacion'])."\nCédula(s) Profesional(es) de Maestria:  ".preg_replace('/\|\|\|/', ', ', $objeto['Cedulas_Maestria'])." Fecha de Ingreso / Egreso  de Maestría: ".preg_replace('/\|\|\|/', ', ', $objeto['Ingreso_Maestria'])." /  ".preg_replace('/\|\|\|/', ', ', $objeto['Egreso_Maestria'])." Generación de Maestría:  ".preg_replace('/\|\|\|/', ', ', $objeto['Gener_Maestria'])." Facultad:  ".preg_replace('/\|\|\|/', ', ', $objeto['Facultad_Maestria'])."\nCédula(s) Profesional(es)  de Doctorado: ".preg_replace('/\|\|\|/', ', ', $objeto['Cedulas_Doctorado'])." Fecha de  Ingreso / Egreso de Doctorado: ".preg_replace('/\|\|\|/', ', ',  $objeto['Ingreso_Doctorado'])." / ".preg_replace('/\|\|\|/', ', ',  $objeto['Egreso_Doctorado'])." Generación de Doctorado: ".preg_replace('/\|\|\|/', ', ',  $objeto['Gener_Doctorado'])." Facultad: ".preg_replace('/\|\|\|/', ', ',  $objeto['Facultad_Doctorado']);
$PDF->salidaFilaDosRegUnaColumna($txt, $fill);
$fill=!$fill;
}
}
else {
$txt="No hay coincidencias para esta combinación (no existen registros con grado     académico)";
$PDF->salidaFilaUnaColumna($txt, false);
}$PDF->Output();
4

1 に答える 1

1

if ステートメントの複雑さと、それらがテストする変数の均一性を考えると、値を比較するためのルールと関数、およびエラー チェックを実行するための中心的な場所を作成することはもっともらしく思われます。これが私がモックアップした簡単な例です

$values = array($cedula, $licenciados, $maestros, $especialistas, $doctores, $correo_main, $cuenta, $afiliado, $fechas, $facultades, $generacion);
$rules = array(
    array('ruleset' => array('si','si','','','','','','','si','si','si','si'), 'user_func' => function(){ echo 'test1'; }),
    array('ruleset' => array('si','','','','si','','','','si','si','si','si'), 'user_func' => function(){ echo 'test2'; }),
);

foreach($rules as $key => $rule) {
    foreach($values as $key => $value) {
        if(checkRules($values, $rule['ruleset'])) {
            $call = $rule['user_func'];
            $call();
        }
    }
}
function checkRules($values, $rule) {
    $passed = true;
    foreach($values as $key => $value) {
        if($value != $rule[$key]) {
            $passed = false;
        }
    }
    return $passed;
}
于 2013-10-24T06:10:29.870 に答える