Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Błąd wyszukiwarki
Forum PHP.pl > Forum > Przedszkole
NickOver
Siemka.
Mam mały problem.
Kod:
  1. if(isset($_POST['ok']))
  2. {
  3. $wh = array(); //inicjalizujemy tablicę z warunkami
  4.  
  5. if (!empty($_POST['nazwa'])) //jeśli podano imię
  6. $wh[] = "'nazwa' = '$_POST[nazwa]' ";
  7.  
  8. if (!empty($_POST['adres'])) //jeśli podano nazwisko
  9. $wh[] = "'adres' = '$_POST[adres]' ";
  10.  
  11. if (!empty($_POST['numer']))
  12. $wh[] = "'numer' = '$_POST[numer]' ";
  13.  
  14. if (!empty($_POST['mail'])) //jeśli podano nazwisko
  15. $wh[] = "'mail' = '$_POST[mail]' ";
  16.  
  17. if (!empty($_POST['zaint'])) //jeśli podano nazwisko
  18. $wh[] = "'zaint' = '$_POST[zaint]' ";
  19.  
  20. if (!empty($_POST['brand'])) //jeśli podano nazwisko
  21. $wh[] = "'brand' = '$_POST[brand]' ";
  22.  
  23. if (!empty($_POST['uwagi'])) //jeśli podano nazwisko
  24. $wh[] = "'uwagi' = '$_POST[uwagi]' ";
  25.  
  26. if (!empty($wh))
  27. $where = 'WHERE '.implode(' AND ', $wh);
  28. else
  29. $where = '';
  30.  
  31. //a teraz tworzymy nasze glowne zapytanie i łączymy je z naszymi warunkami
  32. $sql = 'SELECT * FROM `user` '.$where;
  33. echo $sql;
  34. $sqll = mysql_query("$sql");
  35. while($sqla = mysql_fetch_array($sqll));
  36. {
  37. echo ''.$sqla["nazwa"].'';
  38. }


W tej wersji nie wywala żadnych błędów.
Po prostu nic się nie dzieje.
mmmmmmm
Wywal linię nr 4
NickOver
Cytat(mmmmmmm @ 3.10.2014, 07:04:43 ) *
Wywal linię nr 4

Już dawno jej nie ma. Dałem starszą wersje kodu, potem edytowałem i dałbym sobię rękę uciąć że ją wywaliłem biggrin.gif
nospor
Masz blad bazy. Tyle czasu na forum to powinienes juz go sobie sam wyswietlac....

Temat: Jak poprawnie zada pytanie
Opanuj wkoncu te pare podstaw

edit: ok, blad masz. Ale jeszcze wyswietl jak wygląda przygotowane zapytanie. Wszystko to masz w linku

ps: co to za potworek:
  1. while($sqla = mysql_fetch_array($sqll));
  2.  
  3.  
  4. {
  5.  
  6. echo ''.$sqla["nazwa"].'';
  7.  
  8. }

Zajrzyj prosze do manuala... tam masz napisane jak ma wyglądac prawidlowo WHILE dla mysql_fetch_array...
NickOver
Teraz pętla wygląda tak:
  1. while($sqla = mysql_fetch_array($sqll)){
  2. }
  3. echo ''.$sqla["nazwa"].'';


Nadal nie wyświetla wyników. Korzystałem z tego: http://php.net/manual/en/function.mysql-fetch-array.php
nospor
facepalmxd.gif
mysql_error ma byc po mysql_query a nie w petli!
W petli masz wyswietlac wyniki... Po to dalem ci linka i odeslalem do manuala, bys popatrzyl na to a nie rzucil na szybko okiem :/

Poza tym poprawiles zapytanie czy nie? Bo jak nie to nadal masz blad. Mowilem ci, bys wywietlil jak wyglada wygenerowane zapytanie
NickOver
No właśnie w tym co patrzyłem wyswietlanie wyników było już po pętli. Najpierw sam dałem w pętli ale potem wywaliłem za nią.

Przecież jest zapytanie pokazujące jak wygląda zapytanie.
Linia 33.
Chyba ze chodzi Ci o to:
"SELECT * FROM `user` WHERE nazwa = 'asd' AND zaint = 'TAK' "

EDIT
Bład jaki wywala po przeniesieniu mysql_error poza pętle:
  1. Unknown column 'nazwa' in 'where clause'
nospor
No brawo. A twoja tabela ma kolumne NAZWA? Bo wg bazy nie.

Cytat
No właśnie w tym co patrzyłem wyswietlanie wyników było już po pętli.
Ke? W tym linku
http://php.net/manual/en/function.mysql-fetch-array.php
wyswietlanie wynikow zawsze JEST W PETLI
NickOver
  1. <?php
  2. mysql_connect("localhost", "mysql_user", "mysql_password") or
  3. die("Could not connect: " . mysql_error());
  4.  
  5. $result = mysql_query("SELECT id, name FROM mytable");
  6.  
  7. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  8. printf("ID: %s Name: %s", $row[0], $row[1]);
  9. }
  10.  
  11. ?>

Masz racje. Zasugerowałem się ostatnią linijką nie patrząc na cały kod.

Ok. Po prostu jestem debilem. Wpisałem złą nazwę bazy danych, stąd wszystkie błędy sciana.gif
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.