Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Podstrona ID
patryk22
post 18.07.2011, 18:02:56
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 16.01.2011

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


Witam. Mam oto taki kod PHP:
  1. <?
  2. $user = 'user bazy';
  3. $password = '******';
  4. $database = 'moja nazwa bazy';
  5.  
  6. mysql_connect('host', $user, $password);
  7. @mysql_select_db($database) or die("Nie odnaleziono bazy danych");
  8. $query="SELECT * FROM gracze";
  9. $result=mysql_query($query);
  10.  
  11. $num=mysql_numrows($result);
  12.  
  13.  
  14. echo "<b><center>Struktura bazy danych:</center></b><br><br>";
  15.  
  16. $i=0;
  17. while ($i < $num) {
  18.  
  19. $first=mysql_result($result,$i,"first");
  20. $last=mysql_result($result,$i,"last");
  21. $club=mysql_result($result,$i,"club");
  22. $pozycja=mysql_result($result,$i,"pozycja");
  23. $data=mysql_result($result,$i,"data");
  24. $country=mysql_result($result,$i,"country");
  25. $ww=mysql_result($result,$i,"ww");
  26.  
  27. echo "<b>$first $last</b><br>Klub: $club<br>Pozycja: $pozycja<br>Data urodzenia: $data<br>Narodowość: $country<br>Wzrost / Waga: $ww<br><hr><br>";
  28.  
  29. $i++;
  30. }
  31.  
  32. ?>


Chciałbym do tego dołożyć podstrony. Chodzi mi o: mojastrona.pl/player.php?id=1,2,3,4,5,6 itp. Każdy gracz z osobna. W tym momencie mam 2 wpisy w tabeli 'gracze'.

Screen z tabeli bazy danych:
http://iv.pl/images/45340069649540872165.jpeg

Chodzi mi o wyświetlenie profilu gracza o id 1,2,3,4 i tak po kolei wink.gif

Bardzo proszę o pomoc i myślę, że rozumiecie ohno-smiley.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
pcuryllo
post 18.07.2011, 18:10:35
Post #2





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 22.10.2010

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


proponuje przekazać parametry ID poprzez metodę POST jako tablicę i wykonanie zapytania do bazy w pętli.

Go to the top of the page
+Quote Post
toaspzoo
post 18.07.2011, 18:13:47
Post #3





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

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


Cytat(pcuryllo @ 18.07.2011, 19:10:35 ) *
proponuje przekazać parametry ID poprzez metodę POST jako tablicę i wykonanie zapytania do bazy w pętli.



