Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Wyszukiwanie i pola checkbox do jednego stringa
Forum PHP.pl > Forum > Przedszkole
dawhol
Problmem polega na tym ze ma do wybory kilk opcji za pomoca checkboxa i musze po przeslaniu formularza zebrac je do stringa w postac 0101.... problem w tym ze przy wyszukiwaniu potrzebuje jakiegos znaku uniwersalnego typu * ale jak go daje to i tak nie działa a nie mogę wykorzystac % bo symbolizuje on dowolny ciąg znaków ...

Korzystam z PHP 5
A ponizej KOD.
  1. $wyposazenie = ''; 
  2. $j=0; 
  3. for($p=1; $p <= 19; $p++) 
  4. if(isset($checkbox[$j]) && $checkbox[$j] == '1') {$wyposazenie = $wyposazenie.'1';} else {$wyposazenie = $wyposazenie.'*';} 
  5. $j++; 
  6. }
  7.  
  8.  $wh = array();
  9. if (isset($nazwa))
  10.  $wh[] = 'nazwa LIKE "'.$nazwa.'%"';
  11. if (isset($miasto) && $miasto != '')
  12.  $wh[] = 'miasto LIKE "'.$miasto.'%"';
  13.  if (isset($gwiazdki) && $gwiazdki != '*')
  14.  $wh[] = 'gwiazdki="'.$gwiazdki.'"';
  15.  if (isset($kat) && $kat != '0')
  16.  $wh[] = 'kategoria="'.$kat.'"';
  17.  if (isset($woj) && $woj != '*')
  18.  $wh[] = 'wojewodztwo="'.$woj.'"';
  19.  if (isset($wyposazenie) && $wyposazenie != '')
  20.  $wh[] = 'wyposazenie="'.$wyposazenie.'"';
  21.  
  22.  
  23. if (isset($wh))
  24.  $where = implode(' AND ', $wh);
  25. /* te kilka klas ponizej pochodzą z CMSa Joomla */
  26. $database->setQuery('SELECT * FROM hotel WHERE '.$where);
  27. $database->query(); 
  28. $rows = $database->loadObjectList();
  29.  
  30. echo ('<table width="450px" class="hoteletable">'); 
  31.  foreach ($rows as $row) { 
  32. ?>
  33. <tr> 
  34. <td><a href="<?php echo ($this->gallery_source.$row->nazwa.'/'.$row->zdjecie); ?>" rel="lightbox" title="<?php echo $row->nazwa; ?>" onfocus="blur()"></strong><img src="<?php echo $this->gallery_source.$row->nazwa.'/m_'.$row->zdjecie; ?>" title="<?php echo $row->nazwa; ?>" width="50" height="38" border="0"/></a></td><td><a href="index.php?option=com_hotele&hid=<?php echo $row->pk;?>"><?php echo $row->nazwa;?></a></td><td><?php if($row->kategoria == '1' OR $row->kategoria == '2'){echo('<img src="'.$star.'">');}?></td><td><?php echo $row->miasto;?></td> 
  35. </tr> 
  36. <?php
  37. };
nospor
Cytat
znaku uniwersalnego typu * ale jak go daje to i tak nie działa a nie mogę wykorzystac % bo symbolizuje on dowolny ciąg znaków ...

http://dev.mysql.com/doc/refman/5.0/en/str...l#operator_like
Kod
Character    Description
%    Matches any number of characters, even zero characters
_    Matches exactly one character


Swoja drogą osobiscie inaczej bym rozwiązal zapis czy jakiej wyposazenie jest czy go nie ma. Teraz walisz stringa z 0 i 1 przez co zajmuje on 19 bajtow. Jakbys zrobil to na 0 i 1 bitowych zajelo by to ci 3 bajty (typ UNSIGNED MEDIUM INT).
dawhol
Dzięki wielkie winksmiley.jpg
a co do innego zapisu to tez bym zrobil to inaczej ale ehh tak chciała osoba zamawiająca ten skrypt ... ;/
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.