Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Skrypt / wyszukiwarka numerów.
Forum PHP.pl > Forum > Przedszkole
zewoj
Witam, poszukuje takiego skryptu:
wyszukiwarka wyszukująca rekordy z bazy danych i jeśli taki numer by istniał to by zwracało że istnieje, jak nie, to nie.

Z góry dziękuje za odp/linki/tutki.
Mefiuu
toż to wystarczy przejechać funkcją mysql_query i sprawdzić


  1. if(mysql_num_rows($zapytanie)>0) {
  2. echo "jest to w bazie";
  3. }
  4. else {
  5. echo "niet";
  6. }


chyba, że źle zrozumiałem.
zewoj
Ja jestem praktycznie kompletnie zielony w MySQL/PHP.
Jak teraz stworzyć z tego taką wyszukiwarkę?

Z góry dziękuje za odpowiedzi i przepraszam za moją zieloność.
konole
Niesamowita strona
zewoj
Mam taki problem z tym związany.
Ta wyszukiwarka znajduje się w zaincludowanym pliku z index.php.
I w formularzu mam action="plik.php".
I mam pytanie czy wstawić skrypt tuż przed formularzem czy też w osobnym pliku?
sadistic_son
Wstaw go tam gdzie chcesz aby pojawiały się wyniki.
Cytat
Ta wyszukiwarka znajduje się w zaincludowanym pliku z index.php.
Chyba raczej "w zaincludowanym pliku do index.php".

Zresztą pokaż tutaj te skrypty. Generalnie tutaj gotowców się nie daje, nie odrabiamy prac domowych, zaliczeń tylko pomagamy zrozumieć. Ale może zrobimy wyjątek bo widać, że coś tam się starasz sam z siebie.
zewoj
  1. <?
  2.  
  3. $username = 'xxx';
  4. $password = 'xxx';
  5. $dbname = 'xxx';
  6.  
  7.  
  8. mysql_connect('mysql3.yoyo.pl',$username,$password);
  9. @mysql_select_db($dbname) or die("unable to connect to database");
  10.  
  11. $query="SELECT*FROM kody";
  12. $result=mysql_query($query);
  13. if (!is_resource($result)) {
  14. }
  15. $num=mysql_num_rows($result);
  16. echo "<b><center>Kody</center></b><br><br><br>";
  17. $i=0;
  18.  
  19. while ($i<$num){
  20.  
  21. $code=mysql_result($result,$i,'code');
  22.  
  23. echo "$code";
  24.  
  25. $i++;
  26.  
  27. }
  28. ?>


  1.  
  2. <form method="post" action="include/kod.php">
  3.  
  4. <tr>
  5. <td>Wpisz swój kod</td>
  6.  
  7. </tr>
  8.  
  9. <tr>
  10. <td>
  11. <input type="text" name="code" size="20">
  12.  
  13. </td>
  14.  
  15. </tr>
  16.  
  17. <tr>
  18. <td>
  19. <input type="submit" name="Submit" value="Szukaj>>">
  20.  
  21. </td>
  22.  
  23. </tr>
  24.  
  25. </form>
  26.  
  27.  



Aktualnie wyskakuje błąd

Warning: mysql_result() [function.mysql-result]: code not found in MySQL result index 5 in /adres/strony/include/kod.php on line 23
sadistic_son
Poniższy kod wklej sobie w htmla w miejscu gdzie mają się wyświetlać wyniki. Oczywiście plik musi mieć rozszerzeni php:
  1. <?
  2.  
  3. $username = 'xxx';
  4. $password = 'xxx';
  5. $dbname = 'xxx';
  6.  
  7.  
  8. mysql_connect('mysql3.yoyo.pl',$username,$password);
  9. @mysql_select_db($dbname) or die("unable to connect to database");
  10.  
  11. $query="SELECT * FROM kody";
  12. $result=mysql_query($query);
  13. if (!is_resource($result)) {
  14. }
  15. $num=mysql_num_rows($result);
  16. if($num>0){
  17. echo "<b><center>Kody</center></b><br><br><br>";
  18.  
  19. while ($code=mysql_fetch_array($result)){
  20.  
  21. echo $code['code'].'<br />';
  22.  
  23. }
  24. }else{ echo 'brak kodow!';}
  25. ?>

Z manuala:
Cytat
Przy pracy z dużymi wynikami, powinno się rozważyć użycie jednej z funkcji pobierających cały wiersz (patrz niżej). Jako, że funkcje te zwracają zawartość kilku komórek w jednym wywołaniu, są one ZNACZNIE szybsze niż mysql_result(). Podanie przesunięcia (offset) w argumencie pole jest znacznie szybsze niż podanie nazwy pola lub konstrukcji tabela.pole.

Zalecane wydajniejsze alternatywy: mysql_fetch_row(), mysql_fetch_array() i mysql_fetch_object().
zewoj
A co wstawić w action?
sadistic_son
A powiedz mi co to właściwie ma robić? User wpisuje jakiś tam kod. Następnie sprawdzasz czy ten wpisany kod istnieje w bazie i jeśli tak to go wyświetlasz a jeśli nie to nie? Dobrze rozumiem?
zewoj
User wpisuje kod, jeśli kod jest w bazie to wyświetla że jest dostępny.
sadistic_son
Nazwij sobie ten plik jak chcesz, byle by miał rozszerzenie php. Jeśłi nie kliknięto w submit i nie wpisano kodu to wyswietla sie sama tabelka z formularzem. Jelsli kliknieto i wpisano kod to go wyswietla nad tabelka, oczywiscie jesli istnieje w bazie.
  1. <?
  2. if(isset($_POST['submit']) && !empty($_POST['code'])){
  3. $username = 'xxx';
  4. $password = 'xxx';
  5. $dbname = 'xxx';
  6.  
  7. $code1=mysql_real_escape_string($_POST['code']);
  8. mysql_connect('mysql3.yoyo.pl',$username,$password);
  9. @mysql_select_db($dbname) or die("unable to connect to database");
  10.  
  11. $query="SELECT * FROM kody WHERE code='$code1' ";
  12. $result=mysql_query($query);
  13. if (!is_resource($result)) {
  14. }
  15. $num=mysql_num_rows($result);
  16. if($num>0){
  17. echo "<b><center>Kody</center></b><br><br><br>";
  18.  
  19. while ($code=mysql_fetch_array($result)){
  20.  
  21. echo 'Kod: '.$code['code'].' jest dostepny<br />';
  22.  
  23. }
  24. }else{ echo 'brak kodow!';}
  25. }
  26. ?><table>
  27.  
  28. <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  29.  
  30. <tr>
  31. <td>Wpisz swój kod</td>
  32.  
  33. </tr>
  34.  
  35. <tr>
  36. <td>
  37. <input type="text" name="code" size="20">
  38.  
  39. </td>
  40.  
  41. </tr>
  42.  
  43. <tr>
  44. <td>
  45. <input type="submit" name="Submit" value="Szukaj>>">
  46.  
  47. </td>
  48.  
  49. </tr>
  50.  
  51. </form>
  52.  
  53.  
  54. </table>
Masz tu mega-gotowca. Wiecej już sie nie da za Ciebie zrobić, w ogóle wiecej już sie nie da w tej sprawie zrobić. Jeśli nadal nie satysfakcjonuje Cie to rozwiązanie to polecam kliknąć TUTAJ albo napisać na forum w dziale Gotowe Rozwiązania.
zewoj
Dzięki za gotowca, jednak nie działa to.
Po prostu nic się nie dzieje.
sadistic_son
Wpisujesz poprawne dane do połączenia z bazą? Tabela w bazie nazywa się tak samo jak w kodzie? Kolumna nazywa się code? Masz w ogóle bazę danych? Plik ma rozszerzenie php? Jest w ogóle php na serwerze? Poza tym Submit jest z dużej litery a w kodzie w isset jest z małej. Nie wiem czy to robi różnicę ale zmień tak żeby było identycznie.
zewoj
Już wiem co było źle. Chyba pomogła zmiana na Sumbit z dużej.
Wyskoczyły błędy z mysql_real_escape_string czyli linijką

  1. $code1=mysql_real_escape_string($_POST['code']);


Wystarczyło zamienić kolejnością z mysql_connect.

Dzięki za cierpliwość.

Pozdrawiam
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.