Visualizzazione risultati 1 fino 10 di 10

Discussione: [Php/Xml] Navigazione

  1. #1
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito [Php/Xml] Navigazione

    Salve utenti di AV,

    Ho fatto una ricerca su questo forum e nel web ma non ho trovato nulla.

    Vorevo chiedervi, con sql per fare un sistema di navigazione si usa la clausura LIMIT, ma se io voglio usare un database XML come posso creare la navigazione?

    Sevenjeak
    Software developer and much more

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Vedi se questa discussione può aiutarti: http://forum.it.altervista.org/php-m...t=menu+xml+php
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    Lavori con gli array, gli indici e i for. Non è difficile, basta che ti salvi i dati in un array con questa struttura qui:
    Codice:
    [0] => array(
                 "campo1" => "valore1" ,
                 "campo2" => "valore2"
               ),
    [1] => array(
                 "campo1" => "valore1" ,
                 "campo2" => "valore2"
               )
    ...
    E scorri come ti apre

    #edit la pagina linkata sopra l'ho vista, ma mi sembra un modo un pò contorto di fare la cosa.
    Ultima modifica di stoner : 02-09-2009 alle ore 19.38.09

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Ho letto il link ma non ho capito molto cmq io ho una struttura xml cosi:
    Codice:
    <?xml version="1.0" encode="UTF-8">
    <archivio>
       <element id="1">
          <nodo>value</nodo>
       </element>
      <element id="2">
         <nodo>value</nodo>
      </element>
    </archivio>
    Vorrei una pagina che mi vadi avanti leggento successivamente altri tag <element>

    Stoner... Non ho capito come potrei usare l'array per fare questa cosa?

    Sevenjeak
    Software developer and much more

  5. #5
    Guest

    Predefinito

    Leggi il file XML, tutto, lo metti dentro un array, usi l'indice per scorrere a seconda dell'ID della pagina.
    Codice PHP:
    $array; //faccio finta che ha quella struttura del genere
    echo $array[$_GET['pagina']['nodo'];
    a seconda della pagina che gli passi tira fuori un'array (ovviamente è un esempio, bisogna fare i controlli).

    Codice PHP:
    <?php
    $xml
    = simplexml_load_file("file.xml");

    $array = array();

    foreach(
    $xml->element as $item)
    $array[] = array("nodo" => $item->nodo, /* eventuali altri nodi*/ );

    $pagina = (int)$_GET['pagina'];
    if(
    $pagina >= 0 && $pagina < count($array)) {
    foreach(
    $array[$pagina] as $key => $value)
    echo
    $value;
    }
    ?>
    questo potrebbe essere un esempio, mette un elemento su ogni pagina

  6. #6
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Penso che il modo più semplice sia quello di usare le classi DOM:
    Codice PHP:
    $doc = new DOMDocument();
    $doc->load('file.xml');

    $records = $doc->getElementsByTagName('element');
    for (
    $i = $offset; $records[$i] && $i < $offset + $limit; $i++)
    {
    // usa l'elemento con indice $records[$i]
    }
    Imposta correttamente le variabili $offset (record iniziale, il primo è 0) e $limit (numero di record da prelevare) e hai fatto lo script.

    Statemi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  7. #7
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Ho provato ha scrivere questo codice:
    Codice PHP:
    <?php
    // Visualizza eventuali errori
    error_reporting(E_ALL);
    // Caricamento file xml
    $doc = new DOMDocument();
    $doc->load("Database\software.xml");
    $records = $doc->getElementsByTagName('software');
    // Record iniziale
    $start_record = 0;
    // Record limite
    $limit = 1;
    for (
    $i = $start_record; $records[$i] && $i < $start_record + $limit; $i++) {
    // Estrago il valore del nodo <name>
    $nm = $records[i]->getElementsByTagName('name');
    $name = $nm->item(0)->nodeValue;
    // Estrago il valore del nodo <desc>
    $ds = $records[i]->getElementsByTagName('desc');
    $desc = $ds->item(0)->nodeValue;
    // Estrago il valore del nodo <os>
    $os = $records[i]->getElementsByTagName('os');
    $system = $nm->item(0)->nodeValue;
    // Estrago il valore del nodo <dim>
    $dm = $records[i]->getElementsByTagName('dim');
    $dim = $dm->item(0)->nodeValue;
    ?>
    <div class="element">
    <div>
    <strong><?=$name ; ?></strong>
    </div>
    <div class="t-element">
    <?=$desc ?>
    </div>
    <div>
    <strong>Piattaforma</strong>: <?=$system ?> <strong>Dimensione</strong>: <?=$dim ?>
    </div>
    </div>
    <?php
    }
    ?>
    Ma mi restituisce questi errori:

    Warning: DOMDocument::load() [domdocument.load]: I/O warning : failed to load external entity "/membri/sevenjeak/under/Database\software.xml" in /membri/sevenjeak/under/software.php on line 6

    Fatal error: Cannot use object of type DOMNodeList as array in /membri/sevenjeak/under/software.php on line 12

    Ma questa navigazione è possibile utilizarla anche senza l'attributo id negli elementi del file xml?
    Ultima modifica di sevenjeak : 04-09-2009 alle ore 11.14.34

    Sevenjeak
    Software developer and much more

  8. #8
    Guest

    Predefinito

    Ma te sbagli sempre gli slash??? Non è \ ma /

  9. #9
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Citazione Originalmente inviato da stoner Visualizza messaggio
    Ma te sbagli sempre gli slash???
    Lo so che ci va uno slash al posto di un'altro, ma continuo ha sbagliarmi

    Cmq mi restituisce sempre questo errore:

    Fatal error: Cannot use object of type DOMNodeList as array in /membri/sevenjeak/under/software.php on line 12
    Ultima modifica di sevenjeak : 04-09-2009 alle ore 18.38.00

    Sevenjeak
    Software developer and much more

  10. #10
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Prova a sostituire $records[$i] con $records->item($i). Credevo che l'accesso diretto funzionasse in PHP oltre che in JavaScript...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •