Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]... get jak zrobic cos takiego....
Forum PHP.pl > Forum > Przedszkole
king
Witam!!
mam problem z getem, otoz robie sobie strone i chce zrobic na niej kilka podstron... problem w tym ze nie wiem jak zrobic link blinksmiley.gif
chce zrobic cos takiego jak ponizej....
page,sklep&numersklepu=1.html
page,sklep&numersklepu=2.html

mam cos takiego
  1. <?php
  2. <a target="_self" href="eg.php?akcja='.co tu wstawic zeby mnie do drugiego linku kierowalo.'">2 link</a>
  3. <a target="_self" href="eg.php?akcja='.a tu do 3.'">3 link</a>
  4. ?>


ogolnie to troszke umiem to, ale moge zrobic tylko ze na jednej stronie bedzie jeden link
  1. <?php
  2. $akcja1= (isset($_GET['akcja']))?$_GET['akcja']:false;
  3. if(!$akcja1)
  4. {
  5. $wynik = mysql_query("SELECT * FROM `bronie`") 
  6. or die("Nie udało się pobrać danych z bazy!");
  7.  
  8. while ($rekord = mysql_fetch_array($wynik))
  9. {
  10. ?>
  11.  
  12. <center>
  13. <table width="80%" cellpadding="0" cellspacing="1" border="0">
  14. <tr>
  15. <td bgcolor="#19345E" width="20%"><div align="center"><strong><? echo $rekord['bron_id']; ?></strong></div></td>
  16.  <td bgcolor="#19345E" width="40%"><div align="center"><strong><? echo $rekord['nazwa']; ?></strong></div></td>
  17. <td bgcolor="#19345E" width="20%"><div align="center"><? echo('<a target="_self" href="sklep.php?akcja='.$rekord["bron_id"].'">Kup</a><br />');?></div></td>
  18.  </tr>
  19. </table>
  20. </center>
  21. <?php
  22. }
  23. }
  24. ?>
  25.  
  26. <?php
  27. if($akcja1)
  28. {
  29.  
  30. echo 'akcja';
  31. }
  32.  
  33. ?>


tu powyzej mi wszystko dziala tylko nie wiem jak zrobic zeby miec te klika podstron i na kazdej z nich pokazuja sie dane z innej tabeli..... jak to zaprojektowac
drzalek
Możesz np po akcja= wstawić nazwę tabeli z której chcesz pobrać dane i wtedy wywołać odpowiednie zapytanie SQL

  1. <?php
  2. $zapytanie = "SELECT * FROM ".$_GET['akcja']." ";
  3. ?>


Wtedy w zależności od wartości akcja, będą wyświetlane odpowiednie dane z odpowiedniej tabelki, ale ja nie wiem czy w ogóle o to Ci chodzi smile.gif
michal_robak
nie za bardzo czaje problem. Jak masz link 1 to zczytujesz dane z broni jak tu pokazałeś.. .. teraz jak klikasz link 2 to chcesz zeby zamiast z broni zczytywało ci z 'samochodow' ,.. a jak 3 link to np 'ubran' questionmark.gif o takie cos ci chodzi bo troche niejasne jest to co napisałeś. Jeżeli tak to walisz:

  1. <?php
  2. <a target="_self" href="eg.php?akcja=2">2 link</a>
  3. <a target="_self" href="eg.php?akcja=3">3 link</a>
  4. ?>


