[PHP] wczytanie danych do formularza


(Aglasek) #1

Chcę wczytac zaznaczony rekord do formularza, czy ktos może mi powiedzieć co jest nie tak w tym kodzie ze nie działa. oto pierwszy plik

w którym jest połączenie

do bazy i wczytanie rekordów do bazy i to się ładnie wczytuje:

//polaczenie do bazy, itp.

<?php

      echo ("");


    while($row = mysql_fetch_array($result)) {

      echo('');

      echo(''.$row['Nr'].'');

      echo(''.stripslashes($row["Towar"]).'');

      echo('');

      echo('');

    }

?>

a to plik z formularzem do którego chce wczytac rekordy: i tu własnie coś musi być nie tak bo nie wczytuje mi się:

| Nr: | |
| Imie: | |
| |

[/code]


(Wery4u) #2

zamiast:

value="<?php $row['Nr']?>

powinno być:

value="<?php echo $row['Nr']?>

w pozostałych analogicznie pozmieniaj i będzie ok


(Aglasek) #3

Nie no co Ty nic nie dało, próbowałem już wcześniej w ten sposób ale nie wyświetla dalej.


(Wery4u) #4

echo przed $row['***'] musi być

jeśli nie działa to znaczy że coś źle jest w zapytaniu sql lub nie odbierasz zmiennej z id rekordu do wyświetlenia


(Aglasek) #5

zapytanie raczej jest ok bo rekordy się wyświetlają ok. Martwi mnie natomiast to odbieranie zmiennej z id rekordu do wyświetlenia, w sumie to nie wiem jak ja odebrać...


(Wery4u) #6

w pliku formularzedycji.php musisz odebrać zmienną

$_POST["***"];

w miejsce gwiazdek wstawiasz zmienną z id rekordu (z tego co widzę to u Ciebie prawdopodobnie Nr)

jak dasz strukturę bazy danych to będę w stanie Ci coś więcej napisać


(Aglasek) #7

Strukturę bazy danych?? Struktura jest taka, że mam jedną tabele i w niej dwa pola o nazwie "Nr" i "Towar". A jeśli chodzi o $_POST to w ten sposób $_POST['Nr']; nic się nie wyświetla a w ten sposób $_POST['radio']; jak próbowałem to pojawia się napis array


(Wery4u) #8

tak strukturę np w postaci zrzuty z phpmyadmin http://www.przemo.org/phpBB2/tutorial_phpmyadmin/2.gif


(Aglasek) #9

(kalamita) #10

Jak dobrze rozumiem, to plik z formularzem jest inny niż plik w którym dokonujesz odczytu danych z bazy danych ? To jak ma Ci zadziałać $row['Nr'], skoro w pliku z formularza takowa zmienna nie istnieje ? Musisz w pliku który wyświetla Ci formularz przekazać te wszystkie zmienne, które chcesz wyświetlić w formularzu, np metodą POST.

A tak na marginesie polecam rozdzielić logikę aplikacji (PHP, MySQL) od warstwy prezentacji (HTML, CSS) stosując jakiś system szablonów, pomaga to znacznie bardziej w utrzymaniu kodu i łatwiej jest znaleźć ewentualne błędy.


(Wery4u) #11

w pierwszym pliku zmień:

echo('');

na np.:

echo(' edytuj ');[/code]




na początku formularzedycji.php wpisujesz:

[code] $nr = $_GET["nr"]; $rezultat = mysql_query("SELECT * FROM nazwa_tabeli WHERE Nr=$nr"); $row = mysql_fetch_array($rezultat);


(Aglasek) #12

OK. Dzięki Wery działa :wink:

P.S

Szkoda, że nie udało się z tym checkboxem ale może i tak być.


(kalamita) #13

z checkboxem też można. Zamiast określać indywidualną nazwę każdego checkboxa nadaj im nazwę np. check[] a dopiero jego indywidualna wartość to .$row['Nr']

Następnie odczytujesz wartości poszczególnych wartości w ten sposób utworzonej tablicy checkboxów i ustalasz jakieś działanie dla nich.


(Aglasek) #14

To dla checkboxa udało mi się zrobić, może komuś się przyda kiedyś :wink:

$nr = $_POST["radio"];

                        foreach($_POST['radio'] as $index => $pozycja) {

                        if ($pozycja != '' && is_numeric($index)) {

                           $rezultat = mysql_query("SELECT * FROM kontakty WHERE Nr = '$index'");

                           $row = mysql_fetch_array($rezultat);

                           }

                        }