Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Consultas contra una BD SQL Web

Estas en el tema de Consultas contra una BD SQL Web en el foro de PHP en Foros del Web. Hola, tengo un problema urgente! en mi trabajo herede una pagina web la cual estaba echa en Drupal, la cual mantuve todo el año pasado ...
  #1 (permalink)  
Antiguo 04/03/2013, 08:41
Avatar de difilippocarlos  
Fecha de Ingreso: junio-2010
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 1
Consultas contra una BD SQL Web

Hola,

tengo un problema urgente!


en mi trabajo herede una pagina web la cual estaba echa en Drupal, la cual mantuve todo el año pasado mientras hacia cursos de diseño y programacion web.

Ahora estoy terminando una pagina echa por mi desde cero, y empece a migrar todas aquellas funciones que teniamos en la web para nuestros clientes.

Para lo que necesito hacer consultas a una Base de Datos en SQL Web,
http://www.url-del-servidor-sql.com....ans'/12345

y me devuelve todos los datos relacionados con la cuenta nro 12345

Ahora lo q necesito son saber que funciones uso para hacer esa consulta y almacenarla en una variable.

Muchas Gracias por su tiempo!
  #2 (permalink)  
Antiguo 04/03/2013, 08:56
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Consultas contra una BD SQL Web

Disculpa, ¿Que conocimientos tienes de sql y php? Lo pregunto basicamente porque la consulta en si no deberia generarte muchas dificultades.

Lo primero que debes hacer es una conexión a la base de datos y realizar la consulta acorde a los datos que necesitas.

Aquí esta la libreria para hacer las conexiones mysql donde puedes consultar como usarlas.



http://php.net/manual/es/book.mysqli.php

revisate esta en especial y mira sus ejemplos

http://www.php.net/manual/es/mysqli.query.php

Si despues de mirarla tienes una duda mas concreta ya con codigo escrito por ti nos comentas que problema tienes, porque por la poca información que tienes no es suficiente dar mas ayuda.
__________________
Blog de humor http://elcuasatar.net63.net/
  #3 (permalink)  
Antiguo 04/03/2013, 09:07
Avatar de difilippocarlos  
Fecha de Ingreso: junio-2010
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Consultas contra una BD SQL Web

no me entendiste...