Lepiej przez GET
  1. $id = $_GET[id'];
  2.  
  3. SELECT * FROM `users` WHERE `id` = '$id';



--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
patryk22
post 18.07.2011, 18:52:15
Post #4





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 16.01.2011

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


Cytat(toaspzoo @ 18.07.2011, 19:13:47 ) *
Lepiej przez GET
  1. $id = $_GET[id'];
  2.  
  3. SELECT * FROM `users` WHERE `id` = '$id';


Za bardzo nie rozumiem. Wyciągnąłem wszystkie funkcje z bazy. Chyba że nie o to chodzi wstydnis.gif
Go to the top of the page
+Quote Post
peter13135
post 18.07.2011, 19:02:02
Post #5





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Nie wiem czy dobrze rozumiem, ale chyba chodzi Ci o takie zapytanie:
  1. SELECT * FROM users WHERE id IN(1,2,3,4,5,6)


jak masz tablicę typu
  1. array(1,2,3,4,5,6)
to możesz przerobić ją na string za pomocą
  1. array_implode(',', $tablica)


--------------------
:)
Go to the top of the page
+Quote Post
patryk22
post 18.07.2011, 19:03:53
Post #6





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 16.01.2011

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


Dopiero zaczynam przygodę z PHP, więc was nie rozumiem.. Może ktoś poda kod ? wstydnis.gif

Edit: Mam tu kod systemu newsów.. I jest zrobione że news może być wyświetlany osobno:
  1. <?
  2. // lacze sie z baza
  3. require('db_connect.php');
  4. // jesli wybrano jakis konkretny news
  5. if(intval($_GET['newsid']))
  6. {
  7. // powrot do wszystkich newsow (nazwa news.php jest oczywiscie dla przykladu)
  8. echo '<p><a href="news.php">Najnowsze newsy</a></p>';
  9.  
  10. // pobieram newsa
  11. $sql="SELECT DATE_FORMAT(dodano, '%e-%m-%Y %H:%i') AS utworzono, autor, tresc FROM newsy WHERE id='".intval($_GET['newsid'])."'";
  12. $query=mysql_query($sql);
  13. if($result=mysql_fetch_assoc($query))
  14. {
  15. // zawartosc newsa
  16. echo '<p>'.nl2br($result['tresc']).'</p>';
  17. // autor
  18. echo '<p><i>'.$result['autor'].' ('.$result['utworzono'].')</i></p>';
  19. // oddzielam od komentarzy
  20. echo '<hr>Komentarze:<br>';
  21.  
  22. // dopisuje komentarz do bazy
  23. if($_POST)
  24. {
  25. if((trim($_POST['autor'])) && (trim($_POST['tekst'])))
  26. {
  27. if(mysql_query("INSERT INTO komentarze VALUES('', '".intval($_GET['newsid'])."',
  28. NOW(), '".trim(htmlspecialchars($_POST['autor']))."', '".trim(htmlspecialchars($_POST['tekst']))."')"))
  29. echo 'Dodałem komentarz';
  30. else echo 'Nie mogłem dodać komentarza';
  31. }
  32. else echo 'Nie dopisałem komentarza - podaj swoje imię i wpisz jakiś komentarz!';
  33. echo '<br>';
  34. }
  35.  
  36. // pobieram komentarze do newsa od najstarszego do najnowszego
  37. $sql="SELECT DATE_FORMAT(dodano, '%e-%m-%Y %H:%i') AS utworzono, autor, tresc FROM komentarze WHERE id='".intval($_GET['newsid'])."'";
  38. $query=mysql_query($sql);
  39. while($result=mysql_fetch_assoc($query))
  40. {
  41. print('<p>'.nl2br($result['tresc']).' ('.$result['autor'].'/'.$result['utworzono'].')</p>');
  42. }
  43.  
  44. // formularz do dodawania komentarza
  45. ?>
  46. <hr>
  47. <form name="komentarz" method="post" action="news.php?newsid=<? echo intval($_GET['newsid']); ?>">
  48. Dodaj komentarz:<br>
  49. <textarea name="tekst" rows="5" cols="40"></textarea><br>
  50. Autor:<br>
  51. <input type="text" name="autor"><br>
  52. <input type="reset" value="wyczyść"> <input type="submit" value="wyslij">
  53. </form>
  54. <?
  55. }
  56. }
  57. // wszystkie newsy
  58. else
  59. {
  60. // pobieram newsy w kolejnosci od najnowszego do najstarszego
  61. // przy pomocy zlaczenia z drugiej tabeli wyciagam ilosc komentarzy dla każdego newsa
  62. $sql="SELECT newsy.id, DATE_FORMAT(newsy.dodano, '%e-%m-%Y %H:%i') AS utworzono,
  63. newsy.autor, newsy.tresc, COUNT(lp) AS il_kom
  64. FROM newsy
  65. LEFT JOIN komentarze ON (komentarze.id=newsy.id)
  66. GROUP BY newsy.id ORDER BY newsy.dodano DESC";
  67. $query=mysql_query($sql);
  68. while($result=mysql_fetch_assoc($query))
  69. {
  70. // zawartosc newsa
  71. echo '<p>'.nl2br($result['tresc']).'</p>';
  72. // autor
  73. echo '<p><i>'.$result['autor'].' ('.$result['utworzono'].')</i></p>';
  74. // ilosc komentarzy i link do nich
  75. echo '<p><a href="news.php?newsid='.$result['id'].'">Komentarze: ('.$result['il_kom'].')</a></p>';
  76. // oddzielam od pozostalych
  77. echo '<hr>';
  78. }
  79. }
  80. ?>


Ten post edytował patryk22 18.07.2011, 19:09:14
Go to the top of the page
+Quote Post
toaspzoo
post 18.07.2011, 19:09:38
Post #7





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

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


Cytat(patryk22 @ 18.07.2011, 20:03:53 ) *
Dopiero zaczynam przygodę z PHP, więc was nie rozumiem.. Może ktoś poda kod ? wstydnis.gif


Ty zaczynasz wojnę


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
patryk22
post 18.07.2011, 19:16:20
Post #8





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 16.01.2011

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


Na prawdę mi to potrzebne biggrin.gif Pomocy wink.gif
Go to the top of the page
+Quote Post
peter13135
post 18.07.2011, 19:24:42
Post #9





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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




w swoim skrypcie z pierwszego postu zamień tylko swoje zapytanie na :
  1. $query='SELECT * FROM gracze where id in(' . $_GET['idki'] . ')';//zabezpiecz to sobie


i odpalaj skrypt poprzez index.php?idki=1,3,5,7,9,10


--------------------
:)
Go to the top of the page
+Quote Post
patryk22
post 18.07.2011, 19:29:22
Post #10





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 16.01.2011

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


Cytat(peter13135 @ 18.07.2011, 20:24:42 ) *
w swoim skrypcie z pierwszego postu zamień tylko swoje zapytanie na :
  1. $query='SELECT * FROM gracze where id in(' . $_GET['idki'] . ')';//zabezpiecz to sobie


i odpalaj skrypt poprzez index.php?idki=1,3,5,7,9,10


Rozumiem.... A co z pozostałymi danymi ? Przecież pobrałem wszystkie tabele z 'gracze'. CHyba że ja jestem jakiś nierozumny wstydnis.gif


Dobra rozumiem biggrin.gif Podmieniłem, działa.. Lecz teraz na głównej wywala:
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/a1973396/public_html/plazeee.php on line 11

I co teraz haha.gif

Ten post edytował patryk22 18.07.2011, 19:38:28
Go to the top of the page
+Quote Post
peter13135
post 18.07.2011, 19:45:37
Post #11





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Za każdym razem będziesz się pytał o takie bzdety questionmark.gif
Masz taki błąd, bo zapytanie było nieprawdiłowe. daj echo mysql_error() to będziesz wiedział o co chodzi.
Dałem Ci tylko przykład, pokazałem jak możesz pobrać kilku userów znając ich ID. Teraz ty sam sobie to poskładaj tak jak chcesz. Domyślam się, że nie działa, bo albo nie ma parametru idki albo jest on błędny (w sensie, że nie są to liczby oddzielone przecinkami), daj pare ifów, jakieś sprawdzanie danych i będzie dobrze.


--------------------
:)
Go to the top of the page
+Quote Post
patryk22
post 18.07.2011, 19:48:34
Post #12





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 16.01.2011

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


Cytat(peter13135 @ 18.07.2011, 20:45:37 ) *
Za każdym razem będziesz się pytał o takie bzdety questionmark.gif
Masz taki błąd, bo zapytanie było nieprawdiłowe. daj echo mysql_error() to będziesz wiedział o co chodzi.
Dałem Ci tylko przykład, pokazałem jak możesz pobrać kilku userów znając ich ID. Teraz ty sam sobie to poskładaj tak jak chcesz. Domyślam się, że nie działa, bo albo nie ma parametru idki albo jest on błędny (w sensie, że nie są to liczby oddzielone przecinkami), daj pare ifów, jakieś sprawdzanie danych i będzie dobrze.


Już sobie poradziłem przed przeczytaniem tego posta wink.gif Nie było pobranych niektórych rzeczy z bazy. Temat do zamknięcia.
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: 18.07.2025 - 02:58