Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Jak przypisać funkcje do przycisków (automat?)
Forum PHP.pl > Forum > Przedszkole
lukaszk
Witam, mam coś takiego (pomijając to co jest przed i po)
  1. $result = mysql_query("SELECT * FROM top_vote ORDER BY id_glos DESC LIMIT 10");
  2.  
  3.  
  4. echo "<table align=center style=width=auto height=auto border=1px cellpadding=1 cellspacing=1>";
  5. echo "<tr>";
  6. echo "<td align=center valign=top style=border=1px solid height=auto>";
  7. echo "<font style=font-size:10px face=Arial>ID</font></td>";
  8. echo "<td align=center valign=top style=border=1px solid height=auto>";
  9. echo "<font style=font-size:10px face=Arial>tytul_toplista</font></td>";
  10. echo "<td align=center valign=top style=border=1px solid height=auto>";
  11. echo "<font style=font-size:10px face=Arial>opis_toplista</font></td>";
  12. echo "<td align=center valign=top style=border=1px solid height=auto>";
  13. echo "<font style=font-size:10px face=Arial>Link</font></td>";
  14. echo "<td align=center valign=top style=border=1px solid height=auto>";
  15. echo "<font style=font-size:10px face=Arial>Status</font></td>";
  16. echo "<td align=center valign=top style=border=1px solid height=auto>";
  17. echo "<font style=font-size:10px face=Arial>+1</font></td>";
  18. echo "<td align=center valign=top style=border=1px solid height=auto>";
  19. echo "<font style=font-size:10px face=Arial>-1</font></td>";
  20. echo "<td align=center valign=top style=border=1px solid height=auto>";
  21. echo "<font style=font-size:10px face=Arial>Ilosc glosow</font></td>";
  22. echo "</tr>";
  23.  
  24. while($row = mysql_fetch_array($result))
  25. { echo "<tr>";
  26. echo "<td align=left border=1px; width=auto height=auto>" . $row['id_glos'] . "</td>";
  27. echo "<td align=left border=1px; width=auto height=auto>" . $row['tytul_toplista'] . "</td>";
  28. echo "<td align=left border=1px; width=auto height=auto>" . $row['opis_toplista'] . "</td>";
  29. echo "<td align=left border=1px; width=auto height=auto>" . $row['link_file'] . "</td>";
  30. echo "<td align=left border=1px; width=auto height=auto><img src=include/images/" . $row['active_not'] . ".png></td>";
  31. echo "<td align=left border=1px; width=auto height=auto><img src=include/images/up.png></td>";
  32. echo "<td align=left border=1px; width=auto height=auto><img src=include/images/down.png></td>";
  33. echo "<td align=left border=1px; width=auto height=auto>" . $row['ilosc_vote'] . "</td>";
  34.  
  35. echo "</tr>";
  36. }
  37.  
  38. echo "</tr></table>";
  39.  
  40.  


Więc mam sobie tabelkę a w niej ostatnie kolumny czynności.
Takie jak
Usuń
Zwiększ licznik
Zmniejsz licznik

Jest to powiedzmy toplista z opcją dodania jeszcze przez PA głosów przez ADMINA.
Rekordy są wrzucane do tabelki i moje pytanie jest takie - Jak najlepiej rozwiązać ten skrypt aby
po kliknięciu w ikonkę coś się zrobiło. Czy jest jakiś do tego mechanizm aby automatycznie dla każdego wiersza uzbroić przycisk w funkcje wykonującą.
Tak jak jest w większości CMS-ów
skowron-line
A o czymś takim słyszałeś
  1. <a href=""><img src=""></a>

questionmark.gif
lukaszk
To ma być polecenie z bazy np usunięcie rekordu, zwiększenie licznika.
Select wyrzuca mi rekordy do tabeli za pomocą
  1. while($row = mysql_fetch_array($result))

Wiersze są automatycznie wyrzucane a moja prośba jest taka
Czy do wyrzuconego do tabelki wiersza mogę jakoś dopasować te przyciski automatycznie
(Nie zrozumiałeś mnie znam takie podstawy)

