Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd braku błędu [php]
Forum PHP.pl > Forum > PHP
Puciek
[php:1:ac4c405705]
<?
//usuwanie spacji i spawdzanie czy cokolwiek zostało
if (trim($pytanie) != "")
{

//usuwanie przecinków które tylko przeszkadzają
$pytanie = str_replace(",", "", $pytanie);

//rozbijanie przez spacje
$arr = explode(" ", $pytanie);

//pobieranie ilości elementów
$ilosc=sizeof($arr);

//ustawianie $ilości2 oraz $znaleziono na 0
$ilosc2="0";
$znaleziono="0";

//pętla sprawdzajaca wyszukiwania
while($ilosc>$ilosc2)
{
$zapytanie = "SELECT odp, obrazek FROM pytania WHERE 'slowo' LIKE '$arr[$ilosc2]%'";
$wykonaj = mysql_query($zapytanie);
$znaleziono = mysql_num_rows($wykonaj);
if($znaleziono=="0")
{
++$ilosc2;
}
else
{
$zapytanie = "SELECT odp, obrazek FROM pytania WHERE 'slowo' LIKE '$arr[$ilosc2]%'";
$wykonaj = mysql_query($zapytanie);
$odp = mysql_fetch_array($wykonaj);
$ilosc2=$ilosc;
}
}
//przed chwilą zakończyła się pentla.
//teraz sprawdzam czy cokolwiek znaleziono, jeśli nei to wyświetlam odpowiednią wiadomość
if($znaleziono=="0")
{
$odpowiedz="Z racji że jestem we wczesnej wersji produkcji to nie znam odpowiedzi na wszystkie pytania, napisz to pytanie mojemu <a href=mailto:pichus@poczta.fm>autorowi</a>, a za niedługo pojawi się odpowiednia łatka.";
$minka="powazny";
}
else
{
$odpowiedz="$odp[odp]";
$minka="$odp[obrazek]";
}
}
//jeżeli nie zosało...
else
{
$odpowiedz="A pisać umiesz ?";
$minka="pytajacy";
}
?>
[/php:1:ac4c405705]

Kiedy daje mu jakies słówko to on szuka tylko po pierwszej literze - dlaczego ?

KOD BAZY DANYCH:

Kod
CREATE TABLE `pytania` (   `slowo` char(20) default '0',   `odp` char(255) default '0',   `obrazek` char(40) default NULL ) TYPE=MyISAM;



INSERT INTO pytania (slowo, odp, obrazek) VALUES("stworzył", "Mojim wspaniałym twórcš oraz mentorem jest wielki Puciek", "zachwycony");

INSERT INTO pytania (slowo, odp, obrazek) VALUES("jeste?", "Jetsem PuciTokiem - inteligentnym botem który jes we wczesnej fazie programowania . Mojim wspaniałym twórcš jest <a href=mailto:pichus@poczta.fm>Puciek</a>.", "neutralny");
uboottd
w: WHERE 'slowo' LIKE '$arr[$ilosc2]%' jestes pewien ze wszystkie znaczki sa takie jak powinny ? Szczegolnie to wokol wyrazu slowo ?
Puciek
Tak.

Bład polega na tym że reagyuje tylko na litere s, znaczy że wyszukuje tylko jeżeli taka jest wpisana.
DeyV
wydrukuj to twoje $zapytanie, i wrzuć do phpmyadmin, a następnie męcz je tak długo, aż będzie działać poprawnie...
Puciek
Ale ono działa poprawnie, 2 godziny to ze Scannerem i nie znaleźliśmy błędu.
DeyV
macie jakiś serwer, gdzie by to mozna było udostępnić (znaczy pokazać) ?
lisu
[php:1:3813abb1e5]
<?

$ilosc2=0;
$znaleziono=0;
//zamien tak wszedzie

?>
[/php:1:3813abb1e5]
scanner
DeyV: http://www.rpwik.chorzow.pl/tmp/ tu jest działające.
uboottd
Ech, mam wam bardziej podpowiadac ?
Kod
SELECT odp, obrazek FROM pytania WHERE 'slowo' LIKE '$arr[$ilosc2]%'


dziala w nastepujacy sposob:
dla kazdego wiersza porownoje _string_ 'slowo' z wartoscia ktora jest wpisana w $arr[$ilosc2], i jesli poczatek jest zgodny to git.

A to chyba nie jest to o co chodzilo ?

powinno byc:
Kod
SELECT odp, obrazek FROM pytania WHERE slowo LIKE '$arr[$ilosc2]%'

[/code]
scanner
No taaa... nie zwróciłem uwagi, że tam jest ' a nie `
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.