Skocz do zawartości

różnice w wynikach dla zapytania pomiędzy phpmyadminem a skrytpem opartym o adodb


mihauu

Rekomendowane odpowiedzi

witam.

Mam sobie tabelke ogloszenia_ogl. Jest tam kilka pól charakteryzujących produkt , kategorie w ktorej sie znajduje oraz aktywnosc. Poczatkowo pole akcept bylo set ('0','1') wszystko dzialalo pieknie na zapytanie :

SELECT COUNT(id) AS ile  FROM ogloszenia_ogl WHERE akcept='1' AND sciezka LIKE '%/$k%'

Liczylo wszystkie rekordy aktywne z kategorii i podkategorii $k.

Postanowilem wprowadzic 3 wartosc do komorki akcept.

Ustawilem ja SET('0','1','2'). W tym momencie wszystko sie posypalo. Zapytanie zaczelo zwracać rekordy niezależnie od pola akcept. Teraz zmieniłem poraz kolejny na int(2) - caly czas jest źle.

Baza jest wypelniona paroma rekordami wiec niespecjalnie wiem co zrobić, najchętniej bym ją skasował i zaczął od nowa, ale to raczej nie wchodzi w gre.

Co ciekawe jesli to zapytanie wkleje do phpmyadmina to dziala poprawnie , jednak w skrypcie w ogole nie bierze pod uwagę pola akcept, zupelnie jakby go nie bylo.

PHP Version 4.4.1

mysql Client API version 4.1.12

adodb 4.65

Spotkał się ktoś z czymś takim i wie jak to ugryźć ?

Z góry dzięki za pomoc.

Mocny link za złotówę!

Dodaj wpis do Katalogu Frets.pl PR3

Odnośnik do komentarza
Udostępnij na innych stronach

Samo zapytanie wydaje sie dobre chodź nie wiem po co ten slash przed zmienną 'k'?

slasz bo /1/2/3 = /katalog/podkatalog/podpodkatalog tak to mam w bazie.

a kawelek kodu wyglada tak:

if ($page != ""){
$zzz = $page * 10;	

} else {
$zzz=11;
$page=1;
}

$limit_min = $zzz - 10;
$limit_max = 10;

$i = 0;
$liczenie ="SELECT COUNT(id) AS ile  FROM ogloszenia_ogl WHERE akcept='1' AND sciezka LIKE '%/$k%'	";
$policz_ile2 = $db->Execute("$liczenie");
echo($liczenie."<br><br>");
if ($policz_ile2 === false) die ("nie moglem policzyc rekordow"); //
while (!$policz_ile2->EOF) {
$ile_zdjec = $policz_ile2->fields['ile']; 
// echo("$ile_ogloszen asdasd");
$policz_ile2->MoveNext();

} // while

najlepsze jest to jak potem wyswietlam te wyniki i kaze pytam where akcept='1' to on pokazuje mi wszystkie rekordy, i przy kazdym wyswietlam ile wynosi akcept to pokazuje 1.

jesli spytam sie :

where akcept='1'

to pokazuje cos innego niz

where akcept=1

PS a zawsze się śmiałem jak czytałem w książkach "... można uzyskać nieoczekiwane wyniki" :)

Mocny link za złotówę!

Dodaj wpis do Katalogu Frets.pl PR3

Odnośnik do komentarza
Udostępnij na innych stronach

ostatnio sie z tym meczylem. Ja stosuje cos takiego /mam funkcje do laczenia z baza, ale mozesz ja obejsc/

laczysz sie z baza ta funkcja:

function getSqlNumber($sqlQuery) {
$query=mysql_query($sqlQuery);
$result=mysql_num_rows($query);
mysql_free_result($query);
return $result;
}

to w Twoj plik php:

 $num_rows = getSqlNumber("SELECT * FROM kategorie WHERE akcept='1'");	
$num_rows2 = getSqlNumber("SELECT * FROM kategorie WHERE akcept='0'");

$num_rows i $num_rows2 zwracaja Ci ilosc wierszy z akceptem=1 lub 0

Chyba o to chodzilo?

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności