Pagina 1 din 2

problema inserare de 2 ori aeleasi date[rezolvat]

Scris: Joi Iul 02, 2009 8:18 pm
de ndianaz

Scris: Joi Iul 02, 2009 8:27 pm
de LXS
Faci un UNIQUE KEY pe fiecare coloana, sau pe o coloana care nu vrei sa se mai repete, mai usor poti sa verifici din PHP cu o conditie daca mai exista acea valoare in baza de date iar daca ea mai exista sa nu o mai reintroduca!

Scris: Joi Iul 02, 2009 8:36 pm
de ndianaz
cred ca nu ma exprimai corect, nu-mi dubleaza id-ul, restul valorilor se dubleaza adica ceva de gen:

id nume_producator prod_ap prodr_roboti adresa_web obs
18 prod 1 da nu www nu
19 prod 1 da nu www nu

la o singura inserare

Scris: Joi Iul 02, 2009 11:33 pm
de ndianaz
cred ca nu ma exprimai corect, nu-mi dubleaza id-ul, restul valorilor se dubleaza adica ceva de gen:

id nume_producator prod_ap prodr_roboti adresa_web obs
18 prod 1 da nu www nu
19 prod 1 da nu www nu

la o singura inserare

Scris: Joi Iul 02, 2009 11:41 pm
de lorand1

Scris: Joi Iul 02, 2009 11:48 pm
de ndianaz
lorand1, din mysql insertia o fac asa cum ai scris si tu, daca specific id-ul imi insereaza o singura line, daca nu-l specific imi insereaza 2 linii identice, dar cu id diferit. In php codul arata astfel:

$id = $_POST['id'];
$name = $_POST['nume_producator'];
$prod_ap= $_POST['producator_ap'];
$prod_roboti = $_POST['producator_roboti'];
$web = $_POST['adresa_web'];
$observes = $_POST['observatii'];

$query = "INSERT INTO producatori (id, nume_producator, producator_ap, producator_roboti, adresa_web, observatii)
VALUES ('$id','$name', '$prod_ap', '$prod_roboti', '$web','$observes')";

cu valorile specifice de tip input dintr-o pagina html

Scris: Vin Iul 03, 2009 12:06 am
de lorand1

Scris: Vin Iul 03, 2009 12:06 am
de preda.vlad

Scris: Vin Iul 03, 2009 1:18 am
de ndianaz

Scris: Vin Iul 03, 2009 12:41 pm
de Ctek

Scris: Vin Iul 03, 2009 1:46 pm
de ndianaz
Acesta este tot scriptul:

<?php
$db = "ap_si_roboti";
$host = "localhost";
$user = "root";
$pass = "diana";
$link = mysql_connect($host, $user, $pass);
if ($link == null) {
print "EROARE la conexiune<br/>".mysql_error();
die();
}
else {
print "Conexiunea a reusit<br/>";
if (mysql_select_db($db, $link)) {
print "Selectia bazei de date ".$db. " a reusit<br/>";
}
else {
print "EROARE de selectie<br/>".mysql_error();
die();
}
}
$name = $_POST['nume_producator'];
$prod_ap= $_POST['producator_ap'];
$prod_roboti = $_POST['producator_roboti'];
$web = $_POST['adresa_web'];
$observes = $_POST['observatii'];

$query = mysql_query(SELECT * FROM producatori WHERE nume_producator = '$name' AND producator_ap ='$prod_ap' AND producator_roboti='$prod_roboti' AND adresa_web='$web' observatii='$observes' ) or die (mysql_error());

if (mysql_num_rows($query) == 0)
{
$query = mysql_query("INSERT INTO producatori ( nume_producator, producator_ap, producator_roboti, adresa_web, observatii) VALUES ('$name', '$prod_ap', '$prod_roboti', '$web','$observes')") or die mysql_error();
}
mysql_query($query);
mysql_close();

?>

nu-mi dau seama care e problema :( :scratch:

Scris: Vin Iul 03, 2009 2:03 pm
de Amenthes

Scris: Vin Iul 03, 2009 3:15 pm
de ndianaz

Scris: Vin Iul 03, 2009 3:40 pm
de Amenthes
Trebuie sa mai ai ceva in plus. Daca nu, e voodoo programming. Nu ai un
fisier HTML cu un formular (FORM), care FORM are un atribut ACTION in care
e adresa catre scriptul de l-ai postat mai sus? Poti sa postezi si partea aceea?

LATER EDIT.

Sper sa nu te deranjeze, dar daca ai spus ca esti la inceput cu PHP-ul, m-am
gandit sa iti rescriu scriptul intr-un mod care mi se pare mie mai organizat.
Scriptul nu e ideal. Se poate si mai bine, dar nu am vrut sa fie prea greu.

Nu il postez aici, l-am pus la adresa asta:

http://gist.github.com/140094

Sper sa te ajute putin, iar daca nu intelegi, poti sa ma intrebi. A, da. Cand il
citesti, citeste-l de jos in sus, nu de sus in jos.

Scris: Vin Iul 03, 2009 4:28 pm
de Ctek
iti introduce de doua ori pentru ca iti executi query-ul de doua ori


odata cand il atribui aici:

$query = mysql_query("INSERT INTO producatori ( nume_producator, producator_ap, producator_roboti, adresa_web, observatii) VALUES ('$name', '$prod_ap', '$prod_roboti', '$web','$observes')") or die mysql_error();

si apoi cu

penultima linie
mysql_query($query);


la atribuirea de mai sus trebuia sa ai asa:

$query = "INSERT INTO producatori ( nume_producator, producator_ap, producator_roboti, adresa_web, observatii) VALUES ('$name', '$prod_ap', '$prod_roboti', '$web','$observes')";


si abia apoi il poti executa cu:

mysql_query($query);

Sper ca ai inteles.

PS : la atribuire $query = mysql_query..... $query primeste o functie si ca urmare se executa :)

@ Amenthes, frumos scriptul, am aruncat si eu o privire :)

Bafta