problema inserare de 2 ori aeleasi date[rezolvat]

Întrebări legate de conectarea la baze de date MySQL prin intermediul PHP

Moderatori: Zamolxe, Moderatori

ndianaz
Junior Member
Mesaje: 43
Membru din: Sâm Iun 20, 2009 5:01 pm
Localitate: Craiova
Contact:

problema inserare de 2 ori aeleasi date[rezolvat]

Mesajde ndianaz » Joi Iul 02, 2009 8:18 pm

Ultima oară modificat Vin Iul 03, 2009 7:51 pm de către ndianaz, modificat de 2 ori în total.



LXS
Senior Member
Mesaje: 375
Membru din: Dum Oct 05, 2008 8:34 pm
Localitate: Timisoara
Contact:

Mesajde LXS » Joi Iul 02, 2009 8:27 pm

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!

ndianaz
Junior Member
Mesaje: 43
Membru din: Sâm Iun 20, 2009 5:01 pm
Localitate: Craiova
Contact:

Mesajde ndianaz » Joi Iul 02, 2009 8:36 pm

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

ndianaz
Junior Member
Mesaje: 43
Membru din: Sâm Iun 20, 2009 5:01 pm
Localitate: Craiova
Contact:

Mesajde ndianaz » Joi Iul 02, 2009 11:33 pm

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

lorand1
Average Member
Mesaje: 108
Membru din: Vin Apr 25, 2008 7:44 pm
Localitate: Baia Mare

Mesajde lorand1 » Joi Iul 02, 2009 11:41 pm

Oamenii normali nu stiu ca totul e posibil. David Rousset
Nu am vreo insusire speciala, ci sunt numai un pasionat curios. Albert Einstein

ndianaz
Junior Member
Mesaje: 43
Membru din: Sâm Iun 20, 2009 5:01 pm
Localitate: Craiova
Contact:

Mesajde ndianaz » Joi Iul 02, 2009 11:48 pm

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

lorand1
Average Member
Mesaje: 108
Membru din: Vin Apr 25, 2008 7:44 pm
Localitate: Baia Mare

Mesajde lorand1 » Vin Iul 03, 2009 12:06 am

Oamenii normali nu stiu ca totul e posibil. David Rousset

Nu am vreo insusire speciala, ci sunt numai un pasionat curios. Albert Einstein

preda.vlad
Average Member
Mesaje: 192
Membru din: Vin Mar 20, 2009 4:56 pm
Contact:

Mesajde preda.vlad » Vin Iul 03, 2009 12:06 am


ndianaz
Junior Member
Mesaje: 43
Membru din: Sâm Iun 20, 2009 5:01 pm
Localitate: Craiova
Contact:

Mesajde ndianaz » Vin Iul 03, 2009 1:18 am


Avatar utilizator
Ctek
Senior Member
Mesaje: 310
Membru din: Dum Oct 05, 2008 12:05 am
Contact:

Mesajde Ctek » Vin Iul 03, 2009 12:41 pm


ndianaz
Junior Member
Mesaje: 43
Membru din: Sâm Iun 20, 2009 5:01 pm
Localitate: Craiova
Contact:

Mesajde ndianaz » Vin Iul 03, 2009 1:46 pm

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:

Avatar utilizator
Amenthes
Senior Member
Mesaje: 1370
Membru din: Lun Dec 12, 2005 8:00 am
Contact:

Mesajde Amenthes » Vin Iul 03, 2009 2:03 pm

I'm under construction |

ndianaz
Junior Member
Mesaje: 43
Membru din: Sâm Iun 20, 2009 5:01 pm
Localitate: Craiova
Contact:

Mesajde ndianaz » Vin Iul 03, 2009 3:15 pm


Avatar utilizator
Amenthes
Senior Member
Mesaje: 1370
Membru din: Lun Dec 12, 2005 8:00 am
Contact:

Mesajde Amenthes » Vin Iul 03, 2009 3:40 pm

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.
I'm under construction |

Avatar utilizator
Ctek
Senior Member
Mesaje: 310
Membru din: Dum Oct 05, 2008 12:05 am
Contact:

Mesajde Ctek » Vin Iul 03, 2009 4:28 pm

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


Înapoi la “MySQL”

Cine este conectat

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