Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Coś nie tak z zapytaniem
Forum PHP.pl > Forum > Przedszkole
djair
witam...mam maly problem....a mianowicie jest sobie formularz w ktorym sa 2 pola do wpisania i na podstawie wpisanych danych chce wyszukac dane z bazy...podaje kod...prosze o wskaznie w ktorym miejscu mam blad.

  1. <?php
  2.  
  3.  $numer=$HTTP_POST_VARS['n1'];
  4. $numer2=$HTTP_POST_VARS['n2'];
  5.  
  6. $zapytanie = "select * from wodomierze where wodomierze.numer like '%".$numer."%' and wodomierze.numer like '%".$numer2."%'";
  7.  
  8. ?>



jak wpisze jeden to wyswietla dobrze ale w przypadku dwoch wyswietla zero...
nospor
bo ty daleś and na jedno pole . jesli to pole zawiera jakis numer i jednoczesnie to pole zawiera inny numer. Tak ma byc? Najwyerazniej to pole nie zawiera jednoczenie dwoch numerow. moze chiales uzyc or ?
krzyszbi
witam

  1. <?php
  2.  
  3.  $numer=$HTTP_POST_VARS['n1'];
  4. $numer2=$HTTP_POST_VARS['n2'];
  5.  
  6. $zapytanie = "select * from wodomierze where wodomierze.numer like '%".$numer."%' OR wodomierze.numer like '%".$numer2."%'";
  7.  
  8. ?>

pewnie o to chodziło
powinno śmigać
i poczytaj sobie o operatorach logicznych ( nie zaszkodzi a może pomóc) >> tutaj <<
djair
thx...ale gafe strzelilem;)) za duzo przed kompem chyba czasu spedzam ...pozdro:)


Mam jeszcze jedno pytanie....chce zrobi tak ze jezeli uzytkownik wpisze tylko jeden numer (a drugie pole zostawi wolne) to wtedy wykonuje sie zapytanie 1 a jezeli wpisze dwa numer(wypelni dwa pola w formularzu) wykonuje sie zapytanie o 2...

  1. <?
  2. if (isset($HTTP_POST_VARS['n1']) && isset($HTTP_POST_VARS['n2']))
  3. {
  4. $numer=$HTTP_POST_VARS['n1'];
  5. $numer2=$HTTP_POST_VARS['n2'];
  6.  
  7. $zapytanie = "select * from wodomierze where wodomierze.numer like '%".$numer."%' or wodomierze.numer like '%".$numer2."%'";
  8. include('wyniki.php');
  9. }
  10.  
  11. else
  12.  
  13. {
  14. $numer=$HTTP_POST_VARS['n1'];
  15. if (!$numer)
  16. {
  17.  echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  18. echo '<p align="center"><a href="wyszukaj.php"><b>Wyszukaj Ponownie</b>';
  19.  exit;
  20. }
  21.  
  22. $zapytanie = "select * from wodomierze where wodomierze.numer like '%".$numer."%'";
  23. include('wyniki.php');}
  24.  
  25. ?>


dziala dla dwocha ale dla jednego wyswietla cala tabele z bazy sad.gif
nospor
  1. <?php
  2.  
  3. $where = array();
  4. if (!empty($_POST['n1'])) $where[] = "wodomierze.numer like '%".$_POST['n1']."%'";
  5. if (!empty($_POST['n2'])) $where[] = "wodomierze.numer like '%".$_POST['n2']."%'";
  6.  
  7. $sql = 'select * from wodomierze ';
  8. if (!empty($where))
  9. $sql.=implode(' or ', $where);
  10.  
  11. ?>
smile.gif
krzyszbi
witam
pewnie chciałeś coś takiego osiągnąć
  1. <?
  2. if (!empty($_POST_['n1']) && !empty($_POST['n2']))
  3. {
  4. $zapytanie = "select * from wodomierze where wodomierze.numer like '%".$_POST['n1']."%' or wodomierze.numer like '%".$_POST['n2']."%'";
  5. }
  6.  
  7. elseif (!empty($_POST_['n1'])
  8. {
  9. $zapytanie = "select * from wodomierze where wodomierze.numer like '%".$_POST['n1']."%'";
  10. }
  11. else
  12. {
  13. {
  14.  echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  15. echo '<p align="center"><a href="wyszukaj.php"><b>Wyszukaj Ponownie</b>';
  16.  exit;
  17. }
  18. }
  19. include('wyniki.php');}
  20. ?>

narazie
sposób ~nospor-a jest lepszy (przyznaje) bo jest bardzo elastyczny w rozbudowie/przebudowie
djair
ok...ladnie mi wyswietla nawet 10 roznych (czyli 30 wierszy bo z kazdego numeru sa 3 pomiary) ale teraz chcialbym z tego stworzyc RTF (wczesniej robilem to w taki sposob ze zapisywalem wynik do zmiennej sesji a pozniej korzystalem z szablonu stworzonego w rtf i podmieniaem dane) ...problem w tym jak zrobi zeby mi te wartosci zapisal do sesji

  1. <?php
  2. $wynik = mysql_query($zapytanie);
  3. $ile_znalezionych = mysql_num_rows($wynik);
  4.  
  5.  echo '<p>Ilość znalezionych pozycji: '.$ile_znalezionych.'</p>';
  6.  
  7.  echo' <table border = 1 width = 100% cellspacing =0>';
  8.  echo' <th bgcolor="#cccccc"><font size="2pt" color="navy">L.p.</th>';
  9.  echo' <th bgcolor="#cccccc"><font size="2pt" color="navy">Producent<br>typ<br>numer</font></th>';
  10.  echo' <th bgcolor="#cccccc"><font size="2pt" color="navy">Natężenie przepływu</font></th><th bgcolor="#cccccc"><font size="2pt" color="navy">Wskaz. wodom. pocz.</font></th>';
  11.  echo' <th bgcolor="#cccccc"><font size="2pt" color="navy">Wskaz. wodom. kon.</font></th><th bgcolor="#cccccc"><font size="2pt" color="navy">Wskaz. wodow. kon. H</font></th><th bgcolor="#cccccc"><font size="2pt" color="navy">Cisn. inst. MPa</font></th><th bgcolor="#cccccc"><font size="2pt" color="navy">Temp. pocz.</font></th>';
  12.  echo' <th bgcolor="#cccccc"><font size="2pt" color="navy">Temp. kon.</font></th><th bgcolor="#cccccc"><font size="2pt" color="navy">Czas pomiaru</font></th><th bgcolor="#cccccc"><font size="2pt" color="navy">Temp. średnia</font></th>';
  13.  echo' <th bgcolor="#cccccc"><font size="2pt" color="navy">Objetosc nominalna</th><th bgcolor="#cccccc"><font size="2pt" color="navy">Objetosc poprawna</font></th><th bgcolor="#cccccc"><font size="2pt" color="navy">Strumien obj.</font></th><th bgcolor="#cccccc"><font size="2pt" color="navy">Data</font></th><th bgcolor="#cccccc"><font size="2pt" color="navy">Błąd względny</font></th>';
  14.  echo' </tr>';
  15. for ($i=0; $i <$ile_znalezionych; $i++)
  16. {
  17.  $wiersz = mysql_fetch_array($wynik);
  18.  
  19.  <th bgcolor="#FFFFFF"><font size="2pt">'.($i+1).'
  20.  <th bgcolor="#FFFFFF"><font size="2pt">'.$wiersz['producent'].'<br>'.$wiersz['typ'].'<br>'.$wiersz['numer'].'
  21.  <th bgcolor="#FFFFFF"><font size="2pt">'.$wiersz['nat_przep_q'].'
  22.  <th bgcolor="#FFFFFF"><font size="2pt">'.$wiersz['ws_p_wod'].'
  23.  <th bgcolor="#FFFFFF"><font size="2pt">'.$wiersz['ws_k_wod'].'
  24.  <th bgcolor="#FFFFFF"><font size="2pt">'.$wiersz['ws_wod_k'].'
  25.  <th bgcolor="#FFFFFF"><font size="2pt">'.$wiersz['cisn'].'
  26.  <th bgcolor="#FFFFFF"><font size="2pt">'.$wiersz['temp_p'].'
  27.  <th bgcolor="#FFFFFF"><font size="2pt">'.$wiersz['temp_k'].'
  28.  <th bgcolor="#FFFFFF"><font size="2pt">'.$wiersz['czas_pom'].'
  29.  <th bgcolor="#FFFFFF"><font size="2pt">'.$wiersz['temp_s'].'
  30.  <th bgcolor="#FFFFFF"><font size="2pt">'.$wiersz['obj_nomi'].'
  31.  <th bgcolor="#FFFFFF"><font size="2pt">'.$wiersz['obj_pop_wz'].'
  32.  <th bgcolor="#FFFFFF"><font size="2pt">'.number_format($wiersz['str_obj'],2).'
  33. <th bgcolor="#FFFFFF"><font size="2pt">'.$wiersz['data'].'
  34.  <th bgcolor="#FFFF00"><font size="2pt">'.number_format($wiersz['blad_wz'],2). '
  35.  </th></font></tr>'; } ?>


prosze o pomoc
kszychu
Na końcu pętli for dajesz $_SESSION[$i++] = $wiersz;
A, i przed pętlą zdefiniuj $i = 0;
djair
Cytat
  Na końcu pętli for dajesz $_SESSION[$i++] = $wiersz;
A, i przed pętlą zdefiniuj $i = 0;


witam...w jaki sposob wyswietlic teraz wszystkie elementy zapisane w sesji ? wyswietlam i tylko elementy z ostatniej petli!!!
nospor
A w jakis posob ty je teraz wyswietlasz?
  1. <?php
  2.  
  3. foreach ($_SESSION as $i => $row){
  4. echo '<br />wiersz numer '.$i.':<br />';
  5. print_r($row);
  6. }
  7. ?>
djair
czesc...cos nie tak to chula...moze innaczej zapytam...potrzebuje stworzyc taki mechanizn poprzez ktory zadaje zapytanie z formularza, wyswietlaja mi sie wyniki z bazy, z ktorych generuje RTF(mam stworzony szablon) a nastepnie zapisuje do drugiej bazy...mozecie mi jakos pomoc exclamation.gif! ...pozdro
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.