a potem

  1. <? 
  2. <?php
  3. //sprawdzasz czy jest jakas akcja
  4. if(isset($_GET['akcja'])&&$_GET['akcja']!=NULL)
  5. {
  6. $lista = array("bronie","samochody","ubrania");
  7. $typ = $_GET['akcja'];
  8.  
  9. //pobierasz wybraną tabelkę w zależności od akcji
  10. $wynik = mysql_query("SELECT * FROM `".$lista[$typ]."'"); 
  11. or die("Nie udało się pobrać danych z bazy!");
  12.  
  13. while ($rekord = mysql_fetch_array($wynik))
  14.  
  15. ?>
king
michal_robak dokladnie o to mi chodzi....

tylko dalej nie wiem jak to zrobic.... rozumiem mam linki
  1. <?php
  2. <a target="_self" href="eg.php?akcja=2">2 link</a>
  3. <a target="_self" href="eg.php?akcja=3">3 link</a>
  4. ?>


napisales "//pobierasz wybraną tabelkę w zależności od akcji"
tylko nie wiem jak zrobic zeby pobieralo wlasnie te dane, ktore sa w dane akcji
michal_robak
spójrz ... klikasz w taki link:

  1. <?php
  2. <a target="_self" href="eg.php?akcja=2">2 link</a>
  3. ?>
  4.  
  5. $lista = array("bronie","samochody","ubrania");


akcja=2 odpowiada indeksowi 2 w array-u $lista (liczymy od 0 przypada na ubrania jezeli tak wpiszesz $lista[$typ] bo):

  1. <?php
  2. $typ =$_GET['akcja'];//pobierasz 2 link czyli akcja =2 wiec $typ = 2;
  3. // więc $lista[$typ] = $lista[2] czyli bierzesz ubrania
  4. ?>

. Mowisz ze twój kod:


  1. <?php
  2. $akcja1= (isset($_GET['akcja']))?$_GET['akcja']:false;
  3. if(!$akcja1)
  4. {
  5. $wynik = mysql_query("SELECT * FROM `bronie`") 
  6. or die("Nie udało się pobrać danych z bazy!");
  7.  
  8. while ($rekord = mysql_fetch_array($wynik))
  9. {
  10. ?>
  11.  
  12. <center>
  13. <table width="80%" cellpadding="0" cellspacing="1" border="0">
  14. <tr>
  15. <td bgcolor="#19345E" width="20%"><div align="center"><strong><? echo $rekord['bron_id']; ?></strong></div></td>
  16.  <td bgcolor="#19345E" width="40%"><div align="center"><strong><? echo $rekord['nazwa']; ?></strong></div></td>
  17. <td bgcolor="#19345E" width="20%"><div align="center"><? echo('<a target="_self" href="sklep.php?akcja='.$rekord["bron_id"].'">Kup</a><br />');?></div></td>
  18.  </tr>
  19. </table>
  20. </center>
  21. <?php
  22. }
  23. }
  24. ?>
  25.  
  26. <?php
  27. if($akcja1)
  28. {
  29.  
  30. echo 'akcja';
  31. }
  32.  
  33. ?>


działa więc jaki problem, żeby zamienić to co masz na początku na to co pisałem poprzednio. Jedynie problem tkwi w tym, że w kazdej tabeli mozesz miec inaczej nazwane pola np :
bron_id
samochody_id
Więc zmień pola we wszytkich tabelach na takie same i problem zniknie. Jak pisałem wczesniej zamieniasz to:

  1. <?php
  2. $akcja1= (isset($_GET['akcja']))?$_GET['akcja']:false;
  3. if(!$akcja1)
  4. {
  5. $wynik = mysql_query("SELECT * FROM `bronie`") 
  6. or die("Nie udało się pobrać danych z bazy!");
  7.  
  8. while ($rekord = mysql_fetch_array($wynik))
  9. {
  10. ?>


na to:

  1. <?php
  2. //sprawdzasz czy jest jakas akcja
  3. if(isset($_GET['akcja'])&&$_GET['akcja']!=NULL)
  4. {
  5. $lista = array("bronie","samochody","ubrania");
  6. $typ = $_GET['akcja'];
  7.  
  8. //pobierasz wybraną tabelkę w zależności od akcji
  9. $wynik = mysql_query("SELECT * FROM `".$lista[$typ]."'"); 
  10. //to powyżej wykona ci zapytanie "SELECT *FROM 'ubrania'; <-- czyli tu se pobierasz wybraną tabelę ... jezeli nie rozumiesz to bardziej to wy
  11. aśnij bo mi ciezko inaczej ci to wyjasnic bo inaczej nie potrafię chyba :).
  12. or die("Nie udało się pobrać danych z bazy!");
  13.  
  14. while ($rekord = mysql_fetch_array($wynik))
  15. ?>
king
mam cos takiego

  1. <?php
  2. echo('<a target="_self" href="eg.php?akcja=1">1 link</a>');
  3. ?>
  4. <?php
  5. //sprawdzasz czy jest jakas akcja
  6. if(isset($_GET['akcja'])&&$_GET['akcja']!=NULL)
  7. {
  8. $lista = array("bronie","samochody","ubrania");
  9. $typ = $_GET['akcja'];
  10.  
  11. //pobierasz wybraną tabelkę w zależności od akcji
  12. $wynik = mysql_query("SELECT * FROM `".$lista[$typ]."'")
  13. or die("Nie udało się pobrać danych z bazy!");
  14.  
  15. while ($rekord = mysql_fetch_array($wynik))
  16. {
  17. ?>
  18.  
  19. <center>
  20. <table width="80%" cellpadding="0" cellspacing="1" border="0">
  21. <tr>
  22. <td bgcolor="#19345E" width="20%"><div align="center"><strong><? echo $rekord['bron_id']; ?></strong></div></td>
  23.  <td bgcolor="#19345E" width="40%"><div align="center"><strong><? echo $rekord['nazwa']; ?></strong></div></td>
  24. <td bgcolor="#19345E" width="20%"><div align="center"><? echo('<a target="_self" href="sklep.php?akcja='.$rekord["bron_id"].'">Kup</a><br />');?></div></td>
  25.  </tr>
  26. </table>
  27. </center>
  28. <?php
  29. }
  30. }
  31. ?>


i wywala
Nie udało się pobrać danych z bazy!
michal_robak
zmeń kod:
  1. <?php
  2. $wynik = mysql_query("SELECT * FROM `".$lista[$typ]."'")
  3. or die("Nie udało się pobrać danych z bazy!");
  4. ?>

na:

  1. <?php
  2. $zapytanie = "SELECT * FROM '".$lista[$typ]."'";
  3. echo $zapytanie;
  4. $wynik = mysql_query($zapytanie)
  5. or die("Nie udało się pobrać danych z bazy!");
  6. ?>


tam był błąd w ciapkach bo się nie domykały . A tu jeszcze masz sprawdzenie czy dobrze jest wpisane zapytanie.
king
nie laczy z baza wogole.... na samej gorze includuje pasy itp. do bazy wiec wina lezy chyba w zapytaniu....

pokazuje cos takiego
SELECT * FROM 'bronie'Nie udało się pobrać danych z bazy!

te zapytanie ktore wyswietlilo echo nie jest w zadnym cudzyslowie moze jakos trzeba dodac?

  1. <?php
  2. echo('<a target="_self" href="eg.php?akcja=0">1 link</a>');
  3. ?>
  4. <?php
  5. $lista = array("bronie","samochody","ubrania");
  6. $typ = $_GET['akcja'];
  7. //sprawdzasz czy jest jakas akcja
  8. if(isset($_GET['akcja'])&&$_GET['akcja']!=NULL)
  9. {
  10. $zapytanie = "SELECT * FROM '".$lista[$typ]."'";
  11. echo $zapytanie;
  12. $wynik = mysql_query($zapytanie)
  13. or die("Nie udało się pobrać danych z bazy!");
  14.  
  15.  
  16. while ($rekord = mysql_fetch_array($wynik))
  17. {
  18. ?>
  19.  
  20. <center>
  21. <table width="80%" cellpadding="0" cellspacing="1" border="0">
  22. <tr>
  23. <td bgcolor="#19345E" width="20%"><div align="center"><strong><? echo $rekord['bron_id']; ?></strong></div></td>
  24.  <td bgcolor="#19345E" width="40%"><div align="center"><strong><? echo $rekord['nazwa']; ?></strong></div></td>
  25. <td bgcolor="#19345E" width="20%"><div align="center"><? echo('<a target="_self" href="sklep.php?akcja='.$rekord["bron_id"].'">Kup</a><br />');?></div></td>
  26.  </tr>
  27. </table>
  28. </center>
  29. <?php
  30. }
  31. }
  32. ?>
michal_robak
aha a czy ty gdzieś wybierasz bazę danych?? Do tego sluży
mysql_select_db
ale pewnei uzywasz ... to teraz czy masz tabelkę bronie w tejże bazie questionmark.gif ... jezeli jej nie ma to nie połączy cię z bazą exclamation.gif. Co masz w bazie jakie tabelki??

A zapytanie jest dobrze skonstruowane bo pobiera ci odpowiednie pole z listy. Błąd leży w łączeniu się do bazy
king
w bazie mam tabele users i bronie.... pozniej dorobie kolejne tylko musze rozwiazac ten problem....
z bazą na bank dobrze laczy, bo na iinych stronaach jest ok

  1. <?php
  2. //Laczenie z baza
  3. mysql_connect ( $dbhost, $dbuser, $dbpass)or die("Nie można się połączyć z bazą: ".mysql_error());
  4. mysql_select_db($dbname) or die(mysql_error());
  5. ?>

tak lacze sie z baza
michal_robak
ojeju moje niedopatrze i wprowadzenie Ciebei w błąd. Zapytanie SELECT *FROM 'bronie' nie moze tak wyglądac bo on nie pobiera tabelki bronie lecz warrtość bronie ... wiec zmien tam żęby nie było tego pojedyńczego ciapka:

  1. <?php
  2. $zapytanie = "SELECT * FROM ".$lista[$typ];
  3. ?>
king
ok dziala dziekuje...smile.gif

a jak mam zrobic zeby wyszkukiwalo np po numerze id

WHERE player_id ='$id' gdzie te zapytanie wkleic?
michal_robak
  1. <?php
  2. $zapytanie = "SELECT * FROM ".$lista[$typ]." WHERE player_id = ".$id;
  3. ?>
ikssde
CODE

mysql_query("SELECT * FROM costam WHERE _id='$id' ");

W miejsce costam wpisz sobie tabele w ktorej chcesz wyszukiwac a w miejsce * co chcesz znalezc.

Co do poprzedniego, to optymalna metoda na to co chcesz zrobic jest instrukcja switch(), a nie sprawdzanie tablicy $_GET przy pomocy ifa.
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.