Problemi sa spremanjem podataka iz forme u bazu

Pozz svima,

Imam problem pri spremanju podataka iz forme u bazu. Problem se javlja pri pokušaju spremanja imena i prezimena zaposlenika. Sve brojčane vrijednosti uredno prenese i spremi ali bilo kakav tekst ne može. Probao sam mijenjati tip kolone u tablici iz varchar u text i opet ništa. Probao sam sa čistim echo-om vidjet da li forma uopće radi i uspio je prnijeti sve podatke iz forme, ali pri spremanju u bazu neće. I kada probam ručno unijeti nekakav tekst direktno preko php myadmina također uspješno spremi podatke. :neznam:

Evo koda:

Forma:

			<fieldset>
				<legend><b>Chose day and month:</b></legend>
				<div class="class1">
					<select name="dayy">
					<option value="1">1</option>
					<option value="2">2</option>
					<option value="3">3</option>
					<option value="4">4</option>
					<option value="5">5</option>
					<option value="6">6</option>
					<option value="7">7</option>
					<option value="8">8</option>
					</select>
				</div>
				<div class="class2">
					<select name="monthh">
					<option value="1">1</option>
					<option value="2">2</option>
					<option value="3">3</option>
					<option value="4">4</option>
					<option value="5">5</option>
					<option value="6">6</option>
					<option value="7">7</option>
					<option value="8">8</option>
					</select>
				</div>
				<div class="class3">
					<select name="yearr">
					<option value="2011">2011</option>
					</select>
				</div>
			</fieldset>
			
			<table border="0">
				<tr>
					<td><b>Chose employe:</b></td>
					<td>
						<select name="emp">
							<option value="Name">Name</option>
							<option value="Name1">Name1</option>
							<option value="Name2">Name2</option>
							<option value="Name3">Name3</option>
						</select>
					</td>
				</tr>
				<tr>
					<td><b>Start:</b></td>
					<td>
						<select name="sum1">
							<option value="1">1</option>
							<option value="2">2</option>
							<option value="3">3</option>
							<option value="4">4</option>
							<option value="5">5</option>
						</select>
					</td>
				</tr>
				<tr>
					<td><b>End:</b></td>
					<td>
						<select name="sum2">
							<option value="1">1</option>
							<option value="2">2</option>
							<option value="3">3</option>
							<option value="4">4</option>
							<option value="5">5</option>
							<option value="6">6</option>
							<option value="7">7</option>
							<option value="8">8</option>
						</select>
					</td>
				</tr>
			</table>
			
			<input type="submit" name="submit" value="Send" />
			
</form>

Php kod:

require_once “mysql_info.php”;

$link = @mysql_connect($server, $username, $password);
if (!$link) {
echo “Error with server”; exit();
}

$bbaza = mysql_select_db($database, $link);
if (!$bbaza) {
echo “Error with database”; exit();
}

if (isset($_POST[‘submit’]))
{
$day = $_POST[‘dayy’];
$month = $_POST[‘monthh’];
$year = $_POST[‘yearr’];

$person = $_POST['emp'];
$poc_rada = $_POST['sum1'];
$zav_rada = $_POST['sum2'];

}

$query = “INSERT INTO evidencija (djel, poc, zav, dan, mjesec, god)
VALUES ($person, $poc_rada, $zav_rada, $day, $month, $year);”;

$result = mysql_query($query);

if ($result) echo “

OK!!!

”;
else echo “

Something is wrong!!!

”;

mysql_close();

Hvala!

Ono što mi prvo pada na pamet je da je polje prekratko ili da kolacija nije dobra.
Probaj spremiti nešto jednostavno, npr. “a”, tek toliko.

Bez obzira, probaj “uhvatiti” grešku koju vraća baza.

probaj ovako:
$query = “INSERT INTO evidencija (djel, poc, zav, dan, mjesec, god)
VALUES (’$person’, ‘$poc_rada’, ‘$zav_rada’, ‘$day’, ‘$month’, ‘$year’);”;

Hvala na odgovorima.

Polje je varchar 255 a kolacije sam probao mijenjati i ništa. Ne želi mi spremiti niti jedno slovo, samo brojeve sprema? A greška koja se javlja nakon što sam varijable stavio u navodnike po preporuci ein-a je:

Your Query: INSERT INTO evidencija (djel, poc, zav, dan, mjesec, god) VALUES (‘Name1’, ‘8.30’, ‘16.30’, ‘1’, ‘1, 2011’);
Error: (1136) Column count doesn’t match value count at row 1

[quote=“escobar”]Hvala na odgovorima.

Polje je varchar 255 a kolacije sam probao mijenjati i ništa. Ne želi mi spremiti niti jedno slovo, samo brojeve sprema? A greška koja se javlja nakon što sam varijable stavio u navodnike po preporuci ein-a je:

Your Query: INSERT INTO evidencija (djel, poc, zav, dan, mjesec, god) VALUES (‘Name1’, ‘8.30’, ‘16.30’, ‘1’, ‘1, 2011’);
Error: (1136) Column count doesn’t match value count at row 1[/quote]

Da, zato što imaš 5 vrijednosti. Nedostaju ti dva apostrofa.

Jao hvala ti trnac već sam lud bio od gledanja koda da uopće nisam zamijetio te navodnike. Sada mi napokon sprema tekstualni dio, ali mi radi dva zapisa u bazu, prvi ovaj sa svim podacima a drugi skroz prazan? Već kad sam mislio da sve radi opet problemi :slight_smile:

vjerovatno ti se php kod izvršava bezuvjetno čim neko dođe na stranicu, ako imam pravi imat ćeš jedan prazan unos kad god neko učita stranicu bez obzira dal što upisuje ili ne

ako u tome problem, riješit možeš tako tako da se php kod izvršava samo ako neko klikne submit

if (isset($_POST[‘submit’]))
{
// php kod
}

Mislim da nije ein, jer vidi gore imam već uvjet if isset. A i skripta se izvršava na klik submit gumb. Kod je identičan onom gore koji sam napisao samo sam dodao navodnike koje si mi prvo ti rekao, a onda one druge kako mi je trnac rekao. Uopće nema logike da radi dva zapisa???

pogledaj kod… ako klikneš submit “pune” ti se varijable, ali mysql query je izvan tog uvjeta, on će se izvršiti bez obzira dal je kliknut submit, a u tom slučaju sve varijable moraju biti prazne

samo bi trebao } koje ispod $zav_rada = $_POST[‘sum2’];, premjestit na kraj ovog koda i mislim da bi radilo

if (isset($_POST[‘submit’]))
{
$day = $_POST[‘dayy’];
$month = $_POST[‘monthh’];
$year = $_POST[‘yearr’];

$person = $_POST[‘emp’];
$poc_rada = $_POST[‘sum1’];
$zav_rada = $_POST[‘sum2’];

}

$query = “INSERT INTO evidencija (djel, poc, zav, dan, mjesec, god)
VALUES (’$person’, ‘$poc_rada’, ‘$zav_rada’, ‘$day’, ‘$month’, ‘$year’);”;

$result = mysql_query($query);

if ($result) echo “

OK!!!

”;
else echo “

Something is wrong!!!

”;

mysql_close();

ein hvala puno! To je to, sve radi kako treba sad napokon :slight_smile:

hvala Vam puno i pozz! :slight_smile:


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja