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

povezivanje tabela

[es] :: PHP :: PHP za početnike :: povezivanje tabela

[ Pregleda: 2346 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

damakii

Član broj: 136925
Poruke: 58
*.loc-s.akton.net.



Profil

icon povezivanje tabela08.02.2011. u 13:15 - pre 160 meseci
Dakle u mysql bazi imam dvije tabele. Obje tabele imaju kolonu prezime_ime. Kako da postavim link na kolonu u prvoj tabeli, odnosno da mi sve u koloni prezime_ime bude link.


Drugo pitanje: Kako kada otvorim taj link da mi se selektuju podaci iz druge tabele ali vezani samo za taj red. Odnosno ako npr. kliknem na jedno ime da mi se uradi select i da dobijem sve podatke iz druge tabele, a vezane za to ime.


damaki
 
Odgovor na temu

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 871
*.teol.net.



+148 Profil

icon Re: povezivanje tabela08.02.2011. u 20:45 - pre 160 meseci
Ne vidim razlog zasto imas 2 tabele kad ti se sve informacije iz A vec nalaze u B, ali cisto primjera radi, recimo da imas 2 tabele, A i Bv koje su povezane preko ID-a, tj. a_id iz tabele B upucuje na odgovarajuci red u tabeli A.

A:
Code:

id
ime_prezime


B:
Code:

id
a_id
adresa
telefon
email
...


Ti zelis da dobijes indeks svih imena, gdje bi klikom na ime otvorio stranicu sa detaljima.

Prvo odaberes sve iz tabele A.
Code:

$query = "SELECT * FROM `A`";
$rows = mysql_query($query);


Zatim za svaki procitani unos pravis jedan link.
Code:


while ($row = mysql_fetch_assoc($rows)) {
   echo '<a href="profil.php?id=' . $row['id'] . '>' . $row['ime_prezime'] . '</a><br/>';
}


Svaki kreirani link otvara drugu skriptu "profil.php" kojoj se preko id parametra proslijedjuje id reda koji treba da se prikaze:

Code:

$id = (int)$_GET['id'];

$query = "SELECT * FROM B WHERE `id`=$id";
$res = mysql_query($query);
$row = mysql_fetch_assoc($res);

echo 'Adresa: '.$row['adresa'];
echo 'Telefon: '.$row['telefon'];
...




 
Odgovor na temu

damakii

Član broj: 136925
Poruke: 58
109.175.69.*



Profil

icon Re: povezivanje tabela08.02.2011. u 22:48 - pre 160 meseci
Hvala puno na ogovoru. U pravu si, u jednoj tabeli imam sve podatke koji mi trebaju, ali kako da iz te tabele na jednoj stranici npr. str1.php prikazem tri kolone iz te tabele gdje ce u koloni ime_prezime biti sve linkovi, a na drugoj str2.php u zavinosti od odabranog linka sa prve stranice, prikazem svih 6 kolona iz tabele u bazi. Please help.
damaki
 
Odgovor na temu

damakii

Član broj: 136925
Poruke: 58
109.175.69.*



Profil

icon Re: povezivanje tabela08.02.2011. u 23:04 - pre 160 meseci
Ovako, ovo mi je kod prve stranice treneri.php:

$sql="SELECT * FROM treneri order by prezime_ime";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
?>
<table width="665" border="0" cellpadding="0" cellspacing="1" class="tabtext">
<tr>
<td width="35" height="20" valign="middle" bgcolor="#F0F0F0"><?php echo $rows['id']; ?></td>
<td width="150" height="20" valign="middle" bgcolor="#F0F0F0"><a href=treneri2.php?id=$prezime_ime><?php echo $rows['prezime_ime'] ?></a></td>
<td width="" height="20" valign="middle" bgcolor="#F0F0F0"><?php echo $rows['institucija']; ?></td>
<td width="105" height="20" valign="middle" bgcolor="#F0F0F0"><?php echo $rows['telefon']; ?></td>
<td width="105" height="20" valign="middle" bgcolor="#F0F0F0"><?php echo $rows['faks']; ?></td>
</tr>
</table>
<?php
}
mysql_close();


A ovo mi je kod stranice treneri2.php:

$sql="SELECT * FROM treneri2";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
?>
<table width="1610" border="0" cellpadding="0" cellspacing="1" class="tabtext">
<tr>
<td width="35" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['id']; ?></td>
<td width="150" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['prezime_ime']; ?></td>
<td width="303" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['institucija']; ?></td>
<td width="150" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['adresa']; ?></td>
<td width="150" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['postanski_grad']; ?></td>
<td width="120" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['drzava']; ?></td>
<td width="110" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['br_cert']; ?></td>
<td width="100" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['dat_cert']; ?></td>
<td width="105" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['telefon']; ?></td>
<td width="105" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['faks']; ?></td>
<td width="250" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['email']; ?></td>
</tr>
</table>
<?
}
mysql_close();


Pretpostavljam da nesto nije kako treba na prvoj stranici u dijelu:

<a href=treneri2.php?id=$prezime_ime><?php echo $rows['prezime_ime'] ?></a>

i na drugoj stranici u dijelu:

$sql="SELECT * FROM treneri2";

ili ako je lakse uraditi preko jedne tabele.
damaki
 
