Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Combobox - edycja, kasowanie, dodawanie rekordu
Forum PHP.pl > Forum > Przedszkole
Wojtekss
Witam,
Zrobilem menu rozwijane z danymi z bazy, po nacisnieciu wyskakuja mi oceny danej osoby z bazy, problem w tym ze jak wyskocza juz te oceny nie da sie ani zadnej dodac ani edytowac ani skasowac, moglby ktos pomoc co trzeba zrobic?


To moj kod:


  1. <form action="test12.php" method="post">
  2. <div><select name="dzial" onchange="this.form.submit()">
  3. <option value="">Wybierz Ucznia:</option>
  4. <option value="">
  5.  
  6. <?php
  7.  
  8. include("baza.php");
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15. if ($_POST['co'] == 'dodaj') {  // dodawanie rekordu
  16.        if ($_POST['ocena'] && $_POST['data']) {
  17.           $query = "INSERT INTO Oceny SET ID_UCZNIA=(SELECT ID_UCZNIA FROM Osoba,  Uczen Where Osoba.ID_OSOBA=Uczen.ID_OSOBA AND imie=nazwisko='$dzial'),  ID_PRZEDMIOTU=1, ocena='".$_POST['ocena']."',  data='".$_POST['data']."';";
  18.          $wynik = mysql_query ($query);
  19.        }
  20.      } elseif ($_POST['co'] == 'popraw') {  // poprawianie rekordu
  21.        if ($_POST['ocena'] && $_POST['data']) {
  22.          $query = "UPDATE Oceny SET ocena='".$_POST['ocena']."', data=";
  23.          $query .= "'".$_POST['data']."' WHERE ID_OCENY='".$_POST['id']."';";
  24.          $wynik = mysql_query ($query);
  25.        }
  26.      } elseif ($_GET['co'] == 'edytuj') {  // przygotowanie do poprawek
  27.         $query = "SELECT * FROM Oceny where ID_OCENY='".$_GET['id']."';";
  28.         $wynik = mysql_query ($query);
  29.         $rekord = mysql_fetch_assoc ($wynik);
  30.         $ID_OCENY = $rekord['ID_OCENY']; $ocena = $rekord['ocena']; $data = $rekord['data'];
  31.         print '<FORM METHOD="POST">Poprawa rekordu:';
  32.         print '<INPUT TYPE="hidden" NAME="co" VALUE="popraw">';
  33.         print '<INPUT TYPE="hidden" NAME="id" VALUE="'.$ID_OCENY.'"><TABLE>';
  34.         print '<TR><TD>Ocene:</TD><TD><INPUT TYPE="text" ';
  35.         print 'NAME="ocena" VALUE="'.$ocena.'"></TD></TR><TR><TD>data:';
  36.         print '</TD><TD><INPUT TYPE="text" NAME="data"';
  37.         print 'VALUE="'.$data.'"></TD></TR>';
  38.         print '</TABLE><INPUT TYPE="submit" VALUE="Popraw"></FORM>';
  39.      } elseif ($_GET['co'] == 'skasuj') {  // kasowanie
  40.        $wynik = mysql_query
  41.             ("DELETE FROM Oceny WHERE ID_OCENY = '".$_GET['id']."';");
  42.      }
  43.  
  44.  
  45.  
  46. $wynik = mysql_query("SELECT imie, nazwisko FROM Osoba, Uczen WHERE Uczen.ID_OSOBA=Osoba.ID_OSOBA;");
  47. $ilosc_wierszy1 = mysql_num_rows($wynik);
  48. for ($i = 0; $i <$ilosc_wierszy1 ; $i++)
  49. {
  50. $wiersz = mysql_fetch_array($wynik);
  51. echo "<option value=\"".$wiersz["imie"]." ".$wiersz["nazwisko"]."\">".$wiersz["imie"]." ".$wiersz["nazwisko"];
  52. }
  53.  
  54. ?>
  55. </option>
  56. </select>
  57. </div>
  58.  
  59. <?php
  60.  
  61. // parametry serwera
  62. $serwer = "localhost";  // nazwa serwera mysql
  63. $login  = "";  // login do bazy
  64. $haslo  = "";  // haslo do bazy
  65. $baza   = "";  // nazwa bazy
  66.  
  67.  
  68. $dzial = $_POST['dzial'];
  69. $imi;
  70. $nazwi;
  71. print $dzial;
  72. for ($i=0;$i<strlen($dzial);$i++)
  73. {
  74.    if($dzial[$i] == ' ')
  75.    {
  76.        $imi = substr($dzial, 0, $i);
  77.        $nazwi = substr($dzial, $i+1);
  78.        break;
  79.    }
  80. }
  81.  
  82. //print $dzial;
  83. //print $wiersz["imie"];
  84.  
  85. if($dzial) {
  86.    
  87.    // łączymy się z bazą danych
  88.    if (mysql_connect($serwer, $login, $haslo) and mysql_select_db($baza)) {
  89.        
  90.        // zapytanie do bazy danych
  91.         $wynik = mysql_query("SELECT ocena, data FROM Oceny, Osoba, Uczen WHERE  Osoba.ID_OSOBA=Uczen.ID_OSOBA AND Uczen.ID_UCZNIA=Oceny.ID_UCZNIA AND  imie=nazwisko='$dzial'")
  92.        or die("Błąd w zapytaniu!");
  93.        
  94.        mysql_close();
  95.    }
  96.    else echo "Nie mogę połączyć się z bazą danych!";
  97.    
  98.       mysql_connect ("localhost", "", "") or
  99.            die ("Nie można połączyć się z MySQL");
  100.      mysql_select_db ("") or
  101.            die ("Nie można połączyć się z bazą opinie");
  102.  
  103.  
  104.     $temp ='Wojciech';
  105.  
  106.      //$wynik = mysql_query ("SELECT * FROM Oceny;");
  107.    //   $wynik = mysql_query ("SELECT ocena, data FROM Oceny, Osoba, Uczen  WHERE Osoba.ID_OSOBA=Uczen.ID_OSOBA AND Uczen.ID_UCZNIA=Oceny.ID_UCZNIA  AND imie=nazwisko='$dzial';");
  108.  
  109. //$wynik = mysql_query ("SELECT  ocena, data FROM Oceny, Osoba, Uczen WHERE  Osoba.ID_OSOBA=Uczen.ID_OSOBA AND Uczen.ID_UCZNIA=Oceny.ID_UCZNIA AND  imie='".$temp."';");
  110.  
  111. $wynik = mysql_query ("SELECT ocena, data  FROM Oceny, Osoba, Uczen WHERE Osoba.ID_OSOBA=Uczen.ID_OSOBA AND  Uczen.ID_UCZNIA=Oceny.ID_UCZNIA AND imie='".$imi."' AND  nazwisko='".$nazwi."';");
  112.  
  113.  
  114.      print '<HR>Matematyka';
  115.      print '<HR>';
  116.  
  117.      print "<TABLE CELLPADDING=5 BORDER=1>";
  118.       print  "<TR><TD><B>Ocena</B></TD><TD><B>Data</B></TD><TD></TD><TD></TD></TR>\n";
  119.  
  120.      while ($rekord = mysql_fetch_assoc ($wynik)) {
  121.        $ID_OCENY = $rekord['ID_OCENY'];
  122.        $ocena = $rekord['ocena'];
  123.        $data2 = $rekord['data'];
  124.    $data = substr($data2, 0, -9);
  125.        
  126.        
  127.        if (!($_POST['fraza']) || (stristr ($ocena.$data, $_POST['fraza']))) {
  128.          print "<TR><TD>$ocena</TD><TD>$data</TD><TD>";
  129.          print "<A HREF=\"test12.php?co=skasuj&id=$ID_OCENY\">skasuj</A></TD><TD>";
  130.          print "<A HREF=\"test12.php?co=edytuj&id=$ID_OCENY\">edytuj</A></TD></TR>\n";
  131.        }
  132.      }
  133.      print "</TABLE>";
  134.      print '<FORM METHOD="POST">Nowy rekord:';
  135.      print '<INPUT TYPE="hidden" NAME="co" VALUE="dodaj"><TABLE>';
  136.      print '<TR><TD>Ocene:</TD><TD><INPUT TYPE="text" ';
  137.      print 'NAME="ocena"></TD></TR><TR><TD>data:</TD><TD><INPUT ';
  138.      print 'TYPE="text" NAME="data" value="rrrr-mm-dd"></TD></TR>';
  139.      print '</TABLE><INPUT TYPE="submit" VALUE="Dodaj"></FORM>';  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154. // wyświetlany wyniki zapytania
  155. //   while($rek = mysql_fetch_array($wynik)) {
  156. //    echo $rek['ocena']." ".$rek['data']."<br />";
  157.    }
  158.  
  159.  
  160. ?>
  161.  
  162. </form>
