Buscar dados no XML PHP
Olá pessoal essa busca eu sei fazer com MySql usando LIKE '"%%$_POST["nome"]%%"', estou agora realizar no XML. Eu preciso que venha com uma input txtbuscar.
O script a abaixo eu já consegui listar e paginar, mas o mais importante e buscar a palavra, eu pesquisei em forum internacionais e nacionais e muitos não consegui compreender, se algum já realizou uma busca dessas poderia deixar esse topico para discursões, pois não achei um post sobre o assunto.
//--------------------------- PHP-------------------------------------------
//Poderia ser assim
if($_POST["txtBuscar"]=="ligar"){
// AQUI faz a busca ...........
Não é busca lista
}else{
// API da onde está listando
$accounts = $xmlapi->listaccts();
//Se realizar um var_drup($accounts); OK
//String não é File
$xml = simplexml_load_string($accounts);
//carregar tudo em uma só variavel
$minhaArray = array();
foreach ($xml->acct as $acct){
$minhaArray[] = array(
'domain'=>(string)$acct->domain,
'user'=>(string)$acct->user,
'ip'=>(string)$acct->ip,
'disklimit'=>(string)$acct->disklimit,
'diskused'=>(string)$acct->diskused,
'plan'=>(string)$acct->plan,
);
}
// fecha lista
}
// Ordernar em ordem alfabética
sort($minhaArray);
//Total de registro em dados do XML
echo "Total de registro(s): ".$totalContas = count($minhaArray);
// Quantidades por páginas
$perPage = 20;
$page = isset($_GET['pg']) && ($page = intval($_GET['pg'])) > 0 ? $page : 1;
$start = ($page - 1) * $perPage;
$end = $start + $perPage;
$contas = array();
for ($ab=$start; $ab<$end; ++$ab) {
if (isset($minhaArray[$ab])) {
$contas[] = $minhaArray[$ab];
}
}
//Listar quantas páginas aparecem
$pages = ceil($totalContas/$perPage);
for($a=1; $a<=$pages; ++$a){
if(!$barraNav){
if ((!$_GET["pg"]) || ($_GET["pg"]==1)){
$barraNav = "<div style=\"float:left;margin: 3px;padding: 3px;width: 30px;border: 1px solid #EEE;text-align:center;\">".($a+0)."</div>";
}else{
$barraNav = "<div style=\"background:#EEE;float:left;margin: 3px;padding: 3px;width: 30px;text-align:center;\"><a href=\"javascript:;\" onclick=\"paginacao(".$a.");\">".($a+0)."</a></div>";
}
}else{
if ($a==$_GET["pg"]){
$barraNav .= "<div style=\"float:left;margin: 3px;padding: 3px;width: 30px;border: 1px solid #EEE;text-align:center;\">".($a+0)."</div>";
}else{
$barraNav .= "<div style=\"background:#EEE;float:left;margin: 3px;padding: 3px;width: 30px;text-align:center;\"><a href=\"javascript:;\" onclick=\"paginacao(".$a.");\">".($a+0)."</a></div>";
}
}
}
//---------------------------Listagem-----------------------------
<!-- FORM de BUSCA -->
<form id="formBuscaClienteUrl" name="formBuscaClienteUrl" method="post" action="" class="sky-form" onsubmit="return false">
<input name="txtBuscar" type="hidden" value="ligar" />
<script language="javascript">document.formBuscaClienteUrl.buscarURL.focus();</script>
<table width="100%" cellspacing="0" cellpadding="5">
<tr>
<td width="95%" style="padding-left:10px;">
<input name="buscarURL" type="text"/>
</td>
<td width="5%"><button style="padding-left:10px;" type="submit" onclick="buscar('formBuscaClienteUrl')" class="button" >Localizar</button></td>
</tr>
</table>
</form>
<!-- //FORM de BUSCA -->
<!-- LISTANDO EM LOOP usando foreach -->
<table width="100%" cellspacing="1" cellpadding="5">
<?php $cor=0; foreach ($contas as $acct){ ?>
<tr style="border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #CCC;" bgcolor="<?php if($cor % 2){ echo "#F1F1F1"; } ?>">
<td style="padding-left:10px;"> <a href="[http://www.](http://www.)<?php echo $acct['domain']; ?>" target="_blank"> <?php echo $acct['domain'];?></a></td>
<td> <img src="Imagem/img.png" /></td>
<td> <a href="http://<?php echo $acct['ip']; ?>/~<?php echo $acct['user']; ?>/" target="_blank"> <?php echo $acct['ip'];?></a></td>
<td> <?php echo $acct['user']; ?></td>
<td> <?php echo $acct['disklimit']; ?></td>
<td> <?php echo $acct['diskused']; ?></td>
<td> <?php echo $acct['plan']; ?></td>
</tr>
<?php $cor++;}?>
</table>
<footer>
<?php echo $barraNav; ?>
</footer>
<!-- //LISTANDO EM LOOP usando foreach -->
Alguém poderia me ajudar?
Muito obrigado
>
Olá pessoal essa busca eu sei fazer com MySql usando LIKE '"%%$_POST["nome"]%%"', estou agora realizar no XML. Eu preciso que venha com uma input txtbuscar.
O script a abaixo eu já consegui listar e paginar, mas o mais importante e buscar a palavra, eu pesquisei em forum internacionais e nacionais e muitos não consegui compreender, se algum já realizou uma busca dessas poderia deixar esse topico para discursões, pois não achei um post sobre o assunto.
//--------------------------- PHP-------------------------------------------
// API da onde está listando
$accounts = $xmlapi->listaccts();
//Se realizar um var_drup($accounts); OK
//String não é File
$xml = simplexml_load_string($accounts);
//Poderia ser assim
if($_POST["txtBuscar"]=="ligar"){
// AQUI faz a busca ...........
Não é busca lista
}else{
//carregar tudo em uma só variavel
$minhaArray = array();
foreach ($xml->acct as $acct){
$minhaArray[] = array(
'domain'=>(string)$acct->domain,
'user'=>(string)$acct->user,
'ip'=>(string)$acct->ip,
'disklimit'=>(string)$acct->disklimit,
'diskused'=>(string)$acct->diskused,
'plan'=>(string)$acct->plan,
);
}
// fecha lista
}
// Ordernar em ordem alfabética
sort($minhaArray);
//Total de registro em dados do XML
echo "Total de registro(s): ".$totalContas = count($minhaArray);
// Quantidades por páginas
$perPage = 20;
$page = isset($_GET['pg']) && ($page = intval($_GET['pg'])) > 0 ? $page : 1;
$start = ($page - 1) * $perPage;
$end = $start + $perPage;
$contas = array();
for ($ab=$start; $ab<$end; ++$ab) {
if (isset($minhaArray[$ab])) {
$contas[] = $minhaArray[$ab];
}
}
//Listar quantas páginas aparecem
$pages = ceil($totalContas/$perPage);
for($a=1; $a<=$pages; ++$a){
if(!$barraNav){
if ((!$_GET["pg"]) || ($_GET["pg"]==1)){
$barraNav = "<div style=\"float:left;margin: 3px;padding: 3px;width: 30px;border: 1px solid #EEE;text-align:center;\">".($a+0)."</div>";
}else{
$barraNav = "<div style=\"background:#EEE;float:left;margin: 3px;padding: 3px;width: 30px;text-align:center;\"><a href=\"javascript:;\" onclick=\"paginacao(".$a.");\">".($a+0)."</a></div>";
}
}else{
if ($a==$_GET["pg"]){
$barraNav .= "<div style=\"float:left;margin: 3px;padding: 3px;width: 30px;border: 1px solid #EEE;text-align:center;\">".($a+0)."</div>";
}else{
$barraNav .= "<div style=\"background:#EEE;float:left;margin: 3px;padding: 3px;width: 30px;text-align:center;\"><a href=\"javascript:;\" onclick=\"paginacao(".$a.");\">".($a+0)."</a></div>";
}
}
}
//---------------------------Listagem-----------------------------
<!-- FORM de BUSCA -->
<form id="formBuscaClienteUrl" name="formBuscaClienteUrl" method="post" action="" class="sky-form" onsubmit="return false">
<input name="txtBuscar" type="hidden" value="ligar" />
<script language="javascript">document.formBuscaClienteUrl.buscarURL.focus();</script>
<table width="100%" cellspacing="0" cellpadding="5">
<tr>
<td width="95%" style="padding-left:10px;">
<input name="buscarURL" type="text"/>
</td>
<td width="5%"><button style="padding-left:10px;" type="submit" onclick="buscar('formBuscaClienteUrl')" class="button" >Localizar</button></td>
</tr>
</table>
</form><!-- //FORM de BUSCA -->
<!-- LISTANDO EM LOOP usando foreach -->
<table width="100%" cellspacing="1" cellpadding="5">
<?php $cor=0; foreach ($contas as $acct){ ?>
<tr style="border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #CCC;" bgcolor="<?php if($cor % 2){ echo "#F1F1F1"; } ?>">
<td style="padding-left:10px;"> <a href="[http://www.http://<?php echo $acct['ip']; ?>/~<?php echo $acct['user']; ?>/" target="_blank"> <?php echo $acct['ip'];?></a></td>
<td> <?php echo $acct['user']; ?></td>
<td> <?php echo $acct['disklimit']; ?></td>
<td> <?php echo $acct['diskused']; ?></td>
<td> <?php echo $acct['plan']; ?></td>
</tr>
<?php $cor++;}?>
</table>
<footer>
<?php echo $barraNav; ?>
</footer>
<!-- //LISTANDO EM LOOP usando foreach -->
Alguém poderia me ajudar?
Muito obrigado
Discussão (3)
Carregando comentários...