2017-05-31 61 views
0

大家好我在做一個表格,因爲在drupal中,我有一個文本框和一個按鈕,輸入一個代碼(varchar),並將其與sqlserver中的記錄進行比較在執行驗證時輸入的代碼在表單中存在的DB)使用存儲過程執行iframe。從SQL服務器檢索結果集的問題

這是代碼,我認爲我做錯了php代碼,並選擇它,因爲輸入查詢值的時刻不會生成文本「所有權利」或「諮詢數量不存在」 「在他發現確實

我感謝那些誰告訴我,幫助和指導

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Buscador php</title> 
<form method="POST" action="" onSubmit="return validarForm(this)"> 

    <input type="text" placeholder="Buscar usuario" name="palabra"> 

    <input type="submit" value="Buscar" name="buscar"> 

</form> 
</meta> 


<script type="text/javascript"> 
    function validarForm(formulario) 
    { 
     if(formulario.palabra.value.length==0) 
     { //¿Tiene 0 caracteres? 
      formulario.palabra.focus(); // Damos el foco al control 
      alert('Debes rellenar este campo'); //Mostramos el mensaje 
      return false; 
     } //devolvemos el foco 
     return true; //Si ha llegado hasta aquí, es que todo es correcto 
    } 
</script> 
    </html> 
</head> 
<?php 
//si existe una petición 
if($_POST['buscar']) 
{ 

$usuario= ''; 
$pass = ''; 
$servidor = ''; 
$basedatos = ''; 
$info = array('Database'=>$basedatos, 'UID'=>$usuario, 'PWD'=>$pass); 
$conexion = sqlsrv_connect($servidor, $info); 
if(!$conexion){ 

die(print_r(sqlsrv_errors(), true)); 

} 

echo 'Conectado'; 


$buscar = $_POST["palabra"]; 

$arrojado = sqlsrv_query("SELECT ID from Venta 
where ID like '%buscar%'",$conexion) or 
die("Problemas en el select:".sqlsrv_error()); 
?> 
//$resultado = sqlsrv_fetch_array($arrojado); 

<?php 
$valor = $resultado['aleatoria']; //LE ASIGNAMOS UNA VARIABLE AL RESULTADO DE LA CONSULTA 

//COMPARAMOS CON UNA CONDICIONAL 

if($arrojado == $buscar){ 
echo"todo bien"; 

} 
else { 
echo "El numero consultado no existe"; 
?> 
+1

HOLA!請儘管英語,但格拉齊。 –

+0

'

'應該進入''順便說一句,而不是''。 –

+0

@ Fred-ii-你的PHP技能可能是* molto bene *但你的西班牙語不是! ;) – miken32

回答

1

首先,你應該閱讀這個問題的答案:How to get useful error messages in PHP?這本來你省去很多麻煩。

您嘗試將數據庫結果比較字符串,這是行不通的:

$buscar = $_POST["palabra"]; 
... 
$arrojado = sqlsrv_query("..."); 
... 
if($arrojado == $buscar) { 
... 
} 

你也傳遞參數sqlsrv_query()順序錯誤,並在年底失蹤2個結束括號的代碼和echo聲明後的空格。

你需要從結果集讀取該行,然後從它那裏得到的第一個條目:

<?php 
if($_POST['buscar']) { 

    $usuario= ''; 
    $pass = ''; 
    $servidor = ''; 
    $basedatos = ''; 
    $info = array('Database'=>$basedatos, 'UID'=>$usuario, 'PWD'=>$pass); 
    $conexion = sqlsrv_connect($servidor, $info); 
    if(!$conexion){ 
     die(print_r(sqlsrv_errors(), true)); 
    } 
    echo 'Conectado'; 

    $buscar = $_POST["palabra"]; 

    $arrojado = sqlsrv_query($conexion, "SELECT `ID` FROM Venta WHERE `ID` LIKE '%buscar%'"); 
    if (!$arrojado) { 
     die("Problemas en el select:".sqlsrv_error()); 
    } 
    $row = sqlsrv_fetch_array($arrojado, SQLSRV_FETCH_ASSOC); 

    //COMPARAMOS CON UNA CONDICIONAL 
    if($arrojado["ID"] == $buscar){ 
     echo "todo bien"; 
    } else { 
     echo "El numero consultado no existe"; 
    } 
} 
?>