La libreria_web.php es un archivo mio donde voy poniendo funciones que uso a menudo, como acceso a la base de datos en firebird o cosas que surjan.
Código PHP:
<?
//******************************************************************************
// Funcion de conexion a al BD y consulta de $query
//******************************************************************************
function consulta_bd($query)
{
$connection = ibase_pconnect ('Dev1:d:/Una/Ruta/AlabasededatosDB.FDB', 'usuario', 'contraseña');
$sql = $query; //Insertamos la consulta que queremos realizar
$consulta = ibase_query($connection, $sql);
return $consulta;
}
//******************************************************************************
//Función de limpieza de la referencia
//******************************************************************************
function CleanUpSpaces($ref)
{
for ($i = 0;$i<=strlen($ref);$i++)
{
if
((((ord($ref[$i]))>=48) and ((ord($ref[$i]))<=57))
or (((ord($ref[$i]))>=97) and ((ord($ref[$i]))<=122))
or (((ord($ref[$i]))>=65) and ((ord($ref[$i]))<=90)))
{
$resul = $resul.$ref[$i];
}
else
{
switch ($ref[$i])
{
case "*": $resul == $resul."%";
case "?": $resul == $resul."_";
default:;
}
}
}
$ref_num2 = strtoupper($resul);
return $ref_num2;
}
//******************************************************************************
//TECH_INFO
//******************************************************************************
function TECH_INFO($ref_without_blanks,$id_sup)
{
if (($ref_without_blanks == '') or ($id_sup == ''))
{
echo "INCORRECT URL PARAMETERS";
}
else
{
$query = "SELECT ti.ref_num, sp.supplier_name, tt.ref_type, tt.xml_tag, ti.svalue
FROM technical_items tt, suppliers sp, technical_inf ti, main_reference mr
WHERE tt.xml_tag <>''
AND mr.ref_without_blanks='$ref_without_blanks'
AND ti.ref_num=mr.ref_with_blanks
AND ti.id_sup=$id_sup
AND ti.tech_id=tt.tech_id
AND ti.id_sup=sp.id_sup";
$consulta = consulta_bd($query);
$Ra = 0;
$Rm = 0;
$Rc = 0;
echo "<br><TECH_INFO><br>";
while ($fila = ibase_fetch_object ($consulta)) {
if ($fila->REF_TYPE == M) {
if ($Rm == 0) {
echo "<REF_NUM>$fila->REF_NUM</REF_NUM><br>
<SUPPLIER_NAME>$fila->SUPPLIER_NAME</SUPPLIER_NAME><br>
<REF_TYPE>$fila->REF_TYPE</REF_TYPE><br>";
$Rm++;
}
echo " <$fila->XML_TAG>$fila->SVALUE</$fila->XML_TAG><br>";
}
if ($fila->REF_TYPE == A) {
if ($Ra == 0) {
echo "<REF_NUM>$fila->REF_NUM</REF_NUM><br>
<SUPPLIER_NAME>$fila->SUPPLIER_NAME</SUPPLIER_NAME><br>
<REF_TYPE>$fila->REF_TYPE</REF_TYPE><br>";
$Ra++;
}
echo " <$fila->XML_TAG>$fila->SVALUE</$fila->XML_TAG><br>";
}
if ($fila->REF_TYPE == C) {
if ($Rc == 0) {
echo "<REF_NUM>$fila->REF_NUM</REF_NUM><br>
<SUPPLIER_NAME>$fila->SUPPLIER_NAME</SUPPLIER_NAME><br>
<REF_TYPE>$fila->REF_TYPE</REF_TYPE><br>";
$Rc++;
}
echo " <$fila->XML_TAG>$fila->SVALUE</$fila->XML_TAG><br>";
}
}
echo "<br></TECH_INFO><br>";
}
}
//******************************************************************************
//SEARCH_REFS
//******************************************************************************
function SEARCH_REFS($ref_num)
{
if (($ref_num == ''))
{
echo "INCORRECT URL PARAMETERS";
}
else
{
$query = "SELECT sp.supplier_name, mr.ref_with_blanks, mr.id_sup, mr.ref_type
FROM suppliers sp, main_reference mr LEFT OUTER JOIN spare_items si ON mr.ref_type=si.ref_type
AND mr.id_part_type=si.id_part_type LEFT OUTER JOIN lang l ON si.lang_id=l.lang_id
WHERE ((mr.id_sup = sp.id_sup)
AND (mr.ref_without_blanks like '$ref_num%')
AND (sp.activated='Y'))
AND mr.ref_type IN ('A','M','C')
AND mr.id_part_type=0
ORDER BY mr.ref_with_blanks";
echo "<br><SEARCH_REF><br>";
$consulta = consulta_bd($query);
while ($fila = ibase_fetch_object ($consulta))
{
echo "<br><REF><br>
<REF_NUM>$fila->REF_WITH_BLANKS<REF_NUM><br>
<ID_SUP>$fila->ID_SUP</ID_SUP><br>
<SUPPLIER_NAME>$fila->SUPPLIER_NAME</SUPPLIER_NAME><br>
<REF_TYPE>$fila->REF_TYPE</REF_TYPE><br>
</REF><br>";
}
echo "<br></SEARCH_REF><br>";
}
}
?>
Esta es la última que estoy utilizando en estos momentos.