Jump to content
php.lv forumi

POST data


test2

Recommended Posts

Man ir šāds submits:

<input name="test1" value="test">
<input name="test2" value="test1">
<input name="test3" value="test2">
<input name="test4" value="test">
<textarea name="blaahblah">test</textarea>

 

Un kā tagad varētu uztaisīt datubāzē insertu pieņemot ka katra lauka name ir kkādas tabulas lauks.

 

un apmr šitā instert into table (test1,test2...)VALUES(test,test1...) , bet kā tu uztaisīt automātiski?

Respektīvi man vajag lai šito daļu (test1,test2...)VALUES(test,test1...) ģenerē automātiski, jo sumbits var saturēt mazāk, daudzāk un citādākus laukus...

Link to comment
Share on other sites

Īsti nesapratu kas tur tev ģenerējas automātiski - lauku nosaukumi vai?

Katrā ziņā, kā es to taisītu (esmu šādu kodu vairākkārt jau te rādījis):

$fields = array("test1", "test2", "test3", ...);
$names = array();
$values = array();
foreach ($fields as $field)
{
$names[] = $field;
$values[] = $_POST[$field]; // te neaizmirsti par eskeipošanu
}
$names = implode(",", $names);
$values = implode("','", $values);

mysql_query("INSERT INTO tabula ($names) VALUES ('$values')") or die(mysql_error());

Protams, ja visu lauku nosaukumi ir formā testX, tad nevajag to $fields masīvu, tad vajag foreach ciklu aizstāt ar parastu for ($i=1; $i<..; $i++).

Link to comment
Share on other sites

MAn ir ta ka tie dati (name="xxx") ir uz dullo un es nevaru salikt arrayā, jo viņi var mainīties pēc attiecīgā pieprasījuma. Pagaidām man ir šāds kods:

 

while(list($keys,$values)=each($_POST)){

}

 

ar kā palīdzību varu dabūt pilnīgi visus POST datus , bet nemāku uztaisīt tā lai varētu viņus insertot iekšā, tāpēc tavs variants neder!

Edited by test2
Link to comment
Share on other sites

Mans variants der ļoti labi. Ja tev tiešām jāinserto visi POST lauki:

$names = array();
$values = array();
while (list($name,$value)  = each($_POST))
{
$names[] = $name;
$values[] = $value; // te neaizmirsti par eskeipošanu
}
$names = implode(",", $names);
$values = implode("','", $values);

mysql_query("INSERT INTO tabula ($names) VALUES ('$values')") or die(mysql_error());

 

Prātīgāk gan būtu zināt, kurus precīzi laukus vajag saglabāt un vilkt no $_POST ārā tikai tos.

Link to comment
Share on other sites

Prātīgāk gan būtu zināt, kurus precīzi laukus vajag saglabāt un vilkt no $_POST ārā tikai tos.

Taa arii ir, jo nevajag aizmirst ka SUBMITS ari iesuuta datus kaa POST , taatad sakumaa tapat ir jasavaac/ jatlasa tie dati , piedevam sadi ir grutak parbaudiit vai dotais lauks ir valiids... (tas ir vai ir aizpidiiti obligatie un ar ko vinji aizpildiiti )

 

Bet pec tam gan dotais kods lieliski der...

Link to comment
Share on other sites

A man tagad jautājums ja man ir lauki, kuri iekš šīs te insertošanas ir jāpārvērš pa vienu lauku, tad kā man darīt? Nu piemēram man ir divi input lauki ar name="personas_koda_1_dala" un name="personas_koda_2_dala", tad kā es iekš šī te cikla varu izdarīt lai viņi apvienojas kā viens un viņu vērtības arī kkā salikt un db viņi pievienotos personaskods="personas_koda_1_dala-personas_koda_2_dala".

Link to comment
Share on other sites

Taisi ciklā izņēmumus + ieteiktu lietot html masīvus.

<input type="text" name="data[test1]" value="" />
<input type="text" name="data[test2]" value="" />
<input type="text" name="data[test3]" value="" />
<input type="text" name="pk[]" value="" /><input type="text" name="pk[]" value="" />

$fields=array();
$values=array();
foreach($_POST['data'] as $key=>$value){
 $fields[]=$key;
 $values[]=$value;
}
$fields[]="personas_kods";
$values[]=implode("-",$_POST['pk']);

Šis ir tikai piemērs, bet idejai vajadzētu būt skaidrai.

Link to comment
Share on other sites

Ok varbūt kāds uzreiz var palīdzēt ar pavisam citu problēmu? Negribu vnk veidot jaunu topiku tādam mazam skriptam:

 

<?
if(!empty($_FILES[''])){
$allowed_filetypes = array('.jpg','.JPG','.JPGE'); 
$save_path="images/";
$pics=array();
$uploaded_files = array();
$uploaded_files = $_FILES['pics'];
if(count($uploaded_files) > 0) {
foreach($uploaded_files as $uf) {
if(!empty($uf['name'])){
$ext = substr($uf['name'], strpos($uf['name'],'.'), strlen($uf['name'])-1);
if (!in_array($ext,$allowed_filetypes)) {
$error=3;
}else{
$picname=md5(rand()*time());
move_uploaded_file($uf['name']['tmp_name'],$save_path.$picname.$ext);
$pics[]=$picname.$ext;	
}
}else{
echo "yoo";
}
}
}
?>

 

Jautājums kāpēc šitais: if(!empty($uf['name'])){, vislaik izpildas kā false un man ar katru bildi izvadas yoo, kam pēc būtības nevajadzētu būt, jo bilde ir ieveitota un nevar būt tukša!

Edited by test2
Link to comment
Share on other sites

neredzu jēgu šai rindiņai

 

$uploaded_files = $_FILES['pics'];

 

man liekas ka šitā vajag, pārbaudījis neesmu ...

foreach($_FILES['pics'] as $uf) {

if(!empty($uf['pics']['name'])){

...

}

}

 

man ir šādi:

 

			for($i=0;$i<count($_FILES['bilde']['error']);$i++)
		{
			$b_size = $_FILES['bilde']['size'][$i];
			if ($_FILES['bilde']['error'][$i] == 0)
			{
				//daraam kas jaadara
			}
		}//end for($i=0;$i<count($_FILES['bilde']);$i++)

Link to comment
Share on other sites

Ja forma izskatās kaut kā šādi

<input type="file" name="pics[]" />
<input type="file" name="pics[]" />
<input type="file" name="pics[]" />

Tad nepareizs ir tikai pirmais if's un move_uploaded_file() vietas.

 

Debugo skatoties print_r($_FILES) un ciklā print_r($uf)

Link to comment
Share on other sites

Lab ejam taalaak, man tagad vajag izdariit shitaa:

sanjemam datus no selecta:

 

Abols:".$row['abols'].", bet man to abols vajag dabuut no citas tabulas, respektivi no tas kuras selektoju infu ir

abols

garhiigs

riebiiigs

norm

Bet vienaa citaa tabulaa ir

type|name

abols Abols

 

Un man vajag izvilkt abola name plus vinjam vel vertiibu, es shitaadu prijomu vnk nespeeju izdomaat, luudzu peec iespeejas aatraak paliidzeet!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...