lo que quiero es conectarme a una api de sql, y guardar en una matriz el resultado...
Drupal hace algo como esto pero no me esta funcionando
Código:
    $result = new stdClass();

    $uri = parse_url($url);

    switch ($uri['scheme']) {
        case 'http':
            $port = isset($uri['port']) ? $uri['port'] : 80;
            $host = $uri['host'] . ($port != 80 ? ':' . $port : '');
            $fp = @fsockopen($uri['host'], $port, $errno, $errstr, 15);
            break;
        case 'https':
            // Note: Only works for PHP 4.3 compiled with OpenSSL.
            $port = isset($uri['port']) ? $uri['port'] : 443;
            $host = $uri['host'] . ($port != 443 ? ':' . $port : '');
            $fp = @fsockopen('ssl://' . $uri['host'], $port, $errno, $errstr, 20);
            break;
        default:
            $result->error = 'invalid schema ' . $uri['scheme'];
            return $result;
    }
    if (!$fp) {
        $result->error = trim($errno . ' ' . $errstr);
        $result->code = -$errno;
        return $result;
    }
    $path = isset($uri['path']) ? $uri['path'] : '/';
    if (isset($uri['query'])) {
        $path .= '?' . $uri['query'];
    }
    $defaults = array(
        'Host' => "Host: $host",
        'User-Agent' => 'User-Agent: Drupal (+http://drupal.org/)',
        'Content-Length' => 'Content-Length: ' . strlen($data)
    );

    if (isset($uri['user'])) {
        $defaults['Authorization'] = 'Authorization: Basic ' . base64_encode($uri['user'] . (!empty($uri['pass']) ? ":" . $uri['pass'] : ''));
    }

    foreach ($headers as $header => $value) {
        $defaults[$header] = $header . ': ' . $value;
    }

    $request = $method . ' ' . $path . " HTTP/1.0\r\n";
    $request .= implode("\r\n", $defaults);
    $request .= "\r\n\r\n";
    if ($data) {
        $request .= $data . "\r\n";
    }
    $result->request = $request;

    fwrite($fp, $request);

    $response = '';
    while (!feof($fp) && $chunk = fread($fp, 1024)) {
        $response .= $chunk;
    }
    fclose($fp);

    list($split, $result->data) = explode("\r\n\r\n", $response, 2);
    $split = preg_split("/\r\n|\n|\r/", $split);

    list($protocol, $code, $text) = explode(' ', trim(array_shift($split)), 3);
    $result->headers = array();

    while ($line = trim(array_shift($split))) {
        list($header, $value) = explode(':', $line, 2);
        if (isset($result->headers[$header]) && $header == 'Set-Cookie') {
            $result->headers[$header] .= ',' . trim($value);
        } else {
            $result->headers[$header] = trim($value);
        }
    }

    $responses = array(
        100 => 'Continue', 101 => 'Switching Protocols',
        200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content',
        300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 307 => 'Temporary Redirect',
        400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Time-out', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Large', 415 => 'Unsupported Media Type', 416 => 'Requested range not satisfiable', 417 => 'Expectation Failed',
        500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Time-out', 505 => 'HTTP Version not supported'
    );
    if (!isset($responses[$code])) {
        $code = floor($code / 100) * 100;
    }

    switch ($code) {
        case 200: // OK
        case 304: // Not modified
            break;
        case 301: // Moved permanently
        case 302: // Moved temporarily
        case 307: // Moved temporarily
            $location = $result->headers['Location'];

            if ($retry) {
                $result = drupal_http_request($result->headers['Location'], $headers, $method, $data, --$retry);
                $result->redirect_code = $result->code;
            }
            $result->redirect_url = $location;

            break;
        default:
            $result->error = $text;
    }

    $result->code = $code;
    return $result;
  #4 (permalink)  
Antiguo 04/03/2013, 09:08
Avatar de difilippocarlos  
Fecha de Ingreso: junio-2010
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Consultas contra una BD SQL Web

PD=
conocimientos en php, basicos

conocimientod en SQL avanzados
conocimientos en MySQL (no viene al caso) medios
  #5 (permalink)  
Antiguo 04/03/2013, 14:27
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Consultas contra una BD SQL Web

Ok no pasa nada. Mira por tiempo mas que todo no te puedo colaborar mucho y apenas si he usado drupal (prefiero dar un paso al costado antes que empezar a especular y hacerte perder el tiempo). Sin embargo Al mirar tu script note que no encontre por ningún lado la forma como te estas conectando a la base de datos. Drupal maneja lo que es el PDO para conexión a base de datos y no encontre dentro de tu script nada parecido a eso. Yo le pegaria una ojeada a la documentación oficial sobre el tema. Por lo que vi en tu script pareciera (No lo afirmo, lo supongo) que esta es tratando de leer el contenido de un archivo (no se que tipo pero parece ser que html) pero no veo que entre a una base de datos sino que trata de tomar ese contenido desde la página. Eso que tu nombras como

http://www.url-del-servidor-sql.com....ans'/12345

De verdad siento no poder colaborarte mas. Te dejo el enlace para la api de drupal por si te sirve de algo.

http://drupal.org/node/310071
__________________
Blog de humor http://elcuasatar.net63.net/
  #6 (permalink)  
Antiguo 05/03/2013, 06:06
Avatar de difilippocarlos  
Fecha de Ingreso: junio-2010
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Consultas contra una BD SQL Web

Disculpame sino me explique bien...

** DRUPAL = Pagina Web Vija (no va mas)

** La Api es de Microsoft SQL Server

** La conexion a la BD MySQL anda todo bien, no tengo esa clases de problemas

