Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z wyciagnieciem danych [mysql]
Forum PHP.pl > Forum > Przedszkole
Roguś
  1. $query = mysql_query("SELECT * FROM slowa WHERE '$szukaj' LIKE '$wpis'") OR die ('blad seleck');


Niby banalne ale nie chodzi :/ wpisuje w formularzu wyraz i chce wyszukać w jakiejś tabeli
barat
WHERE '$szukaj' LIKE '$wpis'

Tego nie rozumiem... które z tych dwóch jest nazwą kolumny? Oba chyba nie mogą być zmiennymi... w końcu szukasz w tabeli MySQL... to które jest nazwą kolumny musi być bez $ i bez ' ' ... chociaż ja początkujący jestem i mogę się mylić ...
Roguś
Mam przykłady :
  1. SELECT * FROM users WHERE login = coś

To jest na sztywnego. A ja chce mam 2 pola, gdzie przeszukuje mi baze na 2 sposoby. Wpisuje wyraz i szuka mi go w użytkonikach lub (opcja select) w innych wyrazach. np
  1. SELECT * FROM wyrazy WHERE jakis = coś
PanGuzol
Niedziała to znaczy nic nie znajduje czy masz jaki8ś error??

Jesli nic nie znajduje to spróbuj

  1. SELECT * FROM slowa WHERE '$szukaj' LIKE %'$wpis'%;


ale jeśli skopiowałeś to bezpośrednio z kodu to zapomniałeś średnika na końcu zapytania SQL
Roguś
Jak spróbowałem zrobić tak jak ty masz to wyswietla mi blad select. Wczesniej jak ja robiłem to wyswietlalo mi sie ok tylko nic nie znajdowało mimo ze było to w bazie
Swirek
  1. SELECT * FROM twojanazwabazychybaslowa WHERE nazwatabeli LIKE '%$wpis%'

aby uniknąć nieporozumień
  1. $query = mysql_query("SELECT * FROM slowa WHERE $szukaj LIKE '%$wpis%';");

ewentualnie mozesz dodac wedlug czego sortowac ale to napewno wiesz ORDER BY wedlugczegosortowac
jeśli $szukaj zawiera nazwe tabeli to ma byś $szukaj
Roguś
Wyskakuje blad select :/ Próbowałem znaleźć cos na necie w ksiazce przepisałem tak jak jest a i tak dupa ;/ Wyświetliłem obie zmienne by zobaczyc czy maja jakąś wartość = wszystko ok. Próbowałem na "sucho" Raz bez pola select czyli wpisałem po prostu WHERE login a dałem w 'inpucie ' ola (jest taki user) i tez mi nie znalazło. Dałem na odwrót, pole select a i bez inputa czyl WHERE $szukaj LIKE ola i też. Wniosek jest taki ze nie wyszukuje mi ze zmiennymi :/
Swirek
wpisałeś tę 2 linijke?
błąd select to znaczy ten or die?
a jeśli zrezygnujesz z or die to zadziała?
Roguś
Jak usunąłem or die :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\konto\admin\admin.php on line 36" title="Zobacz w manualu PHP" target="_manual
Bardzo dziwne. Pokazuje mi w środku kodu. Że :
  1. while ($row1 = mysql_fetch_array($query)) {
  2.  
  3. echo '<tr><td>';
  4. echo $row1['data'];
  5.  
  6. echo '</td><td>';
  7.  
  8. echo $row1['kategoria'];
  9. echo '</td><td>';
  10. [b][color="#000000"]echo $row1['login'];[/color][/b]
  11.  
  12. }

