Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]wyszukiwarka
Salur
post 18.04.2015, 19:19:32
Post #1





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Witam,
Czy moglby mi jakis kolega powiedziec lub rzucic kawalkiem kodu jak zrobic wyszukiwarke ktora bedzie wyszukiwala uzytkownika po nicku i wrzucala na strone edycji danego uzytkownika, edycja usera znajduje sie pod tym linkiem i id= to id uzytkownika.
localhost/?p=players&id=1

Ten post edytował Salur 18.04.2015, 19:24:03
Go to the top of the page
+Quote Post
tomek200
post 18.04.2015, 19:58:11
Post #2





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 28.12.2014

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


Pokaż strukturę tabeli. I czy masz coś zrobione w PHP?

Ten post edytował tomek200 18.04.2015, 20:00:13
Go to the top of the page
+Quote Post
Salur
post 18.04.2015, 20:07:07
Post #3





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


W tabelce user_data mam kolumny id, nick , email itd.
Co do skryptu to jeszcze nic nie napisalem.
Go to the top of the page
+Quote Post
tomek200
post 18.04.2015, 20:21:41
Post #4





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 28.12.2014

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


Jeśli dobrze zrozumiałem to masz coś takiego:
  1. $nick = $_GET['p'];
  2. $connect = new mysqli('localhost','user','haslo','baza');
  3.  
  4. $zapytanie = $connect->query("SELECT * FROM user_data WHERE nick='$nick'");
  5. $ile = $zapytanie->num_rows;
  6. if ($ile != 0) {
  7.  
  8. $wynik = $zapytanie->fetch_assoc();
  9.  
  10. echo $wynik['id'];
  11. echo $wynik['nick'];
  12. echo $wynik['email'];
  13. // etc.
  14. }else{
  15. echo 'Nie odnaleziono takiego gracza.';
  16. }
Go to the top of the page
+Quote Post
Salur
post 18.04.2015, 20:26:55
Post #5





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Tak tylko ja juz napisalem edycje usera w innym pliku tzn. players.php ten plik wyswietla liste uzytkownikow i po kliknieciu na uzytkownka wrzuca mnie na edycje tego usera, dodam ze wtedy znajduje go po id typu ?p=players&id=idgracza
I teraz chcialbym aby po wpisaniu nicku w wyszukiwarce wrzucalo mi na taki adres z odpowiednim id. Tzn. Localhost/?s=players&id=
Nie chce aby mi zwracalo wyniki lecz od razu wrzucalo na strone profilu.

Ten post edytował Salur 18.04.2015, 20:32:27
Go to the top of the page
+Quote Post
tomek200
post 18.04.2015, 20:36:31
Post #6





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 28.12.2014

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


  1. $nick = $_GET['p'];// To co user wpisze w wyszukiwarce
  2. $connect = new mysqli('localhost','user','haslo','baza');
  3.  
  4. $zapytanie = $connect->query("SELECT * FROM user_data WHERE nick='$nick'");
  5. $ile = $zapytanie->num_rows;
  6. if ($ile != 0) {
  7.  
  8. for ($i=0; $i < $ile; $i++) {
  9. $wynik = $zapytanie->fetch_assoc();
  10. header("Location: ?s=players&id=".$wynik['id']);// tak jak kolega poniżej bo wcześniej nie wiedziałem że chodzi ci o przekierowanie
  11. }
  12. }else{
  13. echo 'Nie odnaleziono takiego gracza.';
  14. }

Nadal nie wiem czy o to dokładnie ci chodziło

Ten post edytował tomek200 18.04.2015, 20:39:35
Go to the top of the page
+Quote Post
olszam
post 18.04.2015, 20:36:49
Post #7





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

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


header("Location: localhost?s=players&id=".$wynik['id']);

chyba najprościej jak komuś się nie chce męczyć smile.gif

Ten post edytował olszam 18.04.2015, 20:37:17
Go to the top of the page
+Quote Post
Salur
post 18.04.2015, 20:38:57
Post #8





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


No jeszcze nie o to wink.gif tzn jeden szczegol nie chce aby wyswietlalo mi link do profilu lecz od razu po kliknieciu wyszukaj wrzucalo na profil.
Go to the top of the page
+Quote Post
tomek200
post 18.04.2015, 20:42:05
Post #9





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 28.12.2014

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


No to dokładnie ten kod co powyżej. smile.gif
Go to the top of the page
+Quote Post
Salur
post 19.04.2015, 10:30:22
Post #10





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Ojj, to przepraszam dziekuje kolegom i oczywiscie plusiki sie naleza.

Ups, po małych modyfikacja skrypt po wpisaniu nicku wrzuca na adres : http://localhost/main.php&s=players?p=salur <--- tu powinno byc id a nie nick oraz zamiast p= to id=


Skrypt :

  1. <form action="main.php&s=players" method="GET">
  2. Szukaj gracza: <input type="text" name="p" />
  3. <input type="submit" value="Znajdź" />
  4. </form>
  5. <?php
  6. $nick = $_GET['p'];
  7.  
  8. $zapytanie = "SELECT * FROM user_data WHERE nick='$nick'";
  9. $ile = mysql_num_rows($zapytanie) or mysql_error();
  10. if ($ile != 0) {
  11.  
  12. for ($i=0; $i < $ile; $i++) {
  13. $wynik = mysql_fetch_assoc($zapytanie);
  14. echo header("Location: ?s=players&id=".$wynik['id']);
  15. }
  16. }else{
  17. echo 'Nie odnaleziono takiego gracza.';
  18. }
  19. ?>