** Volvienvo a la Api, no necesita una cadena de conexion...
Para intentar explicartelo seria como q vos tubieras una base de datos en un servidor con ip:200.43.157.137, para una concesionaria de autos
En el creas un procedimiento almacenado que se llame AutosStock
y que la variable con la que haces la consulta sea Marca
Entonces vas a tu navegador web y colocas:
http://200.43.157.137/AutosStock/Marcas/Peugeot

Entonces en la ventana vas a tener un array correspondiente a la consulta que realizaste


Espero que hayas entendido...
  #7 (permalink)  
Antiguo 05/03/2013, 06:52
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Consultas contra una BD SQL Web

Si entiendo lo que pretendes hacer pero no entiendo el script. No esta escrito como yo acostumbro trabajar y lo que vi en la documentación de Drupal no existe nada parecido. No es que no quiera colaborar es que no tengo las herramientas suficientes para hacerlo, si lo entendiera bien te podria decir prueba esto o prueba aquello o que error te da pero al no comprenderlo pues mal haria en especular . Yo trataria de atacar el problema de otra manera y ya hice la sugerencia de como lo haria yo (directamente buscando la consulta en la base de datos). Insisto y no quiero sonar repetitivo De verdad siento no poder colaborarte mas. No tengo herramientas suficientes para entender como funciona ese script. Espero y alguien que lea este post te pueda ayudar.
__________________
Blog de humor http://elcuasatar.net63.net/
  #8 (permalink)  
Antiguo 05/03/2013, 08:10
Avatar de difilippocarlos  
Fecha de Ingreso: junio-2010
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Consultas contra una BD SQL Web

Si si te entiendo... igual no tengo acceso a la bd... no tengo ni el usuario ni pass de la bd, por lo cual no puedo generar una conexion...

igual ahi logre sacar 1 dato, de la siguiente manera:

Código:
$headers = array();
    $method = 'GET';
    $data = NULL;
    $retry = 3;

    $result = new stdClass();

    $uri = parse_url('http://200.43.54.146:88/coop-api/CustomerTransactions/lastInvoice/9333');

    switch ($uri['scheme']) {
        case 'http':
            $port = isset($uri['port']) ? $uri['port'] : 80;
            $host = $uri['host'] . ($port != 80 ? ':' . $port : '');
            $fp = @fsockopen($uri['host'], $port, $errno, $errstr, 15);
            break;
        case 'https':
            // Note: Only works for PHP 4.3 compiled with OpenSSL.
            $port = isset($uri['port']) ? $uri['port'] : 443;
            $host = $uri['host'] . ($port != 443 ? ':' . $port : '');
            $fp = @fsockopen('ssl://' . $uri['host'], $port, $errno, $errstr, 20);
            break;
        default:
            $result->error = 'invalid schema ' . $uri['scheme'];
            return $result;
    }
    if (!$fp) {
        $result->error = trim($errno . ' ' . $errstr);
        $result->code = -$errno;
        return $result;
    }
    $path = isset($uri['path']) ? $uri['path'] : '/';
    if (isset($uri['query'])) {
        $path .= '?' . $uri['query'];
    }
    $defaults = array(
        'Host' => "Host: $host",
        'User-Agent' => 'User-Agent: Drupal (+http://drupal.org/)',
        'Content-Length' => 'Content-Length: ' . strlen($data)
    );

    if (isset($uri['user'])) {
        $defaults['Authorization'] = 'Authorization: Basic ' . base64_encode($uri['user'] . (!empty($uri['pass']) ? ":" . $uri['pass'] : ''));
    }

    foreach ($headers as $header => $value) {
        $defaults[$header] = $header . ': ' . $value;
    }

    $request = $method . ' ' . $path . " HTTP/1.0\r\n";
    $request .= implode("\r\n", $defaults);
    $request .= "\r\n\r\n";
    if ($data) {
        $request .= $data . "\r\n";
    }
    $result->request = $request;

    fwrite($fp, $request);

    $response = '';
    while (!feof($fp) && $chunk = fread($fp, 1024)) {
        $response .= $chunk;
    }
    fclose($fp);

    list($split, $result->data) = explode("\r\n\r\n", $response, 2);
    $split = preg_split("/\r\n|\n|\r/", $split);

    list($protocol, $code, $text) = explode(' ', trim(array_shift($split)), 3);
    $result->headers = array();

    while ($line = trim(array_shift($split))) {
        list($header, $value) = explode(':', $line, 2);
        if (isset($result->headers[$header]) && $header == 'Set-Cookie') {
            $result->headers[$header] .= ',' . trim($value);
        } else {
            $result->headers[$header] = trim($value);
        }
    }

    $responses = array(
        100 => 'Continue', 101 => 'Switching Protocols',
        200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content',
        300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 307 => 'Temporary Redirect',
        400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Time-out', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Large', 415 => 'Unsupported Media Type', 416 => 'Requested range not satisfiable', 417 => 'Expectation Failed',
        500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Time-out', 505 => 'HTTP Version not supported'
    );
    if (!isset($responses[$code])) {
        $code = floor($code / 100) * 100;
    }

    switch ($code) {
        case 200: // OK
        case 304: // Not modified
            break;
        case 301: // Moved permanently
        case 302: // Moved temporarily
        case 307: // Moved temporarily
            $location = $result->headers['Location'];

            if ($retry) {
                $result = drupal_http_request($result->headers['Location'], $headers, $method, $data, --$retry);
                $result->redirect_code = $result->code;
            }
            $result->redirect_url = $location;

            break;
        default:
            $result->error = $text;
    }

    $result->code = $code;
    $doc = simplexml_load_string($result->data);
    $path = $doc->xpath('//@BillingAccountID');
    $fact = (string) $path[0];
    $fact = substr($fact, -5, 5);



    echo $fact; /* esto nos muestro el BillingAccountID */
