[ biotech @ 20.11.2006. 22:35 ] @
naime ovaj kod treba da primi jedan podatak,ime knjige i da ga uporedi sa vrednostima u bazi,ako nadje knjigu sa tim nazivom generise XML koji sadrzi dodatne podatke u knjizi i vraca je klijentu koji dalje obradjuje...problem je u tome sto kod ne generise XML strukturu kako sam ja ocekivao, uglavnom je problem u foreach petlji jer kao da se taj deo ignorise....

struktura bi trebala da izgleda ovako

<response>
<books>
<match></match>
<number_of_matches></number_of_matches>
<book>
<title/>
<author/>
<year/>
<jos dodatni elementi/>
</book>
</books>
</response>

a struktura koja se dobija je ovakva:

<response>
<books>
<match></match>
<number_of_matches></number_of_matches>
</books>
</response>

dakle sve sto je unutar foreach petlje nedostaje, probao sam svasta i citao dokumentacju na netu pre nego sto sam postavio pitanje
mozda je ocigledno ali ja ne vidim
nadam se da neko od vas gurua ima resenje mog problema




Code:

<?php 
      $books = array();
      $total_books=4;
      $m=0;
    
          
      $titles=array(array('ovde','su','elementi','niza')
                    array('ovde','su','elementi','niza'));            //izbrisao sam podatke mnogo su kabasti, oko ovog niza je sve jasno
             
             $titleValue=$_GET['titleValue'];
            
             for($i=0;$i<$total_books;$i++){
                 if(strcasecmp($titleValue,$titles[$i][0])==0) {
                    $book_title=$titles[$i][0];
                    $book_price_us=$titles[$i][1];
                    $book_price_uk=$titles[$i][2];
                    $book_isbn=$titles[$i][3];
                    $book_author=$titles[$i][4];
                    $book_year=$titles[$i][5];
                    $book_discount=$titles[$i][6];
                    $book_category=$titles[$i][7];
                    $book_description=$titles[$i][8];
                    $book_image=$titles[$i][9]; 
                    
                    $books [] = array('title' => $book_title,
                                      'USprice' => $book_price_us,
                                      'UKprice' => $book_price_uk,
                                      'isbn' => $book_isbn,
                                      'author' => $book_author,
                                      'year' => $book_year,
                                      'discount' => $book_discount,
                                      'category' => $book_category,
                                      'description' => $book_description,
                                      'image' => $book_image);                                      
                    $m++; 
                    }
                }
            
            if($book_title==""){
                    $query_match='0';
                }
                else
                    $query_match='1';
                
                header('Content-Type: text/xml');
                $dom=new DOMDocument();
                $response=$dom->createElement('response');//root
                $dom->appendChild($response);
                
                $books=$dom->createElement("books");
                $response->appendChild($books);
                

                foreach( $books as $book )
                      {
                      $b = $dom->createElement( "book" );
                      
                      $title = $dom->createElement( 'title' );
                      $title->appendChild(
                      $dom->createTextNode( $book['title'] )
                      );
                      $b->appendChild( $title );
                      
                      $USprice = $dom->createElement( "USprice" );
                      $USprice->appendChild(
                      $dom->createTextNode( $book['USprice'] )
                      );
                      $b->appendChild( $USprice );
                      
                      $UKprice = $dom->createElement( "UKprice" );
                      $UKprice->appendChild(
                      $dom->createTextNode( $book['UKprice'] )
                      );
                      $b->appendChild( $UKprice );
                      
                      $isbn = $dom->createElement( "isbn" );
                      $isbn->appendChild(
                      $dom->createTextNode( $book['isbn'] )
                      );
                      $b->appendChild( $isbn );
                      
                      $author = $dom->createElement( "author" );
                      $author->appendChild(
                      $dom->createTextNode( $book['author'] )
                      );
                      $b->appendChild( $author );
                      
                      $year = $dom->createElement( "year" );
                      $year->appendChild(
                      $dom->createTextNode( $book['year'] )
                      );
                      $b->appendChild( $year );
                      
                      $discount = $dom->createElement( "discount" );
                      $discount->appendChild(
                      $dom->createTextNode( $book['discount'] )
                      );
                      $b->appendChild( $discount );
                      
                      $category = $dom->createElement( "category" );
                      $category->appendChild(
                      $dom->createTextNode( $book['category'] )
                      );
                      $b->appendChild( $category );
                      
                      $description = $dom->createElement( "description" );
                      $description->appendChild(
                      $dom->createTextNode( $book['description'] )
                      );
                      $b->appendChild( $description );
                      
                      $image = $dom->createElement( "image" );
                      $image->appendChild(
                      $dom->createTextNode( $book['image'] )
                      );
                      $b->appendChild( $image );
                      
                      $books->appendChild( $b );
                      }
                      
                $match=$dom->createElement('match');
                $matchText=$dom->createTextNode($query_match); 
                $match->appendChild($matchText);
                
                $number_of_matches=$dom->createElement('number_of_matches');
                $number_of_matches_text=$dom->createTextNode($m);
                $number_of_matches->appendChild($number_of_matches_text);
                      
                $books->appendChild($match);
                $books->appendChild($number_of_matches);
                
                $xmlString=$dom->saveXML();
                echo $xmlString;
                
    ?>

[ NikolaVeber @ 21.11.2006. 01:27 ] @
Proba da
Code:

 $response->appendChild($books);


stavis iza foreach petlje... To je ideja na prvu loptu, ako ne radi, prati malo tok izvrsavanja, pa reci gde zapinje.
[ biotech @ 21.11.2006. 01:46 ] @
hmmm mislim da sam to probao, cek da vidim

e nije dobro, evo koju strukturu daje:

<response>
<books>
<match>0</match>
<number_of_matches>0</number_of_matches>
</books>
</response>

a gresku je sledeca kada pokusa da obradi XML :

[att_img]
[ Br@nkoR @ 21.11.2006. 09:00 ] @
Imaš niz $books
Code:

$books = array();

I u njega dodaješ nove članove od kojih formiraš xml dokument.

A kasnije u skripti taj isti niz poništavaš sa
Code:

$books=$dom->createElement("books");
[ biotech @ 21.11.2006. 10:16 ] @
hhhm izgleda da je to to, provericu jos malo pa cu se javiti.
hvala


nije bilo to ali si me naveo da pronadjem gresku, greska je bila u tome sto su pod istim nazivom navedeni i niz i element u XML strukturi..
hvala jos jednom pozdrav

[Ovu poruku je menjao biotech dana 21.11.2006. u 11:47 GMT+1]
[ Br@nkoR @ 21.11.2006. 12:10 ] @
Citat:
biotech:
nije bilo to ali si me naveo da pronadjem gresku, greska je bila u tome sto su pod istim nazivom navedeni i niz i element u XML strukturi..


Hmm.. pa to sam i napisao
[ biotech @ 21.11.2006. 13:36 ] @
Citat:
Br@nkoR: Hmm.. pa to sam i napisao ;)


he he ok, hvala jos jednom poz.