Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL] Przeszukiwanie bazy danych. Wyciaganie ze zmiennej jej czesci.
Gallar
post 9.03.2009, 09:55:29
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 9.03.2009

Ostrzeżenie: (0%)
-----


Witam serdecznie.
Od dłuższego czasu głowie się stworzeniem wyszukiwarki.

Problem - który próbowałem ugryźć na kilkanaście sposobów - wygląda następująco:
Posiadam dwie bazy danych MySQL 'mieszkaniac5' i 'mieszkaniac6'.
W bazach interesują nas kolumny:
'bud' - przybiera wartości dla mieszkaniac5 1-2, dla mieszkaniac6 3-5;
'nr';
'pietro';
'pow_uzyt';
'taras';
'ogródek';
'ilosc_pokoi';
'price'

podejście numer 1:
index.html
  1. <?php [codebox]<html>
  2. <script typ="text/javascript" src="grid.js"></script>
  3. <link href="grid.css" type="text/css" rel="sytlesheet"/>
  4. </head>
  5. <body onlaod="init();">
  6. <align="center">
  7. <form action="grid.php" method="post">
  8. Cena:<br>
  9. Od: <input type="text" name="AA" /> do <input type="text" name="AB" />
  10. <br>
  11. Wielkość w m2:<br>
  12. Od: <input type="text" name="BA" /> do <input type="text" name="BB" />
  13. <br>
  14. Ilość pokoi:<br>
  15. Od: <input type="text" name="CA" /> do <input type="text" name="CB" />
  16. <br>
  17. Piętro:<br>
  18. Od: <input type="text" name="EA" /> do <input type="text" name="EB" />
  19. <br>
  20. Nr. mieszkania: <input type="text" name="FA" />
  21. <br>
  22. <br>
  23. <input type="submit" value="Szukaj!" />
  24. </form>
  25. </align>
  26. </body>
  27. </html>[/codebox]
  28. ?>

grid.php
  1. CODE
    <?php
  2. // program wyszukiwarki - grid.php
  3. // wyświetlenie nagłówka
  4. echo'<h2>Wyniki wyszukiwania</h2>';
  5. // usunięcie niepotrzebnych białych znaków
  6. $_post['AA']=trim($_post['AA']);
  7. $_post['AB']=trim($_post['AB']);
  8. $_post['BA']=trim($_post['BA']);
  9. $_post['BB']=trim($_post['BB']);
  10. $_post['CA']=trim($_post['CA']);
  11. $_post['CB']=trim($_post['CB']);
  12. $_post['EA']=trim($_post['EA']);
  13. $_post['EB']=trim($_post['EB']);
  14. $_post['F']=trim($_post['F']);
  15.  
  16. $AA = $_post['AA'];
  17. $AB = $_post['AB'];
  18. $BA = $_post['BA'];
  19. $BB = $_post['BB'];
  20. $CA = $_post['CA'];
  21. $CB = $_post['CB'];
  22. $EA = $_post['EA'];
  23. $EB = $_post['EB'];
  24. $F = $_post['F'];
  25.  
  26. require_once ('error_handler.php');
  27. require_once ('config.php');
  28. $mysqli=mysqli_connect ('xxx', 'xxx', 'xxx', 'xxx');
  29. $query="SELECT 'bud', 'nr', 'pietro', 'pow_uzyt', 'taras', 'ogrodek', 'ilosc_pokoi', 'price' FROM mieszkaniac5 WHERE pietro BETWEEN '{$EA}' AND '{$EB}' OR pow_uzyt BETWEEN '{$BA}' AND '{$BB}' OR ilosc_pokoi BETWEEN '{$CA}' AND '{$CB}' OR price BETWEEN '{$AA}' AND '{$AB}' OR nr='{$F}'" ;
  30. $results=$mysqli->query($query) or die( mysql_error ()) ;
  31. // ustalenie ilości wyszukanych obiektów
  32. if(empty($results))
  33. // jeśli nie, to wyświetl komunikat i zakończ działanie skryptu
  34. {
  35. die('Formularz wypełniony niepoprawnie! Nie można wyświetlić wyników wyszukiwania!');
  36. }
  37. // jeśli jednak dane są wpisane poprawnie
  38. else
  39. {
  40. $obAmount=mysql_num_rows($results); // TU WYSTĘPUJE BŁĄD
  41. // wyswietlenie iloœci wyszukanych obiektów
  42. echo'Znaleziono: '.$obAmount.'<br /><br />';
  43.  
  44. for($x=0;$x<$obAmount;$x++)
  45. {
  46. // przekształcenie danych na tablicę
  47. $row=mysql_fetch_assoc($results);
  48. // wyœwietlenie numeru identyfikacyjnego
  49. echo $x+1;
  50. echo '. ';
  51. // wyœwietlenie nazwy produktu
  52. echo $row['pr_name'];
  53. echo'<br />';
  54. }
  55. }
  56. // zamknięcie połączenia
  57. mysqli_close($mysqli);
  58. // koniec aplikacji
  59.  
  60. ?>