**Tube q copiar formulas de 3 archivos de drupal form.inc common.inc y module.inc
  #9 (permalink)  
Antiguo 05/03/2013, 08:28
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Consultas contra una BD SQL Web

Jaja siempre digo que no puedo ayudar pero en ocasiones me gana el espíritu de ayuda (en verdad lo hago por gusto).

Pues yo creo que la manera mas facil seria ver como te esta sacando los datos.

Código PHP:
$result->code $code;
$doc simplexml_load_string($result->data);
$path $doc->xpath('//@BillingAccountID');
$fact = (string) $path[0];
$fact substr($fact, -55); 
hazte un print_r de $doc y dependiendo como este la estructura quizas podamos obtener los datos con un foreach o algo parecido. Por favor especifica que datos necesitas y tratare de ayudarte, pero eso si no prometo nada porque tiempo libre no tengo mucho, así que si me queda facil tratare de ayudarte esta noche pero no me comprometo.
__________________
Blog de humor http://elcuasatar.net63.net/
  #10 (permalink)  
Antiguo 05/03/2013, 09:45
Avatar de difilippocarlos  
Fecha de Ingreso: junio-2010
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Consultas contra una BD SQL Web

bueno lo q me da de resultado es lo siguiente:

Código:
SimpleXMLElement Object ( [@attributes] => Array ( [BillingAccountID] => 134266 [UtilityID] => 0 [ServiceID] => 5 
[ServiceDesc] => Internet [CustomerID] => 9333 [CustomerDesc] => RUI Gerardo Nelson [BillID] => 15570161 [BillTypeID] => 29 
[BillTypeDesc] => Factura de servicios [BillLetter] => [BillNumber] => 0014-00402382 [BillEmisionDate] => 2013-02-21 00:00:00 
[VATTypeID] => 1 [VATTypeDesc] => Consumidor final [NetAmount] => 78.51 [VATAmount] => 16.49 [TAXAmount] => 0 
[OverTaxAmount] => 0 [TotalAmount] => 95 [TAXId] => 23-22136931-9 [AddStreet] => [LocalTaxID] => [PendingAmount] => 95 
[Name] => RUI Gerardo Nelson [DueDate] => 2013-03-18 00:00:00 ) )
Yo ahora necesito sacar el dueDate, CustomerID, BillNumber
  #11 (permalink)  
Antiguo 05/03/2013, 13:14
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Consultas contra una BD SQL Web

Bueno como puedo ver que puedes manejar el fichero como un archivo xml yo haria algo parecido a lo que se encuentra en este post

http://web.tursos.com/tutoriales/php...vo-xml-con-php

Suponiendo que fuera todo tu archivo de la forma:

Código HTML:
Ver original
  1. <etiqueta>
  2. <item>
  3. <dueDate>due1</dueDate>
  4. <CustomerID>cus1</CustomerID>
  5. <BillNumber>bill1</BillNumber>
  6. //etcetera de datos
  7. </item>
  8. <item>
  9. <dueDate>due2</dueDate>
  10. <CustomerID>cus2</CustomerID>
  11. <BillNumber>bill2</BillNumber>
  12. //etcetera de datos
  13. </item>
  14. <item>
  15. <dueDate>due3</dueDate>
  16. <CustomerID>cus3</CustomerID>
  17. <BillNumber>bill3</BillNumber>
  18. //etcetera de datos
  19. </item>
  20. </etiqueta>

Podrias hacer algo como:


Código PHP:
<?php
    $mispost 
simplexml_load_file('aqui va el nombre del xml o la estructura tipo xml que tiene'); //declaramos la ubicacion del XML
    
foreach ($mispost->etiqueta->item as $post):
        
$dueDate[]=$post->dueDate// declaracion de variables
        
$CustomerID[]=$post->CustomerID;
        
$BillNumber[]=$post->description;
// muestra la lista
    
endforeach;
?>
De pronto para tu caso seria mas de utilidad el simplexml_load_string porque supongo que no es un archivo sino una cadena pero con este foreach podrias hacer un recorrido de todos los resultados que necesitas y como lo ves yo los guardo en un arreglo, si luego te apetece hacer una arreglo de arreglos pues ya depende como lo veas.

Es obvio que sea el archivo que leas tiene que tener todos los datos que tu necesitas, por lo que me diste a entender tu solo capturaste el primer dato. es cuestión que mires el ejemplo, lo entiendas y lo modifiques.

Y ahora si oficialmente me retiro del tema, en verdad no tengo mas tiempo. Si no te sirvio lo que te explique espero que por lo menos te de luces para solucionar tu problema. Igual si lo logras solucionar comparte tu descubrimiento con la comunidad.
__________________
Blog de humor http://elcuasatar.net63.net/
  #12 (permalink)  
Antiguo 06/03/2013, 05:51
Avatar de difilippocarlos  
Fecha de Ingreso: junio-2010
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Consultas contra una BD SQL Web

No pude hacerlo como me lo habias pasado vos... pero te dejo como lo hice...

Cree 2 funciones

