[ batasson @ 08.04.2011. 00:30 ] @
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.
[ ivan.a @ 08.04.2011. 00:44 ] @
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...
         }
[ batasson @ 08.04.2011. 09:32 ] @
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!
[ Br@nkoR @ 08.04.2011. 09:50 ] @
Citat:
batasson:
Code:

if ($row < 1) {



Citat:
ivan.a:
Code:

if (mysql_num_rows($result) >=1) {
[ batasson @ 08.04.2011. 12:45 ] @
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.
[ dakipro @ 08.04.2011. 12:53 ] @
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
[ batasson @ 08.04.2011. 13:20 ] @
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?
[ Br@nkoR @ 08.04.2011. 13:59 ] @
Odradi echo upita u PHP-u, pa ih izvrši u phpMyAdmin-u, vraća li šta mysql_error() za prvi upit.
[ Br@nkoR @ 08.04.2011. 14:01 ] @
Mada sada vidim u prvom upitu
Code:
FROM klijenti


A ispod
Code:
INSERT INTO klijent 
[ batasson @ 08.04.2011. 14:44 ] @
HVALA PUNO Br@nkoR!

Sad radi sve kako treba.

Hvala i ostalim ana pomoci.