Salur
18.04.2015, 19:19:32
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
tomek200
18.04.2015, 19:58:11
Pokaż strukturę tabeli. I czy masz coś zrobione w PHP?
Salur
18.04.2015, 20:07:07
W tabelce user_data mam kolumny id, nick , email itd.
Co do skryptu to jeszcze nic nie napisalem.
tomek200
18.04.2015, 20:21:41
Jeśli dobrze zrozumiałem to masz coś takiego:
$nick = $_GET['p'];
$connect = new mysqli('localhost','user','haslo','baza');
$zapytanie = $connect->query("SELECT * FROM user_data WHERE nick='$nick'");
$ile = $zapytanie->num_rows;
if ($ile != 0) {
$wynik = $zapytanie->fetch_assoc();
// etc.
}else{
echo 'Nie odnaleziono takiego gracza.'; }
Salur
18.04.2015, 20:26:55
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.
tomek200
18.04.2015, 20:36:31
$nick = $_GET['p'];// To co user wpisze w wyszukiwarce
$connect = new mysqli('localhost','user','haslo','baza');
$zapytanie = $connect->query("SELECT * FROM user_data WHERE nick='$nick'");
$ile = $zapytanie->num_rows;
if ($ile != 0) {
for ($i=0; $i < $ile; $i++) {
$wynik = $zapytanie->fetch_assoc();
header("Location: ?s=players&id=".$wynik['id']);// tak jak kolega poniżej bo wcześniej nie wiedziałem że chodzi ci o przekierowanie }
}else{
echo 'Nie odnaleziono takiego gracza.'; }
Nadal nie wiem czy o to dokładnie ci chodziło
olszam
18.04.2015, 20:36:49
header("Location: localhost?s=players&id=".$wynik['id']);
chyba najprościej jak komuś się nie chce męczyć
Salur
18.04.2015, 20:38:57
No jeszcze nie o to

tzn jeden szczegol nie chce aby wyswietlalo mi link do profilu lecz od razu po kliknieciu wyszukaj wrzucalo na profil.
tomek200
18.04.2015, 20:42:05
No to dokładnie ten kod co powyżej.
Salur
19.04.2015, 10:30:22
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 :
<form action="main.php&s=players" method="GET">
Szukaj gracza: <input type="text" name="p" />
<input type="submit" value="Znajdź" />
</form>
<?php
$nick = $_GET['p'];
$zapytanie = "SELECT * FROM user_data WHERE nick='$nick'";
if ($ile != 0) {
for ($i=0; $i < $ile; $i++) {
echo header("Location: ?s=players&id=".$wynik['id']); }
}else{
echo 'Nie odnaleziono takiego gracza.'; }
?>
ref
tomek200
19.04.2015, 15:19:04
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.
Salur
19.04.2015, 15:41:18
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=2Dodatkowo nick powinno zamieniać na ID.
<form action="main.php?s=editUser" method="GET">
Szukaj gracza: <input type="text" name="p" />
<input type="submit" value="Znajdź" />
</form>
<?php
$nick = $_GET['p'];
$zapytanie = "SELECT * FROM user_data WHERE nick='$nick'";
if ($ile != 0) {
for ($i=0; $i < $ile; $i++) {
header("Location: ?s=editUser&id=".$wynik['id']); }
}else{
echo 'Nie odnaleziono takiego gracza.'; }
tomek200
19.04.2015, 15:45:07
A czy to jest jedyny skrypt php w tym pliku?
Salur
19.04.2015, 15:55:58
To jest cały plik w którym znajduje się wyszukiwarka:
http://wklej.org/id/1691801/
tomek200
19.04.2015, 16:10:26
php:
<?php
if($_GET['s'] == 'editUser'){
$nick = $_GET['p'];
$zapytanie = "SELECT * FROM user_data WHERE nick='$nick'";
if ($ile != 0) {
for ($i=0; $i < $ile; $i++) {
header("Location: ?s=editUser&id=".$wynik['id']); }
}else{
echo 'Nie odnaleziono takiego gracza.'; }
}
}
?>
I formularz:
<form action="main.php" method="GET"> <input type="hidden" name="s" value="editUser" /> Szukaj gracza:
<input type="text" name="p" /> <input type="submit" value="Znajdź" />
Salur
19.04.2015, 16:29:01
Teraz zwraca mi taki link:
http://localhost/main.php?s=editUser&p=SerwerekZamista Serwerek powinno być id, i zamiast p=Serwerek to id= IDSerwerka, przez co nie znajduje gracza i wypluwa:
Warning
: mysql_fetch_array() expects parameter 1 to be resource
, boolean given in D
:\WebServ\httpd\pages\editUser
.php on line 30
Warning
: mysql_fetch_array() expects parameter
1 to be resource
, boolean given in D
:\WebServ\httpd\pages\editUser
.php on line
31
tomek200
19.04.2015, 16:37:44
Pokaż tą linijkę.
Salur
19.04.2015, 16:40:02
tomek200
19.04.2015, 16:44:13
Ale błąd jest w pliku editUser.php a nie w main.php
Salur
19.04.2015, 16:45:45
To linijki 27-31:
$kto = $_GET['id'];
$sql = "SELECT * FROM user_data WHERE user_id = ".$kto;
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.