Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: polaczenie z baza
Forum PHP.pl > Forum > Przedszkole
marcin_n4
Witam, Panowie i Panie,

Mam problem z formularzem w php. Chcę stworzyć formularz dodawania powodów awarii. Ma mieć jedno pole do uzupełniania OPIS POWODU a tabela ma dwa pola id_podowu autoincrement oraz opis_p varchar.

stworzyłem połączenie formularza z bazą bo widzę że za pomocą zapytania :
<td> Opis Powodow <select name=opis_p>
<option value=0>Wybierz </option>
<?
$zap=mysql_query("select id_powodu,opis_p from powodyy order by opis_p",$polaczenie);
while (list($id_powodu,$opis_p)=mysql_fetch_row($zap))
echo "<option value=$id_powodu> $opis_p </option> \n";
?>
</select><br>
</td>


Pokazują mi się wyniki natomiast mam problem z dopisaniem z tego formularza nowego rekordu. Stworzyłem pole :

<tr>
<td width="164">opis Powodow<sup>*</sup></td>
<td width="415"><input name="opis_p" type="text" size="100" maxlength="100">&nbsp;</td>
</tr>

Stworzyłem przycisk dodaj i wyczyść
<tr>
<td><input type=submit value="Dodaj" size="10"></td>
<td><input type="reset" value="Wyczysc formularz"></td>
</tr>

Oraz akcję która ma być podjęta czyli dodanie do bazy
<?

$opis_p=$_POST['opis_p'];

if ($opis_p!="") {
mysql_query ( "INSERT INTO powodyy (`opis_p`)
values ('$opis_p`)",$polaczenie);
}
?>


Może mi ktoś powiedzieć gdzie robię błąd przy tworzeniu takiego prostego formularza?
erix
Dodaj tag do tematu.
  1. wyświetl sobie najpierw przez var_dump" title="Zobacz w manualu PHP" target="_manual zawartość formularza po wysłaniu
  2. wyświetl wygenerowane zapytanie
  3. użyj mysql_error" title="Zobacz w manualu PHP" target="_manual, aby wyświetlić treść błędu
nexis
Nie wiem jak bardzo szczegółowy ma być powód awarii, ale znając życie klient się rozpisze i wtedy radziłbym ustawić pole na TEXT zamiast VARCHAR.
Wicepsik
  1. <?php
  2. if (!empty($opis_p)) {
  3. mysql_query ( "INSERT INTO `powodyy` values (null, '".$opis_p."')",$polaczenie);
  4. }
  5. ?>


Musisz też wstawiać id_podowu null jako następny id
marcin_n4
Dzięki za pomoc .
Mam jeszcze kilka problemów : jak zrobić aby dane pole w tabeli numer_zamówienia- varchar (10) np numer który będzie wpisywany w formularzu był nie mniejszy niż 5 znaków a nie większy niż 10 znaków i jak ktoś wpisze więcej lub mniej znaków aby pojawił się komunikat
oraz data która w tabeli ma typ DATE aby zawsze była RRRR-MM-DD i jak ktoś wpisze np 20000202s to żeby nie wpisywało 0000-00-00 tylko 2000-02-02 bo jak obetnę s to tak się wpisze.
piotrooo89
no musisz poczyta o walidacji formularzy.
Wicepsik
Polecałbym Ci nauczyć się wyrażeń regularnych bo są bardzo przydatne.
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.