ref

Ten post edytował Salur 18.04.2015, 21:26:00
Go to the top of the page
+Quote Post
tomek200
post 19.04.2015, 15:19:04
Post #11





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 28.12.2014

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


Na pierwszy rzut oka to w formularzu w parametrze action masz znak "&" a powinno być "?" wytwarza to błąd bo w dalszej części skryptu dubluje się znak "&".
I przed header nie dawaj echo.
PS. Zapoznaj się z klasą mysqli lub biblioteką PDO bo funkcja mysql to trup.

Ten post edytował tomek200 19.04.2015, 15:22:39
Go to the top of the page
+Quote Post
Salur
post 19.04.2015, 15:41:18
Post #12





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Edytowałem skrypt na taki i nadal po kliknieciu znajdz wrzuca na adres: http://localhost/main.php?p=Serverek a powinno na http://localhost/main.php?s=editUser&id=2
Dodatkowo nick powinno zamieniać na ID.
  1. <form action="main.php?s=editUser" method="GET">
  2. Szukaj gracza: <input type="text" name="p" />
  3. <input type="submit" value="Znajdź" />
  4. </form>
  5. <?php
  6. $nick = $_GET['p'];
  7.  
  8. $zapytanie = "SELECT * FROM user_data WHERE nick='$nick'";
  9. $ile = mysql_num_rows($zapytanie) or mysql_error();
  10. if ($ile != 0) {
  11.  
  12. for ($i=0; $i < $ile; $i++) {
  13. $wynik = mysql_fetch_assoc($zapytanie);
  14. header("Location: ?s=editUser&id=".$wynik['id']);
  15. }
  16. }else{
  17. echo 'Nie odnaleziono takiego gracza.';
  18. }


Ten post edytował Salur 19.04.2015, 15:42:09
Go to the top of the page
+Quote Post
tomek200
post 19.04.2015, 15:45:07
Post #13





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 28.12.2014

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


A czy to jest jedyny skrypt php w tym pliku?
Go to the top of the page
+Quote Post
Salur
post 19.04.2015, 15:55:58
Post #14





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


To jest cały plik w którym znajduje się wyszukiwarka:
http://wklej.org/id/1691801/
Go to the top of the page
+Quote Post
tomek200
post 19.04.2015, 16:10:26
Post #15





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 28.12.2014

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


php:
  1. <?php
  2. if(isset($_GET['s'])){
  3. if($_GET['s'] == 'editUser'){
  4. $nick = $_GET['p'];
  5.  
  6. $zapytanie = "SELECT * FROM user_data WHERE nick='$nick'";
  7. $ile = mysql_num_rows($zapytanie) or mysql_error();
  8. if ($ile != 0) {
  9.  
  10. for ($i=0; $i < $ile; $i++) {
  11. $wynik = mysql_fetch_assoc($zapytanie);
  12. header("Location: ?s=editUser&id=".$wynik['id']);
  13. }
  14. }else{
  15. echo 'Nie odnaleziono takiego gracza.';
  16. }
  17. }
  18. }
  19. ?>

I formularz:
  1. <form action="main.php" method="GET">
  2. <input type="hidden" name="s" value="editUser" />
  3. Szukaj gracza: <input type="text" name="p" />
  4. <input type="submit" value="Znajdź" />
  5. </form>


Ten post edytował tomek200 19.04.2015, 16:13:40
Go to the top of the page
+Quote Post
Salur
post 19.04.2015, 16:29:01
Post #16





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Teraz zwraca mi taki link: http://localhost/main.php?s=editUser&p=Serwerek

Zamista Serwerek powinno być id, i zamiast p=Serwerek to id= IDSerwerka, przez co nie znajduje gracza i wypluwa:

  1.  
  2. Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\WebServ\httpd\pages\editUser.php on line 30
  3.  
  4. Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\WebServ\httpd\pages\editUser.php on line 31


Ten post edytował Salur 19.04.2015, 16:30:59
Go to the top of the page
+Quote Post
tomek200
post 19.04.2015, 16:37:44
Post #17





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 28.12.2014

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


Pokaż tą linijkę.
Go to the top of the page
+Quote Post
Salur
post 19.04.2015, 16:40:02
Post #18





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Oto cały kod:
http://wklej.org/id/1691833/
Go to the top of the page
+Quote Post
tomek200
post 19.04.2015, 16:44:13
Post #19





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 28.12.2014

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


Ale błąd jest w pliku editUser.php a nie w main.php
Go to the top of the page
+Quote Post
Salur
post 19.04.2015, 16:45:45
Post #20





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


To linijki 27-31:

  1. $kto = $_GET['id'];
  2. $sql = "SELECT * FROM user_data WHERE user_id = ".$kto;
  3. $query = mysql_query($sql) or mysql_error();
  4. $u = mysql_fetch_array($query);
  5. $gildia = mysql_fetch_array(mysql_query("SELECT name FROM guilds WHERE guild_id = " . $u["guild_id"] . " LIMIT 1"));


Ten post edytował Salur 19.04.2015, 16:50:12
Go to the top of the page
+Quote Post

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: 28.04.2024 - 11:40