problema la un insert in baza de date

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

Avatar utilizator
botavlad
Average Member
Mesaje: 101
Membru din: Vin Mai 13, 2011 8:21 pm
Contact:

problema la un insert in baza de date

Mesajde botavlad » Joi Iun 21, 2012 12:07 pm

Buna ziua !
Am intalnit azi o problema si nu stiu cum sa o rezolv spre sa ma puteti ajuta dumneavoastra .
am urmatorul cod

Cod: Selectaţi tot

$sql = "Insert INTO deviz (Nume_deviz,Denumire,Cantitate,Pretul)  select nume,cantitate,pret from manopera where nume= '$val1'";   


Daca i sterg din acest cod Nume_deviz merge perfect da eu vreau ca la nume sa introduc eu un nume oarecare sa ziceam Aurel . cum pot sa fac eu am incearcat asa da nu merge

Cod: Selectaţi tot

$sql = "Insert INTO deviz (Nume_deviz,Denumire,Cantitate,Pretul)  Aurel , select nume,cantitate,pret from manopera where nume= '$val1'";   

Daca imi puteti zice cum se face



marianmp
Average Member
Mesaje: 190
Membru din: Mie Noi 09, 2011 1:12 pm
Localitate: https://micul-programator.ro
Contact:

Mesajde marianmp » Joi Iun 21, 2012 12:33 pm

$sql = "Insert INTO deviz (Nume_deviz,Denumire,Cantitate,Pretul) select 'Aurel',cantitate,pret from manopera where nume= '$val1'";

incearca asa

Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Joi Iun 21, 2012 12:41 pm

Cand faci o inserare in tabel, numarul de campuri in care inserezi trebuie sa corespunda cu numarul de valori pe care le pasezi.

In cazul tau initial

Cod: Selectaţi tot

$sql = "Insert INTO deviz (Nume_deviz,Denumire,Cantitate,Pretul)  select nume,cantitate,pret from manopera where nume= '$val1'";

declari 4 campuri (Nume_deviz, Denumire, Cantitate si Pretul) dar trimiti doar 3 valori (nume, cantitate si pret) - de aceea crapa.

Varianta a doua e bine gandita dar ai gresit ceva: Aurel este interpretat ca un nume de camp, si nu exista in tabela `manopera` - drept urmare din nou crapa. Ca sa il declari ca o valoare, il pui intre ghilimele sau apostroafe ("Aurel" respectiv 'Aurel').

Solutia oferita de micul-programator.ro ar trebui sa functioneze cum doresti tu.[/b]

badtiger
Senior Member
Mesaje: 598
Membru din: Vin Noi 03, 2006 7:54 pm
Contact:

Mesajde badtiger » Joi Iun 21, 2012 12:41 pm

inainte de a face o aplicatie de creare devize iti recomand sa citesti putin legislatia, sa stii pe dinafara formularele F, C si care mai sunt si sa studiezi cele de la deviz-online si care mai sunt....

Daca nu faci ceva mai bun si neaparat corect nu o sa foloseasca nimeni aplicatia ta.... treaba cu devizele este una foarte serioasa si nimeni nu se joaca

Avatar utilizator
botavlad
Average Member
Mesaje: 101
Membru din: Vin Mai 13, 2011 8:21 pm
Contact:

Mesajde botavlad » Joi Iun 21, 2012 12:58 pm

multumesc merge asa cum mi-ati zis !

Mai am o intrebare

Am dexemplu asa
<input type="text" name="nume"/>
<input type="submit" name="adauga_nume"/>


Cum as putea sa fac in asa fel cand introduc numlele in inputu de sus sa mil pastreze intro variabila pana introduc alt nume? se poate asa ceva ?
Eu am incercat asa si sa iau numele cu $_post da nu tare mia iesit !

Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Joi Iun 21, 2012 2:03 pm

Poti sa ti-l pastrezi in sesiune la submit.

Cod: Selectaţi tot

$_SESSION['nume'] = $_POST['nume'];


Iar in form-ul tau ii iei valoarea din sesiune si o afisezi:

Cod: Selectaţi tot

<input type="text" name="nume" value="<?php if (isset($_SESSION['nume'])) echo htmlentities($_SESSION['nume']) ?>"/>


Nu uita sa apelezi session_start() la inceputul ambelor script-uri pentru a avea acces la variabilele sesiunii.

marianmp
Average Member
Mesaje: 190
Membru din: Mie Noi 09, 2011 1:12 pm
Localitate: https://micul-programator.ro
Contact:

Mesajde marianmp » Joi Iun 21, 2012 7:11 pm

botavlad scrie:multumesc merge asa cum mi-ati zis !

Mai am o intrebare

Am dexemplu asa
<input type="text" name="nume"/>
<input type="submit" name="adauga_nume"/>


Cum as putea sa fac in asa fel cand introduc numlele in inputu de sus sa mil pastreze intro variabila pana introduc alt nume? se poate asa ceva ?
Eu am incercat asa si sa iau numele cu $_post da nu tare mia iesit !


poti folosi metoda lui mihai sau poti sa salvezi datele in alt array de exemplu

$date=array();
$date['nume']=(isset($_POST['nume'])?trim(strip_xss($_POST['nume'])):'';

apoi in input ai
<input type="text" name="nume" value="{$date['nume']}"/>
<input type="submit" name="adauga_nume"/>

functia strip_xss o gasesti la mine : http://micul-programator.ro/index.php?p=protectia-xss si iti ofera protectie la xss


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 48 vizitatori