Mamy tabelkę z bazy

|Nazwa 1|25|15|Usun|Edytuj|Zwieksz_licznik|Zmniejsz_Licznik|
|Nazwa 2|26|35|Usun|Edytuj|Zwieksz_licznik|Zmniejsz_Licznik|
|Nazwa 4|55|65|Usun|Edytuj|Zwieksz_licznik|Zmniejsz_Licznik|
itd

Edytuj, Zwieksz_licznik, Zmniejsz_Licznik to ikony "przyciski"
Kolumna Nazwa i liczby to rekordy z bazy danych
Czy jest automat który zrobi mi przyciski czynności aktywne aby wykonały coś tylko w tym rekordzie(wierszu)
skowron-line
Cytat(lukaszk @ 29.12.2010, 16:36:05 ) *
Czy jest automat który zrobi mi przyciski czynności aktywne aby wykonały coś tylko w tym rekordzie(wierszu)

No niestety jeszcze nic takiego nie wymyślono, możesz sobie w JS napisać.
lukaszk
Czy czasem rozwiązaniem nie jest poniższy kod który znalazłem?

  1. <?php
  2. /*
  3.   połączenie z bazą sobie darujemy
  4.   opisane jest ono w tej poradzie
  5.   <a href="http://www.kess.com.pl/?sid=10&pid=32" target="_blank">http://www.kess.com.pl/?sid=10&pid=32</a>
  6. */
  7.  
  8. /* zapytanie do konkretnej tabeli */
  9. $wynik = mysql_query("SELECT * FROM test")
  10. or die('Błąd zapytania');
  11.  
  12. /*
  13. wyświetlamy wyniki, sprawdzamy,
  14. czy zapytanie zwróciło wartość większą od 0
  15. */
  16. if(mysql_num_rows($wynik) > 0) {
  17. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  18. echo "<table cellpadding=\"2\" border=1>";
  19. while($r = mysql_fetch_array($wynik)) {
  20. echo "<tr>";
  21. echo "<td>".$r[1]."</td>";
  22. echo "<td>".$r[2]."</td>";
  23. echo "<td>
  24. <a href=\"index.php?a=del&amp;id={$r[0]}\">DEL</a>
  25. <a href=\"index.php?a=edit&amp;id={$r[0]}\">EDIT</a>
  26. </td>";
  27. echo "</tr>";
  28. }
  29. echo "</table>";
  30. }
  31.  
  32. ?>
  33.  


  1. $a = trim($_GET['a']);
  2. $id = trim($_GET['id']);
  3.  
  4. if($a == 'del' and !empty($id)) {
  5.  
  6. /* usuwamy rekord */
  7. mysql_query("DELETE FROM test WHERE id='$id'")
  8. or die('Błąd zapytania: '.mysql_error());
  9.  
  10. echo 'Rekord został usunęty z bazy';
  11. }
potreb
Tak, to jest dokładnie to smile.gif
lukaszk
A kurcze jak to ugryźć smile.gif
co oznacza
<a href=\"index.php?a=del&amp;id={$r[0]}\">
czy wszystko można zrobić w ramach jednego pliku?
Jeśli korzystam z tej metody wyświetlania plików i podstrony mam w katalogu include może nie działać?

Ja mam coś takiego
  1. <li><a href="index.php?id=opendir">Toplista SQL</a></li>


  1. <?php
  2. $DIR="include/"; // folder gdzie znajdują się podstrony
  3.  
  4. $id=$_GET['id'];
  5.  
  6. $str = strtoupper($id);
  7.  
  8. //echo "<h1>$str</h1><br />";
  9.  
  10. if ( $id =="" ){
  11.  
  12. include($DIR."date.php"); // plik który pokazuje jako pierwszy na stronie głównej
  13.  
  14. }
  15.  
  16. else {
  17.  
  18. if(file_exists($DIR.$id.'.php')){
  19.  
  20. include ($DIR.$id.".php");
  21.  
  22. } else {
  23.  
  24. echo "Taki dział nie istnieje :)";
  25.  
  26. }
  27.  
  28. }
  29.  
  30. ?>
