Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zapytaniem sql do bazy i wyświetleniem wynikoów
Forum PHP.pl > Forum > PHP
dzesi
Witam mam problem z dość duża aplikacja która pisze wraz z kolega w firmie , może ja już nie widzę błędu bo za długo w tej aplikacji grzebie , ale jak na moje jest dobrze, chyba bo ja nieomylny to ja nie jestem Tylko cały czas nie wykonuje zapytania nawet errorów nic nie pokazuje
  1. <?php
  2. public function pobieranie_zapytania($polaczenie)
  3.  {
  4.  global $polaczenie;
  5.  
  6. $zapytanie_sql=$polaczenie->query("select * from `user` where ".$this->wyszukaj." like '%".$this->kategorie."%'");
  7.  // echo $polaczenie->error();
  8.  
  9.  
  10.  $ile_zapytan=$zapytanie_sql->num_rows;
  11.  echo " ilość znalezionych wyników :".$ile_zapytan;
  12.  }
  13.  public function wyswietlenie_wyniku()
  14.  {
  15.  
  16.  while($wynik=$zapytanie_sql->fetch_row())
  17.  {
  18.  echo " Wyniki wyszukiwania".$wynik['user'].'<br/>';
  19.  }
  20.  }
  21. ?>
[php][/php]
nospor
$zapytanie_sql - w roznych funkcjach sie do tego odwolujesz, ale przeciez ani to global, ani to wlasciwosc klasy. Krotko rzecz mowiac: ustawiasz to w jednej funkcji, ale druga juz tego nie widzi.
dzesi
Poprawiłem naspor ale nadal pokazuje mi błąd zapytania i jak dam $polaczenie->error() to i tak zdanych błędów nie pokazuje

Naspor a czy jest może inny sposób na to żeby w mysqli ani w pdo w funkcjach nie używać global ?
nospor
Cytat
ale nadal pokazuje mi błąd zapytania
to zamiast: die("błąd zapytania "); daj die(mysql_error()); smile.gif

Cytat
Naspor a czy jest może inny sposób na to żeby w mysqli ani w pdo w funkcjach nie używać global ?
Oczywiscie, w tym przypadku muisz z
global $zapytanie_sql; zrobic wlasciowosc klasy. Globale są BLE.

pozatym nospor a nie naspor
dzesi
Teraz to w ogóle pusta kartka , ani błędów i zdanego wyniku szukania nie pokazuje
nospor
@JoeTheWinner nie wcinaj sie ludziom w tematy.
@dzesi to moze zamiast mysql_error() daj $polaczenie->jakiserror. Nie wiem co to jest te twoje $polaczenie.
Skoro $polaczenie->query() nic ci nie zwraca to pewnie jest jakis blad, wiec go wydobądź. Troche wlasnej inicjatywy byloby naprawde mile widziane smile.gif

edit down: to, ze w obu kodach jest "while" to nie znaczy ze problem jest ten sam
nospor
skoro $połączenie to wlasciwosc klasy to masz sie do niej dobierac nie przez global a przez $this->polaczenie

i skoro jest to obiekt mysqli to nie mysql_error() a .... zobacz w manualu. Prosilem bys sie wykazal wlasna inicjatywa smile.gif
dzesi
Witam ponownie teraz mam dość dziwny problem otóż jak w phpmyadmin daje zapytanie ,mam bazę i w niej tabele i przy zapytaniu odwołuje sie do jednej z tabeli ale dostaje błąd Unknown column 'xxx' in 'where clause'
tak samo jest przy zapytaniu z php
  1. <?php
  2. $this->zapytanie_sql=$this->polaczenie->query("select * from `user` where ".$this->wyszukaj."")
  3. or die($this->polaczenie->error);
  4.  
  5.  
  6.  $this->ile_zapytan=$this->zapytanie_sql->num_rows;
  7.  echo " ile wyników :".$this->ile_zapytan;
  8.  }
  9.  public function wyswietlenie_wyniku()
  10.  {
  11.  
  12.  while($wynik=$this->zapytanie_sql->fetch_row($this->zapytanie_sql))
  13.  {
  14.  echo " Wyniki wyszukiwania".$wynik[0].'<br/>';
  15.  }
  16.  }
  17. ?>

Może ktoś mi pokaże co robie zle ?, bo ten błąd mówi chyba ze nie ma takiej tabeli ani takiego wyniku , jak w bazie znajduje sie ta tabele a w niej te dane .I czy wyświetlenie wyników jest dobre ?.Bardzo dziękuje za pomoc
wlamywacz
  1. <?php
  2. $this->zapytanie_sql=$this->polaczenie->query("select * from `user` where ".$this->wyszukaj."")
  3. ?>


A do jakiej tabeli to ma szukać ? Co to $this->wyszukaj? My wróżki ?
dzesi
$this->wyszukaj jest to zmienna która odbiera dane z formularza tzn $this->wyszukaj=$_post....... i ta tabela istnieje w bazie sam nie wiem co jest zle może ktoś ma podobny problem ?
nospor
no a nie powinno byc tak:
  1. <?php
  2. $this->zapytanie_sql=$this->polaczenie->query("select * from `user` where polepoktorymszukasz='".$this->wyszukaj."'");
  3. ?>

?
dzesi
A czy jest jakaś metoda w mysql żeby nie wybierać danych z jakiegoś pola w tabeli tylko zeby przeszukał wszystkie pola ?
nospor
Nie ma.
wlamywacz
Cytat
$this->wyszukaj jest to zmienna która odbiera dane z formularza tzn $this->wyszukaj=$_post....... i ta tabela istnieje w bazie sam nie wiem co jest zle może ktoś ma podobny problem ?


Filtruj te zmienne gdyż w innym wypadku grozi Ci SQL injection
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.