Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 10 odgovora
  • 4.475 pregleda

Najnovija ↓

Provera da li postoji zapis u bazi 08.04.2011. u 01:30 · pre 189 meseci #1
Pozdrav,

Potrebna mi je pomoc. Treba da napisem kod koji ce unositi podatke u tabelu. Ali pre nego sto unese podatke, treba da se izvrsi provera da li ti podaci vec postoje. Evo kako sam ja to pokusao da uradim, pa posto ne funkcionise, ako neko zna da me uputi na ispravan nacin.

Primer:
Tabele: klijent(klijentID, ime) i racun(racunID, kolicina, klijentID)

Code:

$ime = $_POST['txtIme'];
$kolicina = $_POST['txtKolicina'];

$query = "SELECT kljentID FROM klijent";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
$ID = $row['klijentID'];

if ($row < 1) {
$query = "INSERT INTO klijent(ime) VALUES ('{$ime}')";
mysql_query($query);

$query = "INSERT INTO racun(kolicina, klijentID)
            SELECT '{$kolicina}', klijentID    
            FROM klijent 
            WHERE klijentID = (SELECT MAX(klijentID) FROM klijent)";
mysql_query($query);

} else {
$query = "INSERT INTO racun(kolicina, klijentID)
            VALUES ('{$kolicina}', '{$ID}')";
mysql_query($query);


Evo ovo je taj kod, ali mi uvek pravi i novi zapis u tabeli klijent, cak i kad postoji isti zapis u tabeli klijent.
Re: Provera da li postoji zapis u bazi 08.04.2011. u 01:44 · pre 189 meseci #2
Tvoj upit selektuje sve unose jer ti fali WHERE.

Code:
$query = "SELECT kljentID FROM klijent WHERE ime = '".$ime."' ";
$result = mysql_query($query);

if (mysql_num_rows($result) >=1) {
//UNOS POSTOJI
} else {
         //UNOS NE POSTOJI - INSERT...
         }
Potpis
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
Re: Provera da li postoji zapis u bazi 08.04.2011. u 10:32 · pre 189 meseci #3
Citat:
ivan.a: Tvoj upit selektuje sve unose jer ti fali WHERE.

Code:
$query = "SELECT kljentID FROM klijent WHERE ime = '".$ime."' ";
$result = mysql_query($query);

if (mysql_num_rows($result) >=1) {
//UNOS POSTOJI
} else {
         //UNOS NE POSTOJI - INSERT...
         }


"Lapsus", zaboravio sam da napisem where, ali i sa where nece da uradi to sto mi treba. Evo da pojasnim malo sta zelim da uradi:

Treba da se unesu podaci o klijentu i racunu (iz dva tekstualna polja). Pre unosa podataka u bazu, treba da se izvrsi provera da li ime tog klijenta vec postoji u bazi, ako postoji, da se iskoristi njegov id i unese u tabelu racun zajedno sa kolicinom kao novi zapis. Ako klijent ne postoji u bazi, onda treba da se unese i njegovo ime u tabelu klijent i da se u tabeli racun unese kolicina i klijentID poslednjeg kreiranog klijenta (tj. ime iz tekstualnog polja).

Hvala!
Re: Provera da li postoji zapis u bazi 08.04.2011. u 13:45 · pre 189 meseci #5
Nece. Evo ga konkretan zadatak koji resavam. Mozda sam nesto prevideo, ali ne mogu da uocim gresku.

Code:

$ime = $_POST['txtIme'];
$prezime = $_POST['txtPrezime'];
$telefon = $_POST['txtTelefon'];
$opis_kvara = $_POST['txtareaOpisKvara'];
$napomena = $_POST['txtareaNapomena'];
$datum_prijema = $_POST['txtDatumPrijema'];

$query = "SELECT klijentID FROM klijenti WHERE ime = '{$ime}' AND prezime = '{$prezime}' AND telefon = '{$telefon}'";
$result = mysql_query($query, $connection);
        
$row = mysql_fetch_assoc($result);
$ID = $row['klijentID'];
        
if(mysql_num_rows($result) >= 1) {
    $query1 = "INSERT INTO racunar (opis_kvara, napomena, klijentID)
               VALUES ('{$opis_kvara}', '{$napomena}', '{$ID}')";
    mysql_query($query1, $connection);
            
    $query2 = "INSERT INTO nalog (dat_prijema, racunarID)
               SELECT '{$datum_prijema}', racunarID
               FROM racunar
               WHERE racunarID = (SELECT MAX(racunarID) FROM racunar)";
    mysql_query($query2, $connection);
            
    header("location:nalog_kreiran.php");                    
} else {                        
    $query1 = "INSERT INTO klijent (ime, prezime, telefon)
               VALUES ('{$ime}', '{$prezime}', '{$telefon}')";
    mysql_query($query1, $connection);
            
    $query2 = "INSERT INTO racunar (opis_kvara, napomena, klijentID)
               SELECT '{$opis_kvara}', '{$napomena}', klijentID
               FROM klijent
               WHERE klijentID = (SELECT MAX(klijentID) FROM klijent)";
    mysql_query($query2, $connection);
            
    $query3 = "INSERT INTO nalog (dat_prijema, racunarID)
               SELECT '{$datum_prijema}', racunarID
               FROM racunar
               WHERE racunarID = (SELECT MAX(racunarID) FROM racunar)";
    mysql_query($query3, $connection);
            
    header("location:nalog_kreiran.php");
}


Konstantno mi pravi novi zapis u tabeli klijent iako vec postoji zapis sa istim imenom, prezimenom i brojem telefona.
Re: Provera da li postoji zapis u bazi 08.04.2011. u 13:53 · pre 189 meseci #6
dampuj ceo post, dampuj SQL pa vidi razliku i vidi sta trazi, i uporedi sta ima u bazi sve od podataka, tj rucno izvrsi quoery u phpamdinu
Znaci red po red, dump po damup, promenjiva po promenjiva, i videces negde sta ne odgovara ocekivanom stanju
Potpis
http://norway.dakipro.com/
Re: Provera da li postoji zapis u bazi 08.04.2011. u 14:20 · pre 189 meseci #7
Ok. Upite mi nije problem da proverim u phpMyAdmin-u, ali kako da ubacim tamo php kod?
Ili kako da ubacim upit a da vrednosti kao sto su ime, prezime i telefon budu promenljive?
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme