Skrypt PHP

<?php

// utworzenie krótkich nazw zmiennych

$metoda_szukania=$_POST[‘metoda_szukania’];

$wyrazenie=$_POST[‘wyrazenie’];

$wyrazenie = trim($wyrazenie);

if (!$metoda_szukania || !$wyrazenie)

{

echo ‘Brak parametrow. Wroc i dawaj jeszcze raz.’;

exit;

}

if (!get_magic_quotes_gpc())

{

$metoda_szukania = addslashes($metoda_szukania);

$wyrazenie = addslashes($wyrazenie);

}

$db = mysql_connect(“localhost”, “olszewski”, “119590”);

mysql_select_db(“test”,$db);

if (mysqli_connect_errno())

{

echo ‘Blad: Polaczenie z baza nie dalo rady’;

}

$zapytanie = “select * from ksiazki where “.$metoda_szukania.” like '%” .$wyrazenie."%’";

$wynik = $db->query($zapytanie);

$ile_znalezionych = $wynik->num_rows;

echo ’

Ilosc znalezionych pozycji: ‘.$ile_znalezionych.’ p>;

{

for ($i=0: $i <$ile_znalezionych; $i++)

$wiersz = $wynik->fetch_assoc();

BYK?–> echo ‘’ .($i+1).’.’.’ Tytul:’;

echo stripslashes($wiersz[‘tytul’]);

echo ’

Autor: ';

echo stripslashes($wiersz[‘autor’]);

echo ’

ISBN: ';

echo stripslashes($wiersz[‘isbn’]);

echo ’

Cena: ';

echo stripslashes($wiersz[‘cena’]);

echo ’

;

}

$wynik->free();

$db->close();

?>

1. Linia 34 (niedomkniety apostrof na koncu):

echo '
Ilosc znalezionych pozycji: '.$ile_znalezionych.' p>';

2. Linia 38 (ogolnie konkatenacja kuleje) nie wiem co tam chciales osiagnac ale moze byc tak:

echo ''.($i+1).'. Tytul:'; 

[/code]




[b]3.[/b]Linia 46 (ponownie niedomkniety apostrof):

[code] echo ‘’;

Zainstaluj sobie jakikolwiek edytor z kolorowaniem skladni, a takie bledy bedziesz wykrywal natychmiast.

4. Nawias z linii 35 powinien raczej byc POD instrukcja petli for, aktalny uklad nie ma sensu.

Ze tez mi sie chcialo rejestrowac, zeby to napisac :wink:

<?php

// utworzenie krótkich nazw zmiennych

$metoda_szukania=$_POST[‘metoda_szukania’];

$wyrazenie=$_POST[‘wyrazenie’];

$wyrazenie = trim($wyrazenie);

if (!$metoda_szukania || !$wyrazenie)

{

echo ‘Brak parametrow. Wroc i dawaj jeszcze raz.’;

exit;

}

if (!get_magic_quotes_gpc())

{

$metoda_szukania = addslashes($metoda_szukania);

$wyrazenie = addslashes($wyrazenie);

}

$db = mysql_connect(“localhost”, “olszewski”, “119590”);

mysql_select_db(“olszewski”,$db);

{

echo ‘Blad: Polaczenie z baza nie dalo rady’;

exit;

}

$zapytanie = “select * from ksiazki where “.$metoda_szukania.” like '%” .$wyrazenie."%’";

$wynik = $db->query($zapytanie);

$ile_znalezionych = $wynik->num_rows;

echo ’

Ilosc znalezionych pozycji: ‘.$ile_znalezionych.’ p>’;

{

for ($i=0; $i<$ile_znalezionych; $i++)

$wiersz = $wynik->fetch_assoc();

echo ‘’.($i+1).’. Tytul:’;

echo stripslashes($wiersz[‘tytul’]);

echo ’

Autor: ';

echo stripslashes($wiersz[‘autor’]);

echo ’

ISBN: ';

echo stripslashes($wiersz[‘isbn’]);

echo ’

Cena: ';

echo stripslashes($wiersz[‘cena’]);

echo ’

';

}

$wynik->free();

$db->close();

?>

Po drodze chyba wcielo Ci linijke kodu. Tak miales w pierwszej wersji:

mysql_select_db("test",$db); 

if (mysqli_connect_errno()) 

{ 

echo 'Blad: Polaczenie z baza nie dalo rady'; 

}

a tak zamiesciles to dzisiaj:

mysql_select_db("olszewski",$db); 

{ 

echo 'Blad: Polaczenie z baza nie dalo rady'; 

exit; 

}

Pewnie wywaliles ta, linijke gdyz dostawales blad o odwolaniu do nieistniejacej funkcji? No wiec po tej zmianie skrypt dziala tak, ze niezaleznie od tego, czy wybranie bazy sie powiodlo, czy tez nie - ZAWSZE wypisze komunikat “Blad: Polaczenie z baza nie dalo rady” i zakonczy dzialanie. Sam rozszerzenia mysqli nie uzywam, ale da sie wywnioskowac do czego ten fragment kodu mial sluzyc, wiec zaproponuje moj sposob:

mysql_select_db("olszewski",$db) or die("Dowolny wlasny komunikat o bledzie
".mysql_error());

Tylko dalej tez moga byc problemy. Nie wiem, czy to co zamiesciles to tylko fragment, czy cal kod. Bo jesli to caly skrypt, to:

$wynik = $db->query($zapytanie); 

$ile_znalezionych = $wynik->num_rows;

O tych liniach i jeszcze kilku w dalszej czesci moge jedynie zgadywac, ze pewnie tez sa zwiazane z funkcjonalnoscia rozszerzenia mysqli Poniewaz z tego nie korzystam, w tej kwestii nie pomoge.

Ale jesli usuniecie tej linii, o ktorej wspomnialem na poczatku bylo wlasnie z powodu braku tego rozszerzenia na twoim serwerze - moge zaproponowac wersje nie wykorzystujaca mysqli (zastapic od linii $zapytanie = "… do konca pliku).