Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z częścią PHP do Jquery
Forum PHP.pl > Forum > Przedszkole
darkomen666
Mój problem zapewne jest co najmniej banalny ale po to jest chyba przedszkole.


Poniższy kod to część PHP do skryptu jquery obsługujący autouzupełnianie.
Nadmieniam, że jeśli zamiast części obsługującej zapytanie dam po prostu:
$dane = array();
$dane = array('aparat','motor','rower','samochód','telefon','telewizor');

autouzupełnianie działa ;/

preg_match() expects parameter 2 to be string, array given in D:\\(...)jq_urzadzenia.php on line 55 - czyli linii if(preg_match('/^'.$q.'/', $wartosc))

  1. <?
  2.  
  3. $q = $_GET['q'];
  4.  
  5. if(!$q) return;
  6.  
  7. if (!($conn = db_connect()))
  8. return false;
  9.  
  10. // zapytanie odwołuje się do jednej kolumny gdzie zapisane są wartości - ciąg liczb
  11.  
  12. if ($result = mysql_query("select xxx from yyy
  13. "));
  14.  
  15. $dane = array();
  16. while($row=mysql_fetch_array($result))
  17. {
  18. $dane[]=$row;
  19. }
  20.  
  21.  
  22. $i = 0;
  23. foreach ($dane as $id => $wartosc)
  24. {
  25.  
  26. if(preg_match('/^'.$q.'/', $wartosc)){
  27.  
  28. echo $wartosc.PHP_EOL;
  29.  
  30. $i++;
  31.  
  32. }
  33.  
  34. }
  35.  
  36. ?>


mam świadomość tego że problem jest najprawdopodobnie co najmniej banalny, ale i tak proszę o pomoc wstydnis.gif
nospor
po pierwsze: uzywaj bbcode!
po drugie: no przeciez ci komunikat napisal dosc wyraźnie, ze drugim parametrem dla preg_match ma byc string, a ty mu dajesz tablice.
darkomen666
"po pierwsze: uzywaj bbcode!"

jeśli chodzi o kodowanie to już poprawiłem smile.gif

"po drugie: no przeciez ci komunikat napisal dosc wyraźnie, ze drugim parametrem dla preg_match ma byc string, a ty mu dajesz tablice."

no i właśnie tu mam ten problem sciana.gif
co muszę zmienić w tym kodzie żeby drugi parametr był stringiem

i jeszcze jedno nie rozumiem właściwie bo testując
  1. $dane = array('aparat','motor','rower','samochód','telefon','telewizor');
poprzez wywołanie pojedyncze $dane[1], $dane[2] itd otrzymuję kolejne wartości
tak samo się dzieje w przypadku poniżej zaprezentowanym też otrzymuję kolejne wartości wyciągane z bazy

Będę naprawdę wdzięczny za pomoc
nospor
ech...
w pierwszym przypadku twoja tablica zawiera teksty. zas w drugim przypadku:
$dane[]=$row;
twoja tablica zawiera tablice. $row to jest tablica a nie tekst.
powinno byc: $dane[]=$row['xxx'];
gdzie 'xxx' pochodzi z tego: select xxx from yyy
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.