Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] na jednej stronie wybieram a na drugiej stronie wyswietlam
Forum PHP.pl > Forum > Przedszkole
em-ba
Witam, nie wiem czy to co chcę zrobić jest wykonalne ale.. usiłuję zrobić na stronie pole wyboru select, ktore wybrana opcje zapisze do bazy danych,
ale żeby na innej stronie nie było wyświetlane te pole tylko sama opcja wybrana na poprzedniej stronie..
np. wybieram na stronie pierwszej z pola select "opcja1" - jest to zapisane do bazy, a na stronie drugiej już sie nie wyświetla pole select ..tylko sama "opcja1" wybrana na poprzedniej stronie

w drugim kodzie chyba powinienem użyć zarówno zapytania select jak i update ale nie wiem czy tak można... 2 zapytania na jednej stronie

oto kod strony na której opcja z pola select ma być tylko wyświetlona:
  1. ?>
  2. <?php
  3. mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  4. mysql_select_db('aaa') or die ("Nie mozna zlokalizowac bazy danych");
  5.  
  6. $i = 1;
  7. $dane = mysql_query ("SELECT * FROM `bbb` WHERE login='".$login."' ORDER BY data DESC LIMIT 5 " );
  8.  
  9.  '<table class="t">
  10.     <tr>
  11.        <th class="t">nr</th>
  12.        <th class="t">login</th>
  13.        <th class="t">status</th>
  14.     </tr>';
  15.  
  16. if (mysql_num_rows($dane) > 0) {
  17.     while($dane2 = mysql_fetch_array($dane)){
  18.  
  19.  
  20.     echo'
  21.     <tr>
  22.        <td class="t">'.$i.'</td>
  23.        <td class="t">'.$dane2['login'].'</td>';
  24.  
  25.        if( $dane2['status']=='0')
  26.        {
  27.            echo  '<td class="tr">'.$dane2['status'].'</td>';
  28.        }
  29.        else if( $dane2['status']=='1')
  30.        {
  31.            echo  '<td class="tr">'.$dane2['status'].'</td>';
  32.        }
  33.        else if( $dane2['status']=='2')
  34.        {
  35.            echo  '<td class="tr">'.$dane2['status'].'</td>';
  36.        }
  37.  
  38.        echo '</tr>';
  39.     $i += 1;
  40.     }
  41.     }
  42.     else {
  43.     echo 'Brak danych';
  44.     }
  45.     echo'
  46.   </table>';
  47. ?>




oto kod strony, na której opcja z pola select ma być wybrana i zapisana do bazy:
  1. <?php
  2. mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  3. mysql_select_db('aaa') or die ("Nie mozna zlokalizowac bazy danych");
  4.  
  5. $i = 1;
  6. $dane = mysql_query ("SELECT * FROM `bbb` ORDER BY data DESC LIMIT 15 " );
  7.  
  8.  echo
  9.  '<table class="t">
  10.     <tr>
  11.        <th class="t">nr</th>
  12.        <th class="t">login</th>
  13.        <th class="t">status</th>
  14.     </tr>';
  15.     if (mysql_num_rows($dane) > 0) {
  16.     while($dane2 = mysql_fetch_array($dane)){
  17.  
  18.  
  19.     echo'
  20.     <tr>
  21.        <td class="t">'.$i.'</td>
  22.        <td class="t">'.$dane2['login'].'</td>
  23.     echo
  24.        '</td>;
  25.  
  26.                <div>
  27.                  <label for="status">status:</label>
  28.                   <select name="status">
  29.                <option value="0">opcja0</option>
  30.                                <option value="1">opcja1</option>
  31.                                <option value="2">opcja2</option>
  32.  
  33.            </select>
  34.                </div>'
  35.        echo  </td><td class="t">'.$value = $dane2['status'];
  36.              $array = array("opcja0","opcja1","opcja2");
  37.               echo $array[$value].'</td>';
  38.  
  39.        if( $dane2['status']=='0')
  40.        {
  41.            echo  '<td class="tr">'.$dane2['status'].'</td>';
  42.        }
  43.  
  44.  
  45.        echo '</tr>';
  46.     $i += 1;
  47.     }
  48.     }
  49.     else {
  50.     echo 'Brak danych';
  51.     }
  52.     echo'
  53.   </table>';
  54.  
  55. ?>


wiem, ze przy drugim kodzie powinienem użyć przy zapytaniu bardziej update niż select ale przy użyciu pola select chyba można użyć takiej funkcji, która automatycznie nadpisuje dane, a być moze sie myle..
JoShiMa
A po co zapisywać do bazy? Nie wystarczy Ci, że z formularza przekażesz to do drugiej strony przez tablicę $_POST?
em-ba
no tak, ale w jaki sposob bede mogl to wykonac bez posiadania w bazie pola status?
to co chce zrobic to w przyszłości ma służyć do wielokrotnego zmieniania tych opcji z pola select.. w sumie to nie musi sie to zapisywac do bazy ale bez niej to nie wiem czy da sie to wykonać..
mam nadzieje, że mnie rozumiesz smile.gif
zebupl
Witam,

em-ba nie analizowałem kodu ale chodzi jeśli dobrze rozumiem to:

1. Wybierasz odpowiednią wartość z pola select zapisujesz to do bazy najlepiej (id, kod) które są unique i jako drugi atrybut masz tytuł, opis
2. Na następnej stronie pobierasz z bazy wartość używając zawężenia id=(id wybrane w polu select) a zwracasz tytuł czy opis jaki wyświetlał się w polu select

Nie wiem czy o to dokładnie chodziło ? ;>

Pozdrawiam
munky
em-ba
jeśli ja teraz dobrze zrozumiałem.... to tak.. o to mi chodzi.. tylko to właśnie opisałem w swoim poście, że nie wiem jak tego dokonać, bo tak jak próbowałem do tej pory na różne sposoby to mi nie wychodzi i dlatego ....pytam na forum
zebupl
em-ba to robisz tak

1. Masz select i inne pola w formularzu. Wysyłasz forma robisz insert danych. Dane przesyłasz postem.
2. Na drugiej stronie odbierasz odpowiednią wartość z posta jaką potrzebujesz. Robisz select * from tabela where id = dane z posta. Dalej wyświetlasz.

Nie wiem jaki masz schemat bazy danych ale zakładam, że status to atrybut w innej tabeli dlatego proponuję:

1. Tabela A (a_id, a_name, a_s_id, ...)
2. Tabela S (s_id, s_name, ...) (to takie słowniki, lista dostępnych statusów, które możesz dynamicznie wyświetlać w selec-ie na pierwszej stronie)

Zapisując rekord z selecta robisz insert s_id w tabeli A atrybucie a_s_id (klucz obcy). Zakładam, że chcesz pobrać cały rekord z tabeli A. Zatem robiąc inserta zwracasz id jakie posiada nowa krotka i ją przekazujesz do następnej strony do selecta gdzie ściągniesz dane. Musisz jeszce pamiętać o mapowaniu a_s_id na s_name.

Jeśli nie pomogłem to zadaj szczegółowe pytanie gdzie masz problem.

pozdrawiam
munky
em-ba
Dzięki zebupl
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.