Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Edycja wyświetlanych rekordów z bazy banych
Forum PHP.pl > Forum > Przedszkole
mojeq
Witam

Mam bazę danych, wyszukuję interesujące mnie rekordy przez formularz html, wyświetlają mi się wyszukane rekordy i z tych wyświetlonych rekordów wybieram któryś i robię jakieś dalsze funkcje. Problem mam w tym że nie wiem jak wybrać konkretny rekord z tych wyświetlonych. Mogę dać przycisk lub pole wyboru przy każdym wyświetlanym rekordzie ale jak zrobić w kodzie żeby po kliknięciu danego rekordu do następnej strony splaty.php pobrały się dane własnie z tego rekordu. Wyniki wyświetlam w pętli:

  1. for ($i=0; $i<$ile_znalezionych; $i++) {
  2. $wiersz2=$wynik->fetch_row();
  3. echo "<TABLE border=\"1\" width=\"95%\" >";
  4. echo "<tr><td bgcolor=\"white\" align=\"center\" width=\"11%\">".stripslashes($wiersz2[0])."</td>
  5. <td bgcolor=\"white\" align=\"center\" width=\"9%\">".stripslashes($wiersz2[8])."</td>
  6. <td bgcolor=\"white\" align=\"center\" width=\"8%\" height=\"60\">".stripslashes($wiersz2[1])."</td>
  7. <td bgcolor=\"white\" align=\"center\" width=\"8%\" height=\"60\">".stripslashes($wiersz2[2])."</td>
  8. <td bgcolor=\"white\" align=\"center\" width=\"9%\">".stripslashes($wiersz2[3])."</td>
  9. <td bgcolor=\"white\" align=\"center\" width=\"7%\">".stripslashes($wiersz2[4])." zł</td>
  10. <td bgcolor=\"white\" align=\"center\" width=\"27%\">".stripslashes($wiersz2[5])."</td>
  11. <td bgcolor=\"white\" align=\"center\" width=\"7%\">".stripslashes($wiersz2[6])." zł</td>
  12. <td bgcolor=\"white\" align=\"center\" width=\"7%\">".stripslashes($wiersz2[7])."</td>
  13.  
  14.  
  15. <td align=\"center\" width=\"7%\"><a target=\"Spłaty faktury\" href=\"splaty.php\" onclick=\"window.open('splaty.php', 'Spłaty faktury', 'menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=yes,re
  16. sizable=yes,fullscreen=no,channelmode=no,width=500,height=250,left=200,top=250')\">Spłaty</a></tr>";
  17. echo "</table>";
  18. echo "<br>";
  19. }
bercow
kazdy rekord w bazie niech ma ID, a przekazujesz potem jo, albo w GET, albo POST
mojeq
wlasnie do tego doszedłem, są jeszcze jakieś inne możliwości?
dzieki za pomoc
bercow
Mozesz jeszcze pobawic sie w sesje, i pliki cookie, ale najlepszym rozwiązaniem będzie chyba przesłanie przez adres. Mozna dac radiobutton i przesłać formularzem. wtedy kazdy ma swoje id i przesylasz metoda POST odpowiednie id, id w radiobuttonach zwiększasz za pomocą pętli for.

  1. for( $x = 1; $x <= 10; $x++ )
  2. echo "<input type=\"radio\" name=\"splata\" value=".$x."\" /> ".$dane['name']."<br />";


Oczywiscie nie 10, a ilosc rekordow.

Co do tego wyzej to tak,a wiec, jezeli sciagniesz trzy rekordy, dane1 z ID1, dane2 z ID2, i dane3 z ID3. Piszesz
  1. .........//tutaj zapytanie do bazy
  2. while($dane = mysql_fetch_assoc($query)) {
  3. echo "<a href=index.php?dane='.$dane['id'] .'>"$dane['name'].'</a>';
  4. }


A w nastepnym pliku

  1. $dane = $_GET['dane'];
  2. $query = mysql_query("SELECT * FROM dane WHERE id_dane = '".$dane']") or die('Błąd zapytania');


Moze gdzies byc blad, pisalem z pamieci wink.gif
mojeq
formularz wyszukiwania wyglada tak ze mam kilka pół do wybrania bądz wpisania parametru (data, status, nazwa firmy itp) i pole wyboru którym wybieram metodę szukania. Szuka mi wtedy według wybranej metody (np. nazwa firmy) a jak zrobic żeby można było wpisać np. status i nazwa firmy i żeby wyszukał według tych dwóch parametrów. Użycie AND odpada bo za dużo kombinacji jest z metodami wyszukiwania. To by musiało być tak że jeśli wybiorę coś lub wpiszę coś w pole to ono będzie brane do wyszukiwania. Raz może byc wyszukiwanie według jednego parametru a raz według pieciu.
bercow
zakladam hipotetyczna sytuacje, szukamy ksiazki gdzie
Autor ="Kowalski"
Data = "1999"
Wydawnictwo =""//brak
Okladka ="twarda"

A wiec
  1. if (!isset($_POST['autor']) $autor = " AND autor ='".$_POST['autor']."'";
  2. if (!isset($_POST['data']) $data = " AND autor =' ".$_POST['data']."'";
  3. if (!isset($_POST['wydawnictwo']) $wydawnictwo = " AND autor ='".$_POST['wydawnictwo']."'";
  4. if (!isset($_POST['okladka']) $okladka= " AND autor ='".$_POST['okladka']."'";
  5.  
  6. query = mysql_query("SELECT * FROM ksiazki WHERE".$autor $data $wydawnictwo $okladka);


A wiec zapytanie jakie dostaniemy bedzie wygladac

SELECT * FROM ksiazka WHERE autor='Kowalski' AND data='1999' AND okladka = 'twarda'

1. naprawe bedzie AND autor='Kowalski', ale to latwo mozna naprawic, pisne z pamieci, wiec moze miec bledy, a raczej napewno ma tongue.gif, ale idee powinienes zrozumiec
mojeq
czyli jak w tym przypadku brak wydawnictwa czyli $wydawnictwo=puste w select bedzie "AND wydawnictwo=$wydawnictwo" to zostanie pominiete? wydaje mi sie ze bedzie szukał pustego pola i select zadnych wynikow nie zwroci. I tam chyba nie ma byc wszedzie autor tylko kolejno data, wydawnictwo, okladka w ifach
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.