to w tej pogrubionej linijce jest coś zle :/ mam taki kod ze jeśli wszedłeś na zakładke to pokazuje wszystkie słow, gdy wybierzesz szukaj to zwróci wynik i ten kod while jest identyczny do tamtego tylko tam jest $row a tu $row1 . usunąłem ta linijke i nadal błąd :/ Usunąłem całe while no i wyswietliła sie strona ale oczywiscie bez danych.
Swirek
kolor wez w pojedyncze klamerki może pomoże wogóle używasz bbcode? niewiem
a na tym dole namieszałeś że i tak nie załapaem
o widze mike zaraz będzie po problemie smile.gif
Roguś
Ten kolor to mi sie wrzucił niechcaco to na forum tongue.gif Chodzi o to ze jak wyciołem całe while to było ok. A jak tylko kawałek to nic z tego nadal blad. Ten kod jest prawie identyczny do tego co wyrzuca WSZYSTKIE słowa. Tylko różni sie zapytaniem mysql i $row (tylko 1). Kod ktory wyswietla wszystko ma $row a kod ten co wyszukuje ma $row1
Swirek
$row['kategoria'] nie używaj klamerek nie jestem pewny czy to błąd ale nie powinno ich chyba tam być
ja zawsze pisze $row[kategoria]
Roguś
Zawsze dawałem i było ok smile.gif
mike
~Roguś problem nie leży w pętli. Kłopot zaczyna się zanim do niej wejdziesz i zaczniesz się w niej poruszać.Zwróć uwagę na błąd:
Cytat
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\konto\admin\admin.php on line 36
To oznacza że to co dostała funkcja mysql_fetch_array() było już błędne.Wniosek: to co zwróciła funkcja mysql_query() jest błędne bądź (to ważne!) zapytanie zwróciło 0 wyników.Żeby sprawdzić co się stało wyświetl to co zwraca mysql_error" title="Zobacz w manualu PHP" target="_manualoraz sprawdź ile wyników masz w rezultacie wykonania zapytania (mysql_ num_ rows" title="Zobacz w manualu PHP" target="_manual).Sprawdź to oczywiście zanim wejdziesz do pętli (zanim wykonasz mysql_ fetch_ array" title="Zobacz w manualu PHP" target="_manual).

--update--
P.S.
Pisanie $row[kategoria] to błąd. Zresztą zawsze używanie indeksów tekstowych w tablicach asocjacyjnych bez apostrofów bądź znaków cudzysłowu to błąd.Parser PHP działa tak: Natrafia na indeks kategoria, bierze go za stałą ponieważ nie jest zapisany jako string (nie ma " ani ') ale takiej stałej nie ma. Parser generuje Warning (albo Notice, nie pamiętam), ale ten błąd nie jest krytyczny więc skrypt jedzie dalej.Parser tworzy stałą której brakuje i nadaje jej wartość taką samą jak jej nazwa czyli mamy stałą kategoria o wartości kategoria. Teraz ma indeks i może znaleźć wartość w tablicy. Zwraca ją a, że wyświetlanie błędów masz wyłączone to wszystko gra.
Otóż nie. Takie błędy mogą spowolnić działanie skryptu o prawie 30%
Roguś
Wyrzuciło mi
Cytat
login
ola
Nieznana kolumna 'ola' w where clause

te 2 pierwsze to zmienne - ok . Ale on ma mi szukać rekordu a nie kolumny :/
mike
Cytat(Roguś @ 15.08.2007, 13:04:50 ) *
Ale on ma mi szukać rekordu a nie kolumny :/
no chłopie.
Przecież zapytanie robi dokładnie to co mu kazałeś, więc się nie dziw.

Szuka rekordów ale tak jak mu napisałeś: "Szukaj tych rekordów gdzie pole (kolumna) ola jest równa cośtam"
A Ty w tabeli nie masz pola ola

Wniosek: Zmienna $szukaj ma wartość ola, a nie powinna mieć bo nie ma takiego pola.
Swirek
I przy okazji się czegoś nauczyłem, żeby używać '' smile.gif
a chyba to co Ci wyrzuciło już daje to myślenia co może być nie tak
wcześniej jednak napisałeś
"Wyświetliłem obie zmienne by zobaczyc czy maja jakąś wartość = wszystko ok."
musze to tu dopisać
zmienna $szukaj której doczepiłem się w pierwszym poście w tym temacie tongue.gif
ide na obiad.
przy okazji wszystkiego najlepszego na nowej drodze życia Mike smile.gif

---
Dziękuję.
~mike
Roguś
Aha... nie wiem co zrobiłem ale chodzi tongue.gif Thx
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.