Niestety występuję błąd - jakby zmienne były permanentnie puste...
Pomijam w tym momencie problem dwóch tabel w bazie...

Podejście numer dwa:
index wygląda tak samo
za to w grid:
  1. CODE
    <?php
  2. // program wyszukiwarki - grid.php
  3. // wyświetlenie nagłówka
  4. echo'<h2>Wyniki wyszukiwania</h2>';
  5. // usunięcie niepotrzebnych białych znaków
  6. $_post['AA']=trim($_post['AA']);
  7. $_post['AB']=trim($_post['AB']);
  8. $_post['BA']=trim($_post['BA']);
  9. $_post['BB']=trim($_post['BB']);
  10. $_post['CA']=trim($_post['CA']);
  11. $_post['CB']=trim($_post['CB']);
  12. $_post['EA']=trim($_post['EA']);
  13. $_post['EB']=trim($_post['EB']);
  14. $_post['F']=trim($_post['F']);
  15.  
  16. $AA = $_post['AA'];
  17. $AB = $_post['AB'];
  18. $BA = $_post['BA'];
  19. $BB = $_post['BB'];
  20. $CA = $_post['CA'];
  21. $CB = $_post['CB'];
  22. $EA = $_post['EA'];
  23. $EB = $_post['EB'];
  24. $F = $_post['F'];
  25.  
  26. require_once ('error_handler.php');
  27. require_once ('config.php');
  28. $mysqli=mysqli_connect ('xxx', 'xxx', 'xxx', 'xxx');
  29. $query="SELECT 'bud', 'nr', 'pietro', 'pow_uzyt', 'taras', 'ogrodek', 'ilosc_pokoi', 'price' FROM mieszkaniac5 WHERE pietro BETWEEN '$EA' AND '$EB' OR pow_uzyt BETWEEN '$BA' AND '$BB' OR ilosc_pokoi BETWEEN '$CA' AND '$CB' OR price BETWEEN '$AA' AND '$AB' OR nr='$F'" ;
  30. $results=$mysqli->query($query) or die( mysql_error ()) ;
  31. // ustalenie ilości wyszukanych obiektów
  32. if(empty($results))
  33. // jeśli nie, to wyświetl komunikat i zakończ działanie skryptu
  34. {
  35. die('Formularz wypełniony niepoprawnie! Nie można wyświetlić wyników wyszukiwania!');
  36. }
  37. // jeśli jednak dane są wpisane poprawnie
  38. else
  39. {
  40. $obAmount=mysql_num_rows($results); // TU WYSTĘPUJE BŁĄD
  41. // wyswietlenie iloœci wyszukanych obiektów
  42. echo'Znaleziono: '.$obAmount.'<br /><br />';
  43.  
  44. for($x=0;$x<$obAmount;$x++)
  45. {
  46. // przekształcenie danych na tablicę
  47. $row=mysql_fetch_assoc($results);
  48. // wyœwietlenie numeru identyfikacyjnego
  49. echo $x+1;
  50. echo '. ';
  51. // wyœwietlenie nazwy produktu
  52. echo $row['pr_name'];
  53. echo'<br />';
  54. }
  55. }
  56. // zamknięcie połączenia
  57. mysqli_close($mysqli);
  58. // koniec aplikacji
  59.  
  60. ?>

Błąd ten sam
Następnie zamiast zmiennych próbowałem dać zmienne $post_('wartość') - również nici.

Następnie umieściłem wszystko w jednym pliku 'index.php'
błąd dalej się powtarzał.

Zastanawiałem się nad rozwiązaniem pobrania całych tabel i rozwiazania tego na zasdzie:
if (empty('AA'))
{ if (empty('AB'))
i tak dalej...
else
{ sprawdzenie pozostałych zmiennych

$zmienna_tablicy_mieszkaniac5 = $zmienna_tablicy_mieszkaniac5 - wszystkie pozycje, gdzie 'price' < wartości podanej w 'AA', ale szczerze przyznam, że po pierwsze wydaje mi się to strasznie pracochłonne, a po drugie nie wiem jak zmienić zawartość tej zmiennej...
Za szybką pomoc dziękuję. Na pytania chętnie odpowiem, choć mam nadzieję, że dość obrazowo opisałem problem...

Edit:
Zmiana quote na CODEBOX

Ten post edytował Gallar 9.03.2009, 10:43:36

--------------------
Jestem Misiem o Bardzo Małym Rozumku
i długie słowa sprawiają mi wielką trudność.
Alan Alexander Milne
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 01:37