PHP fóra: Builder | JakPsatWeb | Webtrh
Nejste přihlášen(a)
Zdaravím, mám problémek s kontrolou formuláře před vložením do databáze…
Mám formulář
<form action="gcin.php" method="POST">
<p><strong>Název:</strong>
<input size="50" maxlength="100" type="text" name="name" />
<strong>Cislo GC:</strong>
<input size="10" maxlength="10" value="GCXXXXX" type="text" name="gc" />
</p>
<p><strong>Typ:</strong>
<select name="typ">
<option>zeme</option>
<option>dopis</option>
<option>multi</option>
<option>mys</option>
<option>virtual</option>
</select>
<strong>N:</strong>
<input size="3" value="49" maxlength="3" type="text" name="N1" />°
<input size="8" maxlength="8" type="text" name="N2" />
<strong>E:</strong>
<input size="3" value="016" maxlength="3" type="text" name="E1" />°
<input size="8" maxlength="8" type="text" name="E2" />
</p>
<p><strong>Další info:</strong>
<input size="100" maxlength="500" type="text" name="popis" />
</p>
<br>
<input type="submit" value="vložit"/>
</p>
</form>
po potvrzení formuláře se mi vše vloží do db pomocí
<?php
// Načtení konfigurace
require "config.php";
// Výběr databáze a spojení s databází
MySQL_Select_DB($db_name, $spojeni) or Die(MySQL_Error());
$name = $_REQUEST["name"];
$gc = $_REQUEST["gc"];
$typ = $_REQUEST["typ"];
$N1 = $_REQUEST["N1"];
$N2 = $_REQUEST["N2"];
$E1 = $_REQUEST["E1"];
$E2 = $_REQUEST["E2"];
$popis = $_REQUEST["popis"];
// Zapsání dat do tabulky uzivatele
$sql="INSERT INTO $table (name, gc, typ, N1, N2, E1, E2, popis) VALUES ('$name', '$gc', '$typ', '$N1', '$N2', '$E1', '$E2','$popis')";
$vysledek = MySQL_Query($sql,$spojeni);
if (IsSet($vysledek)):
echo "Hotovo";
else:
echo "nepodařilo se";
endif;
MySQL_Close($spojeni);
?>
Zároveň se mi do DB uloží datum, kdy došlo k zápisu…
A teď k problému.
Děkuji za odpověďi … popř uvítám i úpravu kodu.
PS: Jsem úplný začátečník v PHP!!
Editoval coinage (1. 6. 2009 12:26)
Ad 1) unikatni klic nad sloupeckem, a porovnavat zda strtoup($gc) == $gc nebo
pomoci regularniho vyrazu.
Ad 2) to je otazka spis na SQL. Ale pouzijes podmiknu na datum.
Chtelo by to jit po mensich krocich a zkusit si projit nekolik tutorialu.
Umis v necem programovat nebo jsi i obecne programator zacatecnik?
TOTÁLNÍ LAMA, JSEM RAD ZE JSEM DAL ASPON TOHLE DOHROMADY… DÍKY ZA JAKOUKOLIV RADU S UKÁZKOU…
Insert:
<?php
$sql="INSERT INTO $table (name, gc, typ, N1, N2, E1, E2, popis, datum) VALUES ('$name', '$gc', '$typ', '$N1', '$N2', '$E1', '$E2','$popis', NOW())";
?>
Select:
<?php
$sql="SELECT * FROM $table WHERE datum > NOW() - INTERVAL 5 DAY";
?>
Editoval danaketh (1. 6. 2009 17:39)
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Tak to bych pochopil, ale jak udelam to, ze se mi ukaze v celym tom seznamu
co se vypise ten obrazek u tech zaznamu, ktery nejsou starsi 5 dnu…
Tohle je ten hlavnu problem, a tam kde je to starsi, nepotrebuju nic…
Převeď si datum na unixovej čas (strtotime) a odečti to od time(). Vyjde ti nějaké číslo. Tohle číslo budeš porovnávat s počtem vteřin, které odpovídají 5 dnům (60*60*24*5). Dokud je menší, tak není záznam starší 5 dnů…
<?php
$time = time();
$five = 60*60*24*5;
foreach ($result as $row) {
$rtime = strtotime($row['datum']);
if ( ($time - $rtime) < $five ) {
echo 'huráááá... tady vyblinkáme ikonu';
}
else {
echo 'tak nic, tohle už je starý';
}
}
?>
(S)prostá matematika ;) Teď jen jestli jsem tam někde nesek nějakou chybu. Snad ne…
Editoval danaketh (2. 6. 2009 19:42)
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Tak vypis jsem doplnil o tohle
$date = Date("Y-m-j");
$a = strtotime($date);
$b = strtotime($row['date']);
$c = $a - $b;
if ($c < 345601){
echo "<td><img src=tajne/img/new.gif></img></td>";}
else{
echo "<td> </td>";
}
a uz mi to funguje… starsi 5 dnu nemaj ikonku a ten zbytek jo…
Kazdopadne jsem byl nakopnut zde…
Ted uz jen to overeni toho formularoveho pole , aby mi to vyhodilo hlasku, ze je jiz zadano v databazi aje to…
Diky vsem
Editoval coinage (3. 6. 2009 9:11)