Código:
function leerApiSQL($url) {
    $cabeceras = array();
    $metodo = 'GET';
    $datos = NULL;
    $intentos = 3;

    $result = new stdClass();

    $uri = parse_url($url);

    switch ($uri['scheme']) {
        case 'http':
            $port = isset($uri['port']) ? $uri['port'] : 80;
            $host = $uri['host'] . ($port != 80 ? ':' . $port : '');
            $fp = @fsockopen($uri['host'], $port, $errno, $errstr, 15);
            break;
        case 'https':
            // Note: Only works for PHP 4.3 compiled with OpenSSL.
            $port = isset($uri['port']) ? $uri['port'] : 443;
            $host = $uri['host'] . ($port != 443 ? ':' . $port : '');
            $fp = @fsockopen('ssl://' . $uri['host'], $port, $errno, $errstr, 20);
            break;
        default:
            $result->error = 'invalid schema ' . $uri['scheme'];
            return $result;
    }

    if (!$fp) {
        $result->error = trim($errno . ' ' . $errstr);
        $result->code = -$errno;
        return $result;
    }

    $path = isset($uri['path']) ? $uri['path'] : '/';
    if (isset($uri['query'])) {
        $path .= '?' . $uri['query'];
    }
    $defaults = array(
        'Host' => "Host: $host",
        'User-Agent' => 'User-Agent: Drupal (+http://drupal.org/)',
        'Content-Length' => 'Content-Length: ' . strlen($datos)
    );

    if (isset($uri['user'])) {
        $defaults['Authorization'] = 'Authorization: Basic ' . base64_encode($uri['user'] . (!empty($uri['pass']) ? ":" . $uri['pass'] : ''));
    }

    foreach ($cabeceras as $header => $value) {
        $defaults[$header] = $header . ': ' . $value;
    }

    $request = $metodo . ' ' . $path . " HTTP/1.0\r\n";
    $request .= implode("\r\n", $defaults);
    $request .= "\r\n\r\n";
    if ($datos) {
        $request .= $data . "\r\n";
    }
    $result->request = $request;

    fwrite($fp, $request);

    $response = '';
    while (!feof($fp) && $chunk = fread($fp, 1024)) {
        $response .= $chunk;
    }
    fclose($fp);

    list($split, $result->data) = explode("\r\n\r\n", $response, 2);
    $split = preg_split("/\r\n|\n|\r/", $split);

    list($protocol, $code, $text) = explode(' ', trim(array_shift($split)), 3);
    $result->headers = array();

    while ($line = trim(array_shift($split))) {
        list($header, $value) = explode(':', $line, 2);
        if (isset($result->headers[$header]) && $header == 'Set-Cookie') {
            $result->headers[$header] .= ',' . trim($value);
        } else {
            $result->headers[$header] = trim($value);
        }
    }

    $responses = array(
        100 => 'Continue', 101 => 'Switching Protocols',
        200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content',
        300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 307 => 'Temporary Redirect',
        400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Time-out', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Large', 415 => 'Unsupported Media Type', 416 => 'Requested range not satisfiable', 417 => 'Expectation Failed',
        500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Time-out', 505 => 'HTTP Version not supported'
    );
    if (!isset($responses[$code])) {
        $code = floor($code / 100) * 100;
    }

    switch ($code) {
        case 200: // OK
        case 304: // Not modified
            break;
        case 301: // Moved permanently
        case 302: // Moved temporarily
        case 307: // Moved temporarily
            $location = $result->headers['Location'];

            if ($retry) {
                $result = drupal_http_request($result->headers['Location'], $headers, $method, $data, --$retry);
                $result->redirect_code = $result->code;
            }
            $result->redirect_url = $location;

            break;
        default:
            $result->error = $text;
    }

    $result->code = $code;
    $doc = simplexml_load_string($result->data);

    return $doc;
}

function leerXML($doc, $var, $long) {

    $path = $doc->xpath($var);
    if (isset($path[0])) {
        $fact = (string) $path[0];
        $fact = substr($fact, -$long, $long);
    } else {
        $fact = 1;
    }

    return $fact;
}

y las llamo desde mi funcion principal

Código:
function obtenerCliente($cc) {
    $resultado = FALSE;
   
    $nrocliente = $cc;
    $url = 'http://200.43.54.146:88/coop-api/CustomerTransactions/lastInvoice/';
    $url .= $nrocliente;
    $doc = leerApiSQL($url);

    $dato = '//@CustomerID'; //Simpre usar el formato //@Dato

    $fact = leerXML($doc, $dato, 5); //el numero del final es la cantidad de caracteres q queremos

    if ($fact == $nrocliente) {
        $resultado = TRUE;
    }

    return $resultado;
}

Etiquetas: bd, contra, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:45.