![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym w jednej komórce zapisywać dane liczbowo, nr: '1','2', itd mam skrypt który zamienia te numery na dane z innych tabeli, tylko jest jeden problem, zamiasy wyswietlac informacje z tych 1,2 to wyswietla tylko pierwsza informację. i tak np w tabeli tytuly; mam id, tytyl -(1 mgr informatyki, 2lic politologii? zas w paszport.tytuly mam wpisane 1,2 a wyswietla tylko 1 mgr inf. Co mam zrobic aby wyswietlalo all.
Kod <meta http-equiv="Content-Type" content="text/html; charset=Windows-1250">
<?php require_once("include/baza.class.php5"); require_once("include/pytanie.class.php5"); require_once("include/utils.class.php5"); $baza=new baza(); $baza->connect(); $pytanie = new pytanie(); if($_GET[kto]=="") { $pytanie->zapytaj("SELECT id,nazwa FROM paszporty ORDER BY id"); $dane = $pytanie->get_dane(); $ilosc = $pytanie->get_ilosc(); echo "<table><tr><td></td> <td><b>NAZWA JEDNOSTKI</b> </td><td><b>RODZAJ WOJSK</b></td></tr>"; for ($i=0;$i<$ilosc;$i++) { $nazwa=$dane[$i][1]; $id=$dane[$i][2]; $w=$i+1; echo "<tr><td><center></center></td><td> <a href='paszport4.php?dzial=spism&kto=$nazwa'>$nazwa </td><td>$id</a></td></tr>"; } } else { $id=$_GET[kto]; $pytanie->zapytaj("SELECT paszporty.id, paszporty.nazwa, paszporty.paszport, paszporty.miejscowosc, paszporty.data,paszporty.email, paszporty.gg, wojsko.nazwa, tytuly.tytul FROM paszporty, wojsko, tytuly WHERE paszporty.stopien=wojsko.id and paszporty.tytuly=tytuly.id and paszporty.nazwa='$id'"); $dane = $pytanie->get_dane(); $id=$dane[0][0]; $nazwa=$dane[0][1]; $paszport=$dane[0][2]; $miejscowosc=$dane[0][3]; $data=$dane[0][4]; $email=$dane[0][5]; $gg=$dane[0][6]; $stopien=$dane[0][7]; $tytuly=$dane[0][8]; echo "<br><div class='menu'> </div> <div class='menu2'> <table width='1000px'> <tr> <td colspan='2'> <table id='Table_01' width='0' height='25' border='0' cellpadding='0' cellspacing='0' align='center'> <tr> </tr> <tr> <td background='img/tlo1.jpg' width='410' height='25' alt='' valign='top'> <font color='black'><center>Nazwa: <b>$nazwa</b> </font><br> <font color='black'>paszport: <b>$paszport</b> </font><br> <font color='black'>Miejsce zamieszkania: <b>$miejscowosc</b> </font><br> <font color='black'>Data rejestracji: <b>$data</b> </font><br> <font color='black'>email: <b>$email</b> </font><br> <font color='black'>gg: <b>$gg</b> </font><br> <font color='black'>stopien: <b>$stopien</b> </font><br> <font color='black'>tytuly: <b>$tytuly</b> </font><br> <br> </table <br> <center><img src='$obraz'> <center/> <table><td width=700'><div class='menu2' align='justify'> <br><font size='3'>$spis</font> </td> </table> "; } $baza->close(); ?> </head> <body style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" alink="#000099" link="#000099" vlink="#990099"> <br> </body> </html> |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Pytanie jest napisane w taki sposób, że kompletnie nie wiadomo o co chodzi, to raz.
Dwa, kod jest po prostu straszny. Możesz popracować nad jego czytelnością? Przede wszystkim zrób trzy rzeczy:
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 578 Pomógł: 69 Dołączył: 15.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
I piąte: zmień kodowanie na UTF-8
![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki postaram sie do tego zastosować. Ale odchodzimy troche od meritum. Problem jest nastepujacy mam sobie tabele tytuly w ktorej znajduja się kolumny id,nazwa oraz inna tabele z kolumna tytuly. chciałbym zrobic tak aby po wpisaniu w tej kolumnie tytuly liczbę odczytywalo ją jako nazwe z tabeli tytuly i wyswietlalo record po tym id. I tak w tabeli paszporty w kolumnie tytuly wpisuje 1 i w php zamiast tej jedynki zamienia ja na wartosć z tabeli tytuly z kolumny nazwa po id. Mam polecenie where przez = i robi mi to, tylko problem sie pojawia ze robi to tylko dla jednej liczby. jakbym chcial dać w paszportach w kolumnie tytulu 1,2 lub '1','2' to w php wyswietla tylko jeden recorda chciałbym aby robil to dla wszytskich liczb z tej kolumny.. Nie wiem czy jasniej wytłuamczylem.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
jak chcesz w mysql znalezc rekordy dla kilku wartosci to robisz to tak:
..... where pole in (1,2) lub ... where pole =1 or pole = 2 -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
a jesli mam cos takiego:
Kod SELECT paszporty.id, paszporty.nazwa, paszporty.paszport, paszporty.miejscowosc, paszporty.data,paszporty.email, paszporty.gg, wojsko.nazwa, tytuly.tytul FROM paszporty, wojsko, tytuly WHERE paszporty.stopien=wojsko.id and paszporty.tytuly=tytuly.id and paszporty.nazwa='$id';
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Nie idź tą drogą!
Potrzebujesz dodatkowej tabeli (pośredniej) aby zbudować relację wiele do wielu. Bądź zmienić tabelę z tytułami, by tam podpiąć id paszportu. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
tzn,? mam 3 tabele paszporty do wyswietlania wszytskiego, wojsko -dla id, nazwy ordery i jego obrazu, oraz tytuly dla id i nazwy.
dane z wojska i tytulów maja byc wyswietlane dla paszportów, czyli co mam stowrzyc jeszcze jedną tabele, ale co w niej zawrzeć lub w jaki sposób Cytat Bądź zmienić tabelę z tytułami, by tam podpiąć id paszportu. tylko, ze ta paszporty ma byc do wyswietlania, np w tytulach ma byc tylko id i nazwa. A nawet jakbym chciał to i tak pojawi sie chyba ten sam problem bo dla danego id tytulu moglyby byc rozne id paszportu.
Ten post edytował student137 1.10.2013, 13:38:58 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Już wiem. Musisz mieć pośrednią:
paszporty_tytuly ( id_paszportu, id_tytulu ) Chyba nie muszę pisać, co ma zawierać. UNIKALNY klucz na oba pola. Ew. możesz dodać id. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
ok, dzieki zobacze co z tego wyjdzie
|
|
|
--student137-- |
![]()
Post
#12
|
Goście ![]() |
w bazie open office zrobilem z tabelą posrednią i działało, zaś php nadal wyswietla jeden, peirwszy rekord
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
metodą prób i błedów jakiś rezultat osiągnąłem. Dzieki za pomoc. Tylko się zastanawiam czy nie ma czegoś prostszego, bo ten sposób wymaga ciąglej edycji zależnosci.
W ten sposób wyswietla wszytkie kombinacje dla zmniennych czyli jeżeli ktoś ma tytul naukowy- mgr, inż oraz zajmuje stanowiska -dyrektor i nauczyciel to wyswietla mi: mgr dyrektor mgr nauczyciel inz dyrektor inz nayczuciel ja zas chciałbym aby było: mgr inz dyrektor nauczyciel Kod $zapytanie = "SELECT paszport.ID, paszport.imie, naukowy.naukowy, stanowiska.nazwa FROM paszport, pa_na, naukowy, pa_sta, stanowiska WHERE paszport.paID = pa_na.paID AND naukowy.naID = pa_na.naID AND paszport.paID = pa_sta.paID AND pa_sta.staID = stanowiska.staID
"; //wykonujemy zdefiniowane zapytanie na bazie mysql $wynik = mysql_query($zapytanie); echo "<p>"; echo "<table boder=\"1\"><tr>"; echo "</tr>"; while ( $row = mysql_fetch_row($wynik) ) { echo "</tr>"; echo "<td bgcolor=\"ffff00\">" . $row['2'] . "</td>"; echo "<td bgcolor=\"ffff00\">" . $row['3'] . "</td>"; Ten post edytował student137 1.10.2013, 23:13:39 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Jedyne, co mi na szybko przychodzi do głowy to:
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
jedynie co zmieniło to recordy wyswietlają się jednym ciagiem w poziomie a nie jak poprzednio w pionie. Popracowałem trochę i coś wychodzi.
To zdecydowanie pasuje, ale jeszcze musze zobaczyć czy przypadkiem jak dodam stanowiska czy nie bedzie znowu rozpisywać wszytskie kombinacje. Kod $paszport = mysql_query("SELECT * FROM paszport");
while($uzytkownik = mysql_fetch_assoc($paszport)){ echo($uzytkownik['imie']); $naukowy = mysql_query("SELECT tytul FROM pa_na INNER JOIN naukowy ON(naukowy.naID = pa_na.naID) WHERE pa_na.paID = '".$uzytkownik['paID']."'"); while($naukowa = mysql_fetch_assoc($naukowy)){ echo(' '.$naukowa['naukowy']); Ten post edytował student137 2.10.2013, 22:16:33 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.06.2025 - 21:58 |