Otto
Masz link np
  1. <a href='akcja.php?akcja=usun&id=2'>Usuń</a>


I tworzysz plik akcja.php i dajesz taki kod

  1.  
  2.  
  3. if (isset($_GET['akcja']) || $_GET['akcja'] == 'usun') {
  4. $id = $_GET['id'];
  5. $q = mysql_query("DELETE FROM tabela WHERE id = '$id' LIMIT 1") or die(mysql_error());
  6. die(header('location:index.php'));
  7. }
  8.  


i dzieki kliknieciu w link rekord zostaje usuniety i powraca do strony index.php
Ulysess
jesli GET['akcja'] ma wartosc albo m wartosc usun questionmark.gif

a nie lepiej po prostu zrobić
  1. if(!empty($_GET['id_usun']))
  2. {
  3. $id = (int)$_GET['id'];
  4. $q = mysql_query("DELETE FROM tabela WHERE id = '$id' LIMIT 1") or die(mysql_error());
  5. die(header('location:index.php'));
  6. }

no i link wtedy wyglądał by akcja.php?id_usun=1
lukaszk
Hej idziecie w złym kierunku kody
  1. 1.
  2. <li><a href="index.php?id=opendir">Toplista SQL</a></li>

podałem tylko dlatego że tak mam zbudowaną stronę i zamiast wywołać się z funkcja ładuje stronę której nie ma.

Ok więc ten kod działa indywidualnie na rekordy
  1. <?
  2. include "config.php";
  3. $connection = mysql_connect($server, $db_user, $db_pass)
  4. or die('Brak polaczenia z serwerem MySQL');
  5. $db = @mysql_select_db('test', $connection)
  6. or die('Nie moge połączyć się z bazą danych');
  7. /*
  8.   połączenie z bazą sobie darujemy
  9.   opisane jest ono w tej poradzie
  10.   <a href="http://www.kess.com.pl/?sid=10&pid=32" target="_blank">http://www.kess.com.pl/?sid=10&pid=32</a>
  11. */
  12.  
  13. /* zapytanie do konkretnej tabeli */
  14. $wynik = mysql_query("SELECT * FROM top_vote")
  15. or die('Błąd zapytania');
  16.  
  17. /*
  18. wyświetlamy wyniki, sprawdzamy,
  19. czy zapytanie zwróciło wartość większą od 0
  20. */
  21. if(mysql_num_rows($wynik) > 0) {
  22. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  23. echo "<table cellpadding=\"2\" border=1>";
  24. while($r = mysql_fetch_assoc($wynik)) {
  25. echo "<tr>";
  26. echo "<td>".$r['tytul_toplista']."</td>";
  27. echo "<td>".$r['id_glos']."</td>";
  28. echo "<td>
  29. <a href=\"index.php?a=del&id={$r['id_glos']}\">DEL</a>
  30. <a href=\"index.php?a=edit&id={$r['id_glos']}\">EDIT</a>
  31. </td>";
  32. echo "</tr>";
  33. }
  34. echo "</table>";
  35. }
  36.  
  37. ?>
  38.  
  39. <?
  40.  
  41. $a = trim($_GET['a']);
  42. $id = trim($_GET['id']);
  43. if($a == 'del' and !empty($id)) {
  44. /* usuwamy rekord */
  45. mysql_query("DELETE FROM top_vote WHERE id_glos='$id'")
  46. or die('Błąd zapytania: '.mysql_error());
  47. echo 'Rekord został usunęty z bazy';
  48.  
  49. }
  50. ?>


Więc mam to co chciałem działa smile.gif ale testowałem to na innych plikach jak zrobić aby moje linki

  1. <li><a href="index.php?id=opendir">Toplista SQL</a></li>


nie gryzły się z
  1. <a href=\"index.php?a=del&id={$r[0]}\">DEL</a>

bo jeśli umieszczę działający kod do index.php gdzie mam PA nie działa tylko otwiera stronę której nie ma.
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.