Zmorcia
Musisz napisać odpowiedni kod np:


  1. <?php
  2. if($_GET['p'] == 'edit'){
  3.    
  4.        echo 'Tutaj masz np: pobieranie rekordów z ID $_GET['i'] i wyświetlanie';
  5.        
  6.    } elseif($_GET['p'] == 'delete'){
  7.    
  8.        echo 'a tutaj usuwasz rekord z ID $_GET['i'];';
  9.        
  10.    } else {
  11.    
  12.        echo 'formularz który wyświetla wpisy';
  13.    
  14.    }
  15. ?>


// winksmiley.jpg Napisz od nowa skrypt ;0

Pomogłem?
Wojtekss
Tylko wszystkie if'y z $_GET do edytowania usuwania i dodawania mam zawarte w kodzie, lecz po dodaniu lub kliknieciu na edytuj lub skasuj nastepuje przeladowanie strony i wraca do punktu wyboru z Combobox, zadne zmiany nie zostaly wprowadzone.

moze ktos mi pomoc, zalezy mi bardzo...

Moze problem jest w onchange="this.form.submit() ?
bo po kliknieciu na skasuj edytuj lub dodaj przekierowuje mnie z powrotem do wyboru osoby.
Moze ktos mi powiedziec co zrobic zeby po kliknieciu zostalo w tym samym miejscu i dalo sie edytowac kasowac i dodawac, bo jak na razie to nic nie robi.
RubiX
spróbuj zamienić na kawałek kodu na to :

  1. <?php
  2. } elseif ($_GET['co'] == 'skasuj') {  // kasowanie
  3.       $id = $_GET['id'];
  4.       $wynik = mysql_query("DELETE FROM Oceny WHERE ID_OCENY='$id'");
  5.     }
  6. ?>


i jak masz na przykład w Twoim kodzie

  1. <?php
  2. $wynik = mysql_query
  3.            ("DELETE FROM Oceny WHERE ID_OCENY = '".$_GET['id']."';<--- TO");
  4. ?>


Tamgdzie dałem <-- TO to po co dajesz ten znak ; questionmark.gif jest raczej zbędny
Wojtekss
nie pomoglo, jak edytuje lub kasuje generuje sie link: "test12.php?co=skasuj&id="
w ogole nie przypisuje id oceny, zamiast id jest puste pole, co jest nie tak?
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.