Odgovor na temu

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 871
147.91.197.*



+148 Profil

icon Re: povezivanje tabela09.02.2011. u 09:41 - pre 160 meseci
Princip je isti i sa jednom tabelom, u toj tvojoj tabeli sa trenerima bi trebao da imas primarni kljuc, nazovimo ga ID. Meni se cini da ti koristis ime_prezime kao jedinstvenu vrijednost, a to nije dobro rjesenje jer vise ljudi mogu da se isto zovu, koristenje jedinstvene brojne vrijednosti je bolje.

U prvoj php skripti samo izlistas sve trenere. Kada pravis linkove ka drugoj skripti, moras da proslijedis neki parametar u drugu skriptu na osnovu koga ce ta skripta znati koji trener je odabran. Taj parametar bi trebao biti primarni kljuc u tabeli trenera. U drugoj skripti tada samo provjeris koji red konkretno je zatrazen tako sto ga procitas iz proslijedjenog GET parametra sa $id = $_GET['id'] i zatim izvrsis novi query gdje izaberes samo taj konkretni red, koristeci WHERE id=$id.

Cini mi se da tvoja tabela nema jedinstvenu kolonu ID, pa prvo to dodaj. Ovo ce svakom treneru dodijeliti jedinstveni identifikacioni broj u tabeli. Kod za prvu skriptu bi dakle bio

Code:

$sql="SELECT id, prezime_ime FROM treneri order by prezime_ime";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
?>
<table width="665" border="0" cellpadding="0" cellspacing="1" class="tabtext">
<tr>
<td width="35" height="20" valign="middle" bgcolor="#F0F0F0"><?php echo $rows['id']; ?></td>
<td width="150" height="20" valign="middle" bgcolor="#F0F0F0"><a href=treneri2.php?id=<?php $rows['id']; ?> ><?php echo $rows['prezime_ime'] ?></a></td>
<td width="" height="20" valign="middle" bgcolor="#F0F0F0"><?php echo $rows['institucija']; ?></td>
<td width="105" height="20" valign="middle" bgcolor="#F0F0F0"><?php echo $rows['telefon']; ?></td>
<td width="105" height="20" valign="middle" bgcolor="#F0F0F0"><?php echo $rows['faks']; ?></td>
</tr>
</table>
<?php
}
mysql_close();


U drugoj skripti prihvatas poslani parametar id i na osnovu njega prikazujes informacije

Code:

$id = (int)$_GET['id'];
$sql="SELECT * FROM treneri2 WHERE id=$id";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>
<table width="1610" border="0" cellpadding="0" cellspacing="1" class="tabtext">
<tr>
<td width="35" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['id']; ?></td>
<td width="150" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['prezime_ime']; ?></td>
<td width="303" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['institucija']; ?></td>
<td width="150" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['adresa']; ?></td>
<td width="150" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['postanski_grad']; ?></td>
<td width="120" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['drzava']; ?></td>
<td width="110" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['br_cert']; ?></td>
<td width="100" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['dat_cert']; ?></td>
<td width="105" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['telefon']; ?></td>
<td width="105" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['faks']; ?></td>
<td width="250" height="20" valign="middle" bgcolor="#F0F0F0"><? echo $rows['email']; ?></td>
</tr>
</table>
<?

mysql_close();


 
Odgovor na temu

damakii

Član broj: 136925
Poruke: 58
*.loc-s.akton.net.



Profil

icon Re: povezivanje tabela09.02.2011. u 10:35 - pre 160 meseci
Hvala puno, sve radi kao podmazano.
damaki
 
Odgovor na temu

damakii

Član broj: 136925
Poruke: 58
*.loc-s.akton.net.



Profil

icon Re: povezivanje tabela09.02.2011. u 14:47 - pre 160 meseci
Imam jos jedno pitanje. kako da ofarbam kroz prvu skriptu prvi red tabele na stanici u bijelo, drugi u sivo i tako redom do zadnjeg reda u tabeli.

$sql="SELECT id, prezime_ime FROM treneri order by prezime_ime";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
?>
<table width="665" border="0" cellpadding="0" cellspacing="1" class="tabtext">
<tr>
<td width="35" height="20" valign="middle" bgcolor="#F0F0F0"><?php echo $rows['id']; ?></td>
<td width="150" height="20" valign="middle" bgcolor="#F0F0F0"><a href=treneri2.php?id=<?php $rows['id']; ?> ><?php echo $rows['prezime_ime'] ?></a></td>
<td width="" height="20" valign="middle" bgcolor="#F0F0F0"><?php echo $rows['institucija']; ?></td>
<td width="105" height="20" valign="middle" bgcolor="#F0F0F0"><?php echo $rows['telefon']; ?></td>
<td width="105" height="20" valign="middle" bgcolor="#F0F0F0"><?php echo $rows['faks']; ?></td>
</tr>
</table>
<?php
}
mysql_close();
damaki
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
109.106.245.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: povezivanje tabela09.02.2011. u 18:28 - pre 160 meseci
stavis brojac koji ide do 2 i kad postane 2 resetujes ga na 0 i promenis boju.
Ili ako je deljiv sa dva onda promenis boju. ali nemoguce da se nisi sam setio tako necega
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: povezivanje tabela

[ Pregleda: 2346 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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