Šta je novo?

PHP - Pomoc oko INSERT upita?

maxa007

Cenjen
Učlanjen(a)
29.08.2012
Poruke
459
Poena
180
Potrebna mi je pomoc oko sledeceg upita:

$polje1= $_POST['polje1'];
$polje2= $_POST['polje2'];
$polje2= $_POST['polje3'];
itd.....

$columns = array();
$result = mysql_query("SELECT neko_polje FROM tabela1") or die(mysql_error());
/// neko_polje ima isti naziv kao ime inputa i ime variable za taj input odn. polje u tabeli se zove aca i variabla $aca= $_POST['aca'];
while ($row = mysql_fetch_array($result)) {
$columns[] = $row[0];
}

$keys = array();
$values = array();

foreach ($columns as $column) {
$value = clean($_POST[$column]);
$keys[] = "`{$column}`";
$values[] = "'{$value}'";
}

$upis_u_bazu = mysql_query('INSERT INTO `tabela2` ' . '(' . implode(', ', $keys) . ') ' . 'VALUES(' . implode(', ', $values) . ')');

Kao sto vidite kod sam uzima podatke iz baze i pravi variable na osnovu toga i to sve radi i funkcionise ( ima dosta variabla koja treba napraviti na osnovu forme na stranici koja broji preko 100 input polja , pa je mnogo lakse napraviti kod koji sve to radi sam ).
Konkretno meni je potrebna pomoc oko INSERT upita, kako ubaciti $polje1, $polje 2... i njihove vrednosti manuelno ( odn. prosiriti kod ) u sam upit odn da bude:
$upis_u_bazu = mysql_query('INSERT INTO `tabela2` ' . '( polje1, polje2, polje 3, ' . implode(', ', $keys) . ') ' . 'VALUES( $polje1, $polje2, $polje3, ' . implode(', ', $values) . ')'); Uvek dobijam sintaksicku gresku sta god da probam...

Poznajem osnove php-a, nisam strucnjak i svu pomoc pronalazim preko google, ali u ovom sam bas zapeo i potrebna mi je pomoc ( verujem da su u pitanju samo kombinacija tacaka i navodnika ...)
Hvala unapreed
 
Poslednja izmena:
a sto jednostavno pre
Kod:
$upis_u_bazu = mysql_query('INSERT INTO `tabela2` ' . '(' . implode(', ', $keys) . ') ' . 'VALUES(' . implode(', ', $values) . ')');
ne uradis
Kod:
echo 'INSERT INTO `tabela2` ' . '(' . implode(', ', $keys) . ') ' . 'VALUES(' . implode(', ', $values) . ')';
jer ne vidimo sta ti saljes i sta rade neke stvari posto nisi stavio citav kod. Kada dobijes rezultat ovoga sve ce ti biti jasno - ako nije dodji pa copy/paste ovde.
 
Pa pusti ga prvo na ovome osnovnom da nauci na greskama, pa mu onda to daj tek kada ispravi ovu. Ovako ce preci preko ovoga a nece znati do cega je bilo. Ja pretpostvaljam sta je, ali sam mu nagovestio kako na "seljacki" nacin da to otkrije, pa ce da shvati gde je pogresio.
 
Skapirao sam ( valjda ), bitno je samo da funkcionise...Znam da nije sintaksicki ispravno ali je bitno da deluje:

Kod:
$upis_u_bazu= mysql_query('INSERT INTO `neka_tabela` ' . '(`musterija`,`datum`, `vreme`, `ip`, `napomena`, ' . implode(', ', $keys) . ') 
                         VALUES(" '.$musterija.' ", " '.$datum.' ", " '.$vreme.' ", " '.$ip.' ", " '.$napomena.' ", ' . implode(', ', $values) . ')');

Hvala na savetima i odgovorima.
 
Poslednja izmena:
Nauci sta znaci "sintaksa" pa onda nastavi sa programiranjem, inace neces daleko stici...

Pozdrav
 
Sintaksa i citljiv kod su dva razlicita pojma. Sintaksa mu je ok cim mu radi kod.
mysql_query f-ja prima kao parametar string, a php ima dosta fora pri radi sa stringovima.
Nema potrebe da spajas dve konstante sa tackom, spajaj samo sa promenjivom ili f-jom koja vraca string (kao implode), takodje mozes da izbegnes konkatenaciju sa promenjivom ako koristis double quote (npr. "$musterija"). I pogledaj kako radi f-ja sprintf.
Za sql generalno ne mora da se koristi apostrofa zna on sam da se snadje i bez njega, jedino ako se koristi ime koje sadrzi razmak (npr. `neka tabela`). I naravno koristi pdo (koji moze da ti vrati rezultat upita u niz, i prepare-uje query)
 
Nauci sta znaci "sintaksa" pa onda nastavi sa programiranjem, inace neces daleko stici...

Pozdrav

Pa prvo ti moras da naucis sta je sintaksa ocigledno. Moze njemu biti sintaksa kakva god, ali ako program radi ona je ispravna. To sto se ni sam kasnije nece znati snaci u tome sto je pisao to je druga stvar.
 
Kad neko tvrdi da mu sintaksno neispravan iskaz radi, ocigledno je da mu je nepoznato znacenje reci "sintaksa".
Dakle, knjigu u sake...
Pozdrav
 
Kad neko tvrdi da mu sintaksno neispravan iskaz radi, ocigledno je da mu je nepoznato znacenje reci "sintaksa".
Dakle, knjigu u sake...
Pozdrav

Ko je napisao "neispravna" sintaksa? Napisao sam "kakva god" sto je potpuno druga stvar, pod to "kakva god" moze biti hiljadu karakteristika tipa nelogicna, nerazumna, prezamrsena itd. ali i kao takva moze opet da radi.

Pozdrav i tebi ;)
 
Nazad
Vrh Dno