Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc oko PHP skripte - selektovanje iz vise tabela ?

[es] :: PHP :: PHP za početnike :: Pomoc oko PHP skripte - selektovanje iz vise tabela ?

[ Pregleda: 5153 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Gost




Profil

icon Pomoc oko PHP skripte - selektovanje iz vise tabela ?16.12.2009. u 00:52 - pre 174 meseci
Imam bazu koja se sastoji od 4 tabele:


studenti
profesori
ocene
predmeti


Kada napravim query koji iz pomenutih tabela izvlaci na primer:

studenti.brindeks = broj indeksa iz tabele STUDENTI,
studenti.ime = ime studenta iz tabele STUDENTI,
studenti.prezime = prezime studenta iz tabele STUDENTI,
ocene.ocena = ocenaiz tabele OCENE,
predmeti.naziv = naziv predmeta iz tabele PREDMETI,
profesori.prezime = prezime profesora iz tabele PROFESORI,
profesori.ime = ime profesora iz tabele PROFESORI


Citat:
SELECT
studenti.brindeks,
studenti.ime,
studenti.prezime,
ocene.ocena,
predmeti.naziv,
profesori.prezime,
profesori.ime
FROM
studenti
Inner Join ocene ON studenti.brindeks = ocene.brindeks
Inner Join predmeti ON predmeti.predid = ocene.predid
Inner Join profesori ON profesori.profid = predmeti.profid



to u MySQL-u radi i dobijam rezultat.
Kada taj upi pokusam da integrisem u PHP ne znam kako da na ekranu dobijem rezultat jer ako stavim:


Code:
// 4. Koriscenje povratnih informacija
    while ($row = mysql_fetch_array($result)) {
    echo $row["brindeks"].". ".$row['ime']." ".$row["prezime"]." - ".$row["naziv"]." ".$row["ocena"]."<br/>";



on mi umesto imena studenta izbaci ime profesora. Kako da mu kazem da mi prikaze ime iz tebele studenti?
Kako da umesto ovog $row['ime']. napisem sintaksu $row['student.ime']. tj da mu kazem da izvuce ime studenta iz tabele student ???


Kompletan kod koji mi izbacuje pogresno izgleda ovako :



Code:
<?php
// Pet koraka za integraciju PHP-a i baze podataka:

//1. Kreiranje konekcije
    $connection = mysql_connect("localhost","root","");
    if (!$connection) {
        die("Database connection failed: ".mysql_error());
    }


// 2. Selektovanje baze podataka
    $db_select = mysql_select_db("moja_baza",$connection);
    if (!$db_select) {
    die("Database selection failed: ".mysql_error());
    }
?>

<html>
<head><title>Baze Podataka</title></head>
<body>
<?php


// 3. Postavljanje upita
    $result = mysql_query("SELECT studenti.brindeks, studenti.ime, studenti.prezime, ocene.ocena, predmeti.naziv, profesori.prezime, profesori.ime FROM studenti Inner Join ocene ON studenti.brindeks = ocene.brindeks Inner Join predmeti ON predmeti.predid = ocene.predid Inner Join profesori ON profesori.profid = predmeti.profid", $connection);
    if (!$result) {
        die("Database selection failed: ".mysql_error());
    }


// 4. Koriscenje povratnih informacija
    while ($row = mysql_fetch_array($result)) {
    echo $row["brindeks"].". ".$row['ime']." ".$row["prezime"]." - ".$row["naziv"]." ".$row["ocena"]."<br/>";
    }
?>

</body>
</html>

<?php
// 5. Raskidanje konekcije
    mysql_close($connection);
    ?>
 
Odgovor na temu

w3bl0rd
Varaždin, Hrvatska

Član broj: 82659
Poruke: 380
213.147.114.*



+26 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?16.12.2009. u 06:36 - pre 174 meseci
koristi as

SELECT
studenti.brindeks as BrojIndexa,
studenti.ime as ImeStudenta,
studenti.prezime as PrezimeStudenta,
...

pa onda kasnije imaš $row["ImeStudenta"] ...
there's no place like 127.0.0.1
 
Odgovor na temu

vatri
Banja Luka, RS

Član broj: 68697
Poruke: 1006
*.dial-up.dsl.siol.net.



+18 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?16.12.2009. u 08:33 - pre 174 meseci
Ili mozes koristiti integer kao kljuc $row array-a:

Onda su vrijednosti sledece:

studenti.brindeks je $row[0]
studenti.ime je $row[1]
studenti.prezime je $row[2] i tako dalje
 
Odgovor na temu

Gost




Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?16.12.2009. u 21:57 - pre 174 meseci
Sve je ovo lepo, hvala ... ali kad bi znao gde ovo da ubacim :)
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.ptt.rs.



+257 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?16.12.2009. u 22:24 - pre 174 meseci
^^ Citaj malo php kod koji si ostavio i sve ce ti se kas'ti.

Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

grozda

Član broj: 738
Poruke: 510
93.87.167.*



+6 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?16.12.2009. u 22:54 - pre 174 meseci
Uspelo je ... radi ... HVALA !!!

Jos jedno pocetnicko pitanje ...

Napravio sam jednostavnu HTM stranu sa formom u kojoj treba upisati samo broj indeksa.

Code:
<head>
<title>Unesite broj indeksa</title>
</head>

<body>

<p><font face="Verdana">Unesite broj indeksa:<br>
&nbsp;</font></p>
<form method="POST" action="student.php">
    <p><font face="Verdana"><input type="text" name="T1" size="15"></font></p>
    <p><font face="Verdana"><input type="submit" value="Posalji" name="B1"><input type="reset" value="Obrisi" name="B2"></font></p>
</form>

</body>

</html>


kada se upise broj indeksa u toj formi u polju T1 (broj indeksa) on to treba proslediti PHP strani student.php i u queriju koji izgleda ovako:


Code:

// 3. Postavljanje upita
    $result = mysql_query("SELECT studenti.brindeks, studenti.ime as
    ImeStudenta, studenti.prezime as PrezimeStudenta, ocene.ocena,
    predmeti.naziv, profesori.prezime, profesori.ime FROM studenti Inner Join
    ocene ON studenti.brindeks = ocene.brindeks Inner Join predmeti ON
    predmeti.predid = ocene.predid Inner Join profesori ON profesori.profid =
    predmeti.profid WHERE studenti.brindeks =  '001'", $connection);
        if (!$result) {
            die("Database selection failed: ".mysql_error());
        }


    // 4. Koriscenje povratnih informacija
        while ($row = mysql_fetch_array($result)) {
    echo $row["brindeks"].". ".$row['ImeStudenta']." ".$row["PrezimeStudenta"]."
    - ".$row["naziv"]." = ".$row["ocena"]."<br/>";
        }
    ?>



i umesto ovog WHERE studenti.brindeks = '001'" da upise sadrzaj iz polja T1, kako bi izbacio podatke za tog studenta.
Sta treba dodati strani student.php kako bi uvatio ovo sto je upisano u polju T1 i izbacio podatke?
Kako da mu kazem da umesto onog 001 u queriju upise ono sto je uneseno u formi u polju T1 ?


(~ ~)( o o )(~ o)
-(_)---(_)---(_)-

 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.adsl.eunet.rs.

Sajt: www.vasictech.net


+1 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?16.12.2009. u 23:45 - pre 174 meseci
Code:
WHERE studenti.brindeks =  '".$_REQUEST['T1']."'"
 
Odgovor na temu

grozda

Član broj: 738
Poruke: 510
93.87.167.*



+6 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?17.12.2009. u 01:22 - pre 174 meseci
Hvala, ubacio sam ... super radi :)

Sada me interesuje kako iz forme ubaciti ocenu u bazu koje se komande koriste da se u tabela u bazi doda ocena za studenta br. indexa 01, za taj i taj predmet ...

U MySQL-u kucam:

Code:
INSERT INTO ocene (brindeks, predid, naziv_predmeta, ocena )
                        VALUES ('001', '1', 'Mrezni operativni sistemi', '7');


i na taj nacin rucno dodajem, ali kako da iz forme gde su

broj indexa = T1
naziv_predmeta = D1
Ocena = D2

ubacim ove vrednosti preko PHP-a u bazu i da mi odmah iscita sta je ubaceno ... tj

broj indeksa, ime i prezime studenta, predmet i ocena
(ovo cu verovatno iskoristiti iz predhodnog querija da iscita).

Ali ne znam kako se puni tabela iz baze iz HTM forme???


(~ ~)( o o )(~ o)
-(_)---(_)---(_)-

 
Odgovor na temu

grozda

Član broj: 738
Poruke: 510
*.cenis.org.rs.



+6 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?19.12.2009. u 23:57 - pre 174 meseci
Uradio sam povezivanje preko:

Code:
$T1 = $_POST['T1'];
$D1 = $_POST['D1'];
$D2 = $_POST['D2'];

Sada kada koristim SQL upit za punjenje baze:
Code:

    // 3. Postavljanje upita
    $result = mysql_query("INSERT INTO ocene (brindeks, predid, naziv_predmeta, ocena )
                             VALUES ('$T1', '6', '$D1', '$D2')", $connection);
        if (!$result) {
            die("Database selection failed: ".mysql_error());


Ovo '6' sto je predid, sam rucno upisao zbog probe
On mi ubaci podatke u bazu ali ako vec postoje podaci on doda novi red svaki put kada ubacim.
Kako da proverim da ako ima podataka u bazi ocene da ih samo izmeni a da ih ne duplira ?
I kako da ovaj predmetid povezem sa nazivom predmeta koji se cita iz polja D1?
Da ako upisem Predmet1 on proveri koji je predid za predmet1 i da njega upise


tabela ocene sastoji se od:

Code:
+------+----------+--------+-------------------------------------+-------+
| ocid | brindeks | predid | naziv_predmeta                      | ocena |
+------+----------+--------+-------------------------------------+-------+
|    1 | 001      |      1 | Predmet 1                           |     7 |
|    2 | 001      |      2 | Predmet 2                           |     9 |
|    3 | 001      |      3 | Predmet 3                           |    10 |
|    4 | 001      |      4 | Predmet 4                           |     7 |
|    5 | 001      |      5 | Predmet 5                           |     6 |
|    9 | 001      |      5 | Predmet 5                           |     6 |    - > duplirani red, ovo ne treba da bude  


gde je predid:

Code:
+--------+---------------------------------------+--------+
| predid | naziv                                 | profid |
+--------+---------------------------------------+--------+
|      1 | Predmet 1                             | 1      |
|      2 | Predmet 2                             | 2      |
|      3 | Predmet 3                             | 3      |
|      4 | Predmet 4                             | 5      |
|      5 | Predmet 5                             | 1      |
+--------+---------------------------------------+--------+



?


(~ ~)( o o )(~ o)
-(_)---(_)---(_)-

 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.adsl.eunet.rs.

Sajt: www.vasictech.net


+1 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?20.12.2009. u 10:39 - pre 174 meseci
Ja sam to ovako radio, mozda neko ima bolje resenje...

Code:
$result = mysql_query("SELECT COUNT(naziv_predmeta) FROM ocene WHERE naziv_predmeta = '".$D1."'");
while ( $row = mysql_fetch_array($result) ) 
{
if($row['naziv_predmeta'] == 0)
$query = "INSERT INTO ocene (brindeks, predid, naziv_predmeta, ocena ) VALUES ('".$T1."', '6', '".$D1."', '".$D2."')";
else
$query = "UPDATE ocene SET brindeks = '".$T1."', predid = '6', naziv_predmeta = '".$D1.'", ocena = '".$D2."' WHERE naziv_predmeta = '".$D1."'";
}
$result = mysql_query($query);


E sad tu se javlja problem ako postoji na vise mesta isti naziv_predmeta, ako ima tih slucaja, onda najbolje da imas neku proveru prema ID-u.
 
Odgovor na temu

grozda

Član broj: 738
Poruke: 510
*.dynamic.sbb.rs.



+6 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?20.12.2009. u 22:45 - pre 174 meseci
Hvala Aleksandre ... predpostavljam da je ovo dobro ali kod mene nece :)

Slabo mi ide ovaj PHP sa MySQL-om ...

Imam nekoliko stvari koje nikako da razjasnim ...

kod pisanja ovih sintaksi, vism nekad se pise:
Code:

$D1
'.$D1.'
"$D1"
'$D1'


Nije mi jasno kada se koja upotrebljava, cas je "", nekad '', nekad'..' ?


1. Nisam umeo da napravim upit koji ce da mi na osnovu unetog:

- brindex
- naziv_predmeta (isti kao naziv u tabeli predmet)
- ocena

da iz tabele predmeti na osnovu unetog naziv_predmeta izvuce nejgov predid i da upse u tabelu ocene koja ima sledeca polja:

ocid - automatski se popunjava
brindeks - unosim u formi
predid - ???
naziv_predmeta - unosim u formi
ocena - unosim u formi

Code:


TABELA OCENE
+------+----------+--------+-------------------------------------+-------+
| ocid | brindeks | predid | naziv_predmeta                      | ocena |
+------+----------+--------+-------------------------------------+-------+
|    1 | 001      |      1 | Predmet 1                           |     7 |
|    2 | 001      |      2 | Predmet 2                           |     9 |
|    3 | 001      |      3 | Predmet 3                           |    10 |
|    4 | 001      |      4 | Predmet 4                           |     7 |
|    5 | 001      |      5 | Predmet 5                           |     6 |
+------+----------+--------+-------------------------------------+-------+

i

TABELA PREDMETI
+--------+---------------------------------------+--------+
| predid | naziv                                 | profid |
+--------+---------------------------------------+--------+
|      1 | Predmet 1                             | 1      |
|      2 | Predmet 2                             | 2      |
|      3 | Predmet 3                             | 3      |
|      4 | Predmet 4                             | 5      |
|      5 | Predmet 5                             | 1      |
+--------+---------------------------------------+--------+



E sada ovako, morao sam da ubacim jos jednu promenjljivu (T2), jer je ovo '6' u stvari predmetid, a njega nisam umeo kroz queri da uvucem, pa sam dodao rucno da se unosi ... pa mi upit izgleda ovako:


Code:
    

$T1 = $_POST['T1']; //brindeks
$T2 = $_POST['T2']; //predid
$D1 = $_POST['D1']; //naziv_predmeta
$D2 = $_POST['D2']; //ocena

    // OCENJIVANJE
    $result = mysql_query("INSERT INTO ocene (brindeks, predid, naziv_predmeta, ocena )
                             VALUES ('$T1', '$T2', '$D1', '$D2')", $connection);

         if (!$result) {
             die("Database selection failed: ".mysql_error());
         }


Znaci ubacuje u pomenutu tabelu sve parametre i to radi.
Naravno lepse bi bilo da ne mora rucno da se unosi predmetid vec da ga sam upise na osnovu polja naziv_predmata ali ne znam kako ???


2. Ova tvoja forma bi mogla da se modifikuje ali meni onaj tvoj upit kada rucno unesem da vidim kako radi

Citat:
SELECT COUNT(naziv_predmeta) FROM ocene WHERE naziv_predmeta = 'Mrezni operativni sitemi'");


daje rezultat 0 kao da ne postoji ni jedan premet koji je ocenjen ? On bi valjda trebalo da proveri da li za studenta sa brindex 001 ili kod mene $T1 postoji ocena za naziv_predmeta na pr. Mrezni operativni sitemi. Ako postoji onda da izadje i kaze VEC OCENJEN na pr. a ako nije onda da unese sa INSERT ...


Hvala jos jednom Aleksandre na trudu, pa ako imas jos malo vremena da mi objasnis ... ili neko drugi ko se razume u ove stvari.

meni se cini da bi queri u prvom delu gde broji trebao da bude ovakav:

Code:
mysql> SELECT COUNT(*) FROM ocene WHERE brindeks = "001" AND naziv_predmeta = "Predmet1" ;

+----------+
| COUNT(*) |
+----------+
|        1 |
+----------+

ili u mom slucaju sa forme:
SELECT COUNT(*) FROM ocene WHERE brindeks = "$T1" AND naziv_predmeta = "$D1" ;



on daje tacan rezultat da vec postoji jedan predmet ali kako da ga ubacim sa onom if i else ...




[Ovu poruku je menjao grozda dana 21.12.2009. u 17:39 GMT+1]

[Ovu poruku je menjao grozda dana 21.12.2009. u 17:39 GMT+1]
(~ ~)( o o )(~ o)
-(_)---(_)---(_)-

 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.dynamic.sbb.rs.



+13 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?21.12.2009. u 13:33 - pre 174 meseci
1. Sto se tice pitanja oko pisanja promenljivih (jednostruki, dvostruki navodnici):

http://www.elitesecurity.org/p1350502

A sto se tice "." - tacke, tacka ti sluzi za spajanje stringova i promenljivih:

http://www.phpf1.com/tutorial/php-string-concatenation.html

2.
Citat:

1. Nisam umeo da napravim upit koji ce da mi na osnovu unetog:

- brindex
- naziv_predmeta (isti kao naziv u tabeli predmet)
- ocena

da iz tabele predmeti na osnovu unetog naziv_predmeta izvuce nejgov predid i da upse u tabelu ocene koja ima sledeca polja:

ocid - automatski se popunjava
brindeks - unosim u formi
predid - ???
naziv_predmeta - unosim u formi
ocena - unosim u formi


Probaj sa:

Code:

$query = "SELECT predid FROM predmeti WHERE naziv_predmeta = '-- NAZIV PREDMETA --';
$query = mysql_query($query) or die(mysql_error());
$query = mysql_fetch_assoc($query);

$predid = $query['predid']; // Sada imas u ovoj promenljivoj taj "predid"
                                    // I mozes da ga upotrebis u ovom dole upitu ....


3. Ovde mi nije bas najjasnije sta tacno hoces da uradis ? Da prebrojis koliko ocena ima svaki student ili ... ? :-)

4. Procitaj malo o normalizaciji baze podatak:

http://www.google.com/search?r...e=UTF-8&q=DB+Normalization
 
Odgovor na temu

grozda

Član broj: 738
Poruke: 510
93.86.115.*



+6 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?22.12.2009. u 13:21 - pre 174 meseci
ovaj deo sto sam pokusao ranije da u HTM formi koristim samo 3 promenjlive i izbacim unosenje predid, pokusao sam kao sto je predlozeno ali mi opet nesto nece i izbacuje gresku u kodu, verovatno sintaksa nije OK ...


Code:
// UPIT ZA PREDMET ID

 $query = "SELECT predid FROM predmeti WHERE naziv = '$D1';
 $query = mysql_query($query) or die(mysql_error());
 $query = mysql_fetch_assoc($query);
 $predid = query['predid'];

//Ovo je umesto parametra $T2 koji je predid da se ne unosi nego da iscita iz tabele predmeti - svaki naziv predmeta vezuje se za predid

// OCENJIVANJE
    $result = mysql_query("INSERT INTO ocene (brindeks, predid, naziv_predmeta, ocena)
    VALUES ('$T1', '$predid', '$D1', '$D2')", $connection);

         if (!$result) {
             die("Database selection failed2: ".mysql_error());
         }


pa sam odustao jer ne znam ili ti nesto nece






Kompletan kod izgleda ovako:

Code:
    <?php
    // Ovde su promenjljive koje se nalaze u HTM formi koje unosim rucno

 $T1 = $_POST['T1']; //br indeksa (brindeks)
 $T2 = $_POST['T2']; //predmet id (predid)  (ovo bih mozda moglo i da se izbegne)
 $D1 = $_POST['D1']; //predmet (naziv_predmeta ili naziv)
 $D2 = $_POST['D2']; //ocena


//1. Kreiranje konekcije
        $connection = mysql_connect("localhost","root","");
        if (!$connection) {
            die("Database connection failed: ".mysql_error());
        }


// 2. Selektovanje baze podataka
        $db_select = mysql_select_db("moja_baza",$connection);
        if (!$db_select) {
        die("Database selection failed: ".mysql_error());
        }
    ?>

    <html>
    <head><title>MOJA BAZA PODATAKA</title></head>
    <body>
    <?php

// 3. Postavljanje upita za PROVERU OCENE

       // pitam da li postoji ocena za studenta sa indeksom T1 za predmet D1
    SELECT COUNT(*) FROM ocene WHERE brindeks = '$T1' AND naziv_predmeta= '$D1';

        //ako nema podataka tj. taj COUNT izbaci 0 onda uradi pod ***      
    if($row['COUNT(*)'] == 0)            

       // *** onda unesi te podatke u bazu - tabelu ocene koja ima sledeca polja navedena ispod
    query =  INSERT INTO ocene (brindeks, predid, naziv_predmeta, ocena ) 
                                        VALUES ('$T1',      '$T2',           '$D1',         '$D2')";

    // ako COUNT (*) izbaci 1 tj. da je student vec ocenjen iz tog predmeta onda...
        else
        
        // ako ima ocene iz tog predmeta za tog studenta, onda uradi update za taj predmet i ocenu za studenta
     query = UPDATE ocene SET ocena= '$D2' WHERE brindeks='$T1' and naziv_predmeta= '$D1';


// 4. Postavljanje upita za stampanje rezultata

     $result = mysql_query("SELECT
     studenti.brindeks,
     studenti.prezime as PrezimeStudenta,
     studenti.ime as ImeStudenta,
     predmeti.naziv,
     ocene.ocena,
     profesori.prezime,
     profesori.ime
     FROM
     studenti
     Inner Join ocene ON studenti.brindeks = ocene.brindeks
     Inner Join predmeti ON predmeti.predid = ocene.predid
     Inner Join profesori ON profesori.profid = predmeti.profid
     WHERE studenti.brindeks = '$T1' AND
     predmeti.naziv =  '$D1'", $connection);


echo "<table border='1'>
<tr>
<th>Broj indeksa</th>
<th>Ime</th>
<th>Prezime</th>
<th>Predmet</th>
<th>Ocena</th>
</tr>";


echo "<br />";
echo " ";
echo "<br />";

// 5. Koriscenje povratnih informacija - na izlazu se dobijaju sledeci podaci u tabeli

    while ($row = mysql_fetch_array($result)) {
    echo "<td>" . $row['brindeks'] . "</td>";
    echo "<td>" . $row['ImeStudenta'] . "</td>";
    echo "<td>" . $row['PrezimeStudenta'] . "</td>";
    echo "<td>" . $row['naziv'] . "</td>";
    echo "<td>" . $row['ocena'] . "</td>";
    echo "</tr>";

    }

    ?>

    </body>
    </html>

    <?php
    
// 6. Raskidanje konekcije
        mysql_close($connection);
    ?>




Konkretno, u HTML formi za ocenjivanje studenta hocu da unesem:

1. Broj indeksa studenta = $T1
2. Predmet koji hocu da ocenim = $D1
3. Ocenu studenta = $D2
4. Predmet ID = $T2 (ovo sam dodao jer mi u protivnom to polje predid ostene prazno u tebeli ocene )

u PHP kodu:

Pod // 1,2,4,5,6 mi radi u drugim slucajevima ali ovaj deo pod
//3. Postavljanje upita za PROVERU OCENE, gde treba postaviti queri sa uslovom ne umem da napisem?

Treba pitati :

- da li postoji ocena za studenta sa indeksom $T1 iz predmete $D1'
- ako postoji onda uradi samo update te ocene
- ako ne postoji onda unesi tu ocenu u bazu





[Ovu poruku je menjao grozda dana 23.12.2009. u 02:12 GMT+1]
(~ ~)( o o )(~ o)
-(_)---(_)---(_)-

 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.dynamic.sbb.rs.



+13 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?23.12.2009. u 19:49 - pre 174 meseci
Probaj nesto ovako:

Code:


// Proveri da li postoji takva ocena
$query = "SELECT COUNT(*) AS cnt FROM ocene WHERE brindeks = '$T1' AND naziv_predmeta= '$D1'";

$query = mysql_query($query) or die(mysql_error());
$result = mysql_fetch_assoc($query);

if ($result['cnt'] > 0) { // Vec postoji takva ocena
  // Uradi update
} else { // Ne postoji ...
  // uradi insert
}



Nadam se da ce da pomogne :-)
 
Odgovor na temu

grozda

Član broj: 738
Poruke: 510
*.dynamic.sbb.rs.



+6 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?23.12.2009. u 21:28 - pre 174 meseci
Code:
// 3. Postavljanje upita za PROVERU OCENE 

// Proveri da li postoji takva ocena
    $query = "SELECT COUNT(*) AS cnt FROM ocene WHERE brindeks = '$T1' AND naziv_predmeta= '$D1'";
    $query = mysql_query($query) or die(mysql_error());
    $result = mysql_fetch_assoc($query);


    if ($result['cnt'] > 0) { // Vec postoji takva ocena


  // Uradi update
        $result = mysql_query("UPDATE ocene SET ocena='$D2' WHERE brindeks='$T1' and naziv_predmeta= '$D1'", $connection);
            if (!$result) {
                die("Database selection failed: ".mysql_error());
         }


    } else { // Ne postoji ...


  // uradi insert
         $result = mysql_query("INSERT INTO ocene (brindeks, predid, naziv_predmeta, ocena )
                VALUES ('$T1', '$T2', '$D1', '$D2')", $connection);
             if (!$result) {
                 die("Database selection failed: ".mysql_error());
             }

    }




Ovo radi, svaka cast i hvala !!!



(~ ~)( o o )(~ o)
-(_)---(_)---(_)-

 
Odgovor na temu

grozda

Član broj: 738
Poruke: 510
*.dynamic.sbb.rs.



+6 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?23.12.2009. u 21:49 - pre 174 meseci

Hocu da izbacim polje T2 u formi, da ne mora da se unosi kao na slici.


Da li slucajno znas kako da resim ovaj deo koda:





izbaci mi gresku:
Parse error: parse error in C:\wamp\www\student.php on line 47
a to je ovaj red:
$result = mysql_query("INSERT INTO ocene (brindeks, predid, naziv_predmeta, ocena) VALUES ('$T1', '$predid', '$naziv', '$D2')", $connection);


Code:
// NOVI UPIT ZA PREDMET ID

 $query = "SELECT predid, FROM predmeti WHERE naziv = '$D1';
 $query = mysql_query($query) or die(mysql_error());
 $query = mysql_fetch_assoc($query);
 $predid = query['predid'];
// $naziv = query['naziv'];



// OCENJIVANJE
    $result = mysql_query("INSERT INTO ocene (brindeks, predid, naziv_predmeta, ocena) VALUES ('$T1', '$predid', '$naziv', '$D2')", $connection);

         if (!$result) {
             die("Database selection failed2: ".mysql_error());
         }

(~ ~)( o o )(~ o)
-(_)---(_)---(_)-

 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
91.148.86.*



+13 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?24.12.2009. u 08:53 - pre 174 meseci
Pazi, ti mozes taj $predid da izvuces iz baze na osnovu naziva predmeta, pa ga onda upotrebis u query-ju:

Code:


$query = "SELECT predid FROM tabela WHERE nazivPredmeta = 'NazivPredmeta'";

// Sad ide mysql_query i tako to ....

//I sad lepo, imas $predid i ostavis onaj query kakav i jeste.


A, drugi nacin, koji bi trebao da radi, ali nisam 100% siguran, jeste koriscenjem SubQuery-a, tj:

Code:


$result = mysql_query("INSERT INTO ocene (brindeks, predid, naziv_predmeta, ocena) 
VALUES ('$T1', (SELECT predid FROM predmet WHERE naziv = 'Naziv-Predmeta') , '$naziv', '$D2')", $connection);



Pozdrav !
 
Odgovor na temu

grozda

Član broj: 738
Poruke: 510
93.86.115.*



+6 Profil

icon Re: Pomoc oko PHP skripte - selektovanje iz vise tabela ?24.12.2009. u 13:59 - pre 174 meseci
Svaka cast :) RADI ovo kao sub code !!!

Samo sam izvukao iz ong gornjeg querija SELECT... posto mi to stvarno daje rezultat i ubacio ga u zagradu umesto predid kao sto si rekao ...

Code:
// OCENJIVANJE
    $result = mysql_query("INSERT INTO ocene (brindeks, predid, naziv_predmeta, ocena)
    VALUES ('$T1', (SELECT predid FROM predmeti WHERE naziv = '$D1'), '$D1', '$D2')", $connection);

         if (!$result) {
             die("Database selection failed2: ".mysql_error());
         }


Hvala, jos jednom !!!

(~ ~)( o o )(~ o)
-(_)---(_)---(_)-

 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Pomoc oko PHP skripte - selektovanje iz vise tabela ?

[ Pregleda: 5153 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.