# 10 linia z ew. błędem
if ($tytul != "") wpisano ++;
if ( $autor != "") wpisano =+ 2;
if ( $gatunek != "") wpisano =+ 4;
a nie przypadkiem:
# 10 linia z ew. błędem
if ($tytul != "") wpisano ++;
if ( $autor != "") wpisano += 2;
if ( $gatunek != "") wpisano += 4;
?
+= zamiast =+
to samo od 26 się zaczyna
if ((string) $xml->ksiazka->tytul == $tytul) $pokaz ++;
if ((string) $xml->ksiazka->autor == $autor) $pokaz += 2;
if ((string) $xml->ksiazka->gatunek == $gatunek) $pokaz += 4;
Operatory tego typu wyglądają w ten sposób:
<?php
$o0=5;
$o1=5;
$o2=5;
$o3=5;
$o4=5;
$o1+=$o0;
$o2-=$o0;
$o3/=$o0;
$o4*=$o0;
echo $o1.'<br>'.$o2.'<br>'.$o3.'<br>'.$o4; ?>
ps.
Dodatkowo uwaga do tego co poprawiałem:
linia 10:
if ($tytul != "") $wpisano++;
if ( $autor != "") $wpisano += 2;
if ( $gatunek != "") $wpisano += 4;
$wpisano zamiast wpisano (brak dolca $)
ps2.
z tego co pamiętam, użycie kropek zamiast przecinków jest szybsze:)
i po co wstawiać spacje w osobnym ciągu?
echo "TYTUŁ:", ' ', $xml->ksiazka->tytul, '<br>';
daj spacje od razu za dwukropkiem i załatwione:)
echo "TYTUŁ: ".$xml->ksiazka->tytul.'<br>'; echo "AUTOR: ".$xml->ksiazka->autor.'<br>'; echo "GATUNEK: ".$xml->ksiazka->gatunek.'<br>'; echo "OPIS: ".$xml->ksiazka->opis.'<br>'; echo "WYDAWNCTWO: ".$xml->ksiazka->wydawnictwo.'<br>'; echo "ROK WYDANIA: ".$xml->ksiazka->wydana.'<br><br>';
i przy $_POST możesz dodać, żeby nie wywalało błędu jak ktoś dotrze do pliku bez formularza:
$tytul = (isset($_POST['tytul']))?
$_POST['tytul']:''; $autor = (isset($_POST['autor']))?
$_POST['autor']:''; $gatunek = (isset($_POST['gatunek']))?
$_POST['gatunek']:'';
ps3.
już więcej nie piszę, bo wyjdzie, że się czepiam
jak przerobię, żeby wyświetlało więcej wyników, zamiast jednego, to dam znać
No:)
jedna chwila, pętelka i gotowe:)
Proszę:
test.php (tak nazwałem)
<?php
header('Content-Type: text/html; charset = UTF-8');
$tytul = (isset($_POST['tytul']))?
$_POST['tytul']:''; $autor = (isset($_POST['autor']))?
$_POST['autor']:''; $gatunek = (isset($_POST['gatunek']))?
$_POST['gatunek']:'';
//$tytul = 'Lalka'; //znajdzie 2 wyniki
//$tytul = 'Lalkaa'; //znajdzie 1 wynik
//$tytul = 'Lalkaaa'; //znajdzie 0 wyników
// //jak zostawione puste wszystko, to pokaże wszystkie wyniki
//Oznaczenie które pola były wpisane
$wpisano=0;
$pokazanowynikow=0;
if($tytul!="") $wpisano++;
if($autor!="") $wpisano+=2;
if($gatunek!="") $wpisano+=4;
$tytul = mb_convert_case($tytul, MB_CASE_TITLE, "UTF-8");
$autor = mb_convert_case($autor, MB_CASE_TITLE, "UTF-8");
$folder = glob('test.xml'); foreach($folder as $file){
$xml = simplexml_load_string($plik);
for($id=0;$id<(count($xml));$id++){ $pokaz = 0;
if((string)$xml->ksiazka[$id]->tytul == $tytul) $pokaz++;
if((string)$xml->ksiazka[$id]->autor == $autor) $pokaz+=2;
if((string)$xml->ksiazka[$id]->gatunek == $gatunek) $pokaz+=4;
if($pokaz==$wpisano) {
echo "TYTUŁ: ".$xml->ksiazka[$id]->tytul.'<br>'; echo "AUTOR: ".$xml->ksiazka[$id]->autor.'<br>'; echo "GATUNEK: ".$xml->ksiazka[$id]->gatunek.'<br>'; echo "OPIS: ".$xml->ksiazka[$id]->opis.'<br>'; echo "WYDAWNCTWO: ".$xml->ksiazka[$id]->wydawnictwo.'<br>'; echo "ROK WYDANIA: ".$xml->ksiazka[$id]->wydana.'<br><br>'; $pokazanowynikow++;
}
}
}
if($pokazanowynikow==0
) echo "Nie znaleziono żadnych książek"; ?>
test.xml (tak nazwałem) //byłem zbyt leniwy, żeby dodać prawdziwe dane
<?xml version="1.0" encoding="UTF-8"?>
<literatura>
<ksiazka>
<nr_id>1244</nr_id>
<tytul>Lalka</tytul>
<autor>Boleslaw Prus</autor>
<gatunek>Powiesc</gatunek>
<opis>Opis</opis>
<wydawnictwo>WSIP</wydawnictwo>
<wydana>1994</wydana>
</ksiazka>
<ksiazka>
<nr_id>1234</nr_id>
<tytul>Lalka</tytul>
<autor>Boleslaw Pruss</autor>
<gatunek>Powiessc</gatunek>
<opis>Opiss</opis>
<wydawnictwo>WsSIP</wydawnictwo>
<wydana>12994</wydana>
</ksiazka>
<ksiazka>
<nr_id>1234</nr_id>
<tytul>Lalkaa</tytul>
<autor>Boleslaw Pruss</autor>
<gatunek>Powiessc</gatunek>
<opis>Opiss</opis>
<wydawnictwo>WsSIP</wydawnictwo>
<wydana>12994</wydana>
</ksiazka>
</literatura>