Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: checkbox dodanie do bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
kamyczewski
Gdzie popełniam błąd?. Chodzi mi o to że to jest funkcja dodajaca formularz w którym wybiera sie jedno pole radio jedno pole option i kilka pól checkbox funkcja mi nie dodaje niestety nic i nie wiem co źle robie prośze o pomoc questionmark.gifquestionmark.gif

plik funkcje
  1. <?php
  2. function dodaj_formularz($id, $matura, $id_kierunek, $id_przedmiot)
  3.  {
  4.      $lacz = lacz_bd();
  5.      
  6.      foreach ($id_przedmiot as $rzad)
  7.      {
  8.          $wynik = $lacz->query("insert into formularz values ('$id', '$matura', '$id_kierunek', '$id_przedmiot') ");
  9.      }
  10.  
  11.      if(!wynik)
  12.          throw new Exepction ('Nie powiodło się');
  13.      return true;
  14.  }
  15. ?>


wplik wykonujacy zapytanie
  1. <?php
  2. require_once('funkcje.php');
  3.  
  4.    $matura = $_POST['matura'];
  5.    $id_przedmiot = $_POST['przedmiot'];
  6.    $id_kierunek = $_POST['kierunki'];
  7.    //sprawdzanie czy są zmienne
  8.    foreach($id_przedmiot as $var)
  9.    {
  10.    echo '<br>'.$var.'';
  11.    }
  12.    echo $matura;
  13.    echo $id_kierunek;
  14.    
  15.    try
  16.    {
  17.        if($matura=='' or $id_przedmiot=='' or $id_kierunek=='')
  18.        throw new Exception('pola musza być wypełnione');
  19.        
  20.            dodaj_formularz($id, $matura, $id_kierunek, $id_przedmiot);
  21.            header("Location: admin.php?strona=3");
  22.            exit;
  23.            
  24.    }
  25.    catch (Exception $e)
  26.        {
  27.            echo $e->getMessage();        
  28.        }
  29. ?>
JoShiMa
A czy:
1. pole id nie jest przypadkiem kluczem ? Jeśli już jest w bazie to nie można dodać rekordu z takim samym id
2. Zmienne $id_kierunek nie jest przypadkiem tablicą? Jeśli tak to jaką wartość wstawiasz w zapytaniu?
kamyczewski
ad1 id jest kluczem ale nie jest jako autincrement
ad2 id_kirunek jest jako jedna z wartośc inputa select czyli jest to jedna z opcji option
erix
  1. <?php
  2. foreach ($id_przedmiot as $rzad)
  3.     {
  4.         $wynik = $lacz->query("insert into formularz values ('$id', '$matura', '$id_kierunek', '$id_przedmiot') ");
  5.     }
  6. ?>

Szczerze mówiąc, to ten kod jest trochę bez sensu - wstawi Ci parę TAKICH SAMYCH wartości, a nie różnych, jak zapewne chcesz.

Chodzi o zalinkowany formularz?
kamyczewski
Cytat(JoShiMa @ 12.12.2008, 16:49:44 ) *
A czy:
1. pole id nie jest przypadkiem kluczem ? Jeśli już jest w bazie to nie można dodać rekordu z takim samym id
2. Zmienne $id_kierunek nie jest przypadkiem tablicą? Jeśli tak to jaką wartość wstawiasz w zapytaniu?


jesli chodzi o $id_kierunek to przepraszam ale nie zobaczyłem dokładnie faktycznie jest tablicą
  1. <?php
  2. function wyswietl_kierunek($tablica_kierunku)
  3. {
  4.    if(!is_array($tablica_kierunku))
  5.    {
  6.        echo ' brak kierunku';
  7.        return;
  8.    }
  9.    echo '<select name="kierunki">';
  10.    foreach ($tablica_kierunku as $rzad)
  11.    {
  12.        
  13.        echo '<option value='.($rzad['id_kierunek']).' >'.$rzad['kierunek'].'</option>';
  14.        
  15.    }//foreach
  16.    echo '</select>';
  17. }
  18. ?>


Cytat(erix @ 12.12.2008, 17:20:54 ) *
  1. <?php
  2. foreach ($id_przedmiot as $rzad)
  3.     {
  4.         $wynik = $lacz->query(&#092;"insert into formularz values ('$id', '$matura', '$id_kierunek', '$id_przedmiot') \");
  5.     }
  6. ?>

Szczerze mówiąc, to ten kod jest trochę bez sensu - wstawi Ci parę TAKICH SAMYCH wartości, a nie różnych, jak zapewne chcesz.

Chodzi o zalinkowany formularz?

to raczej nie jest bez sensu chodzi o stworzenie formularza gdzie wybiera sie rodzaj matury jede i jeden kierunek i i kilka przedmiotów które sa zalerzne od wybranego kirunku poprostu chce zorbić dynamiczny formularz który admi strony może łatwo stworzyć
erix
Cytat
to raczej nie jest bez sensu chodzi o stworzenie formularza gdzie wybiera sie rodzaj matury jede i jeden kierunek i i kilka przedmiotów które sa zalerzne od wybranego kirunku poprostu chce zorbić dynamiczny formularz który admi strony może łatwo stworzyć

Ale po co, w takim razie, pętla...? Naprawdę nie rozumiem, dlaczego przejeżdżasz tablicę, skoro nie używasz tu jej wartości. Chcesz mieć parę zduplikowanych wpisów w bazie? Jeśli robisz to świadomie, to ok, ale ta pętla wygląda mi na błąd w logice.
kamyczewski
chodzi mi o stworzenie dynamicznego formularza który admin strony moze w łatwy sposób stworzyć np wybieramy kierunek który ma id i wybieramy rodzaj matury i wybieramy kilka przedmiotów które są zalerzne od wybrange kierunku

Cytat(erix @ 12.12.2008, 17:31:52 ) *
Ale po co, w takim razie, pętla...? Naprawdę nie rozumiem, dlaczego przejeżdżasz tablicę, skoro nie używasz tu jej wartości. Chcesz mieć parę zduplikowanych wpisów w bazie? Jeśli robisz to świadomie, to ok, ale ta pętla wygląda mi na błąd w logice.


dokładnie tak chce mieć kilka zduplikowanych wpisów w bazi to jest efekt zamierzony podam kokretny przyklad
załuzym ze kierunek informatyka ma id 1 przedmio matematyka ma id 11 przedmiot fizyka ma 12 przedmiot wos ma id 13
tabela będzie tak wyglądała
tabela formularz:

id_forum | matura | przedmiot
1 nowa 11
1 nowa 12
1 nowa 13
erix
Cytat
id_forum | matura | przedmiot
1 nowa 11
1 nowa 12
1 nowa 13

Ale w chwili obecnej tamta pętla robi tak:
Kod
id_forum | matura | przedmiot
1 nowa 11
1 nowa 11
1 nowa 11


winksmiley.jpg
kamyczewski
Cytat(erix @ 12.12.2008, 17:37:40 ) *
Ale w chwili obecnej tamta pętla robi tak:
Kod
id_forum | matura | przedmiot
   1 nowa 11
   1 nowa 11
   1 nowa 11


winksmiley.jpg

w tej chwili to ta funkcja nic nie dodaje i nie wiem gdzie leży problem domyslam sie i kolega na forum podpowiedział że to możliwe że to przez to że id_kierunek jest w formie tablicy może zamieszcze kod
  1. <?php
  2. function wyswietl_kierunek($tablica_kierunku)
  3. {
  4.    if(!is_array($tablica_kierunku))
  5.    {
  6.        echo ' brak kierunku';
  7.        return;
  8.    }
  9.    echo '<select name="kierunki">';
  10.    foreach ($tablica_kierunku as $rzad)
  11.    {
  12.        
  13.        echo '<option value='.($rzad['id_kierunek']).' >'.$rzad['kierunek'].'</option>';
  14.        
  15.    }//foreach
  16.    echo '</select>';
  17. }
  18. ?>
erix
a gdzie pobierasz $tablica_kierunku?

Podajesz same funkcje. A jak generowany jest formularz? Jakie wartości?
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.