dzesi
7.04.2008, 14:21:34
Witam mam pewien problem[dylemat] otóż poprawiam serwis firmowy i chce poprawić wyświetlanie wyników i chciałbym żebyście podzielili sie wiedzą jak byście [ robicie] zrobili takie wyświetlanie żeby dany teks który znajduje sie w kategorii x żeby po naciśnięciu pokazał to co znajduje sie w np innym polu tej tabeli[ treść],
na razie wymyśliłem to tak
while($wynik=$this->zapytanie_sql->fetch_row())
{
echo"<br/>";
echo $wynik[0];
echo "<br/>";
echo $wynik[1];
}
ale jest to mało skuteczne [ pisał to jakiś programista na zamówienie ale nie spisał sie on dość dobrze ], myślałem tez nad tym żeby zrobić to tak ze np id 1 w tabeli xxx [ tytuły] będzie przypisany do kategorii yyy[ tresc]
Proszę o pokazanie to w kodzie lub jakimś linkiem bo teoretycznie wiem co i jak tylko w praktyce nie mam wszystkiego opanowanego
maniekl2
7.04.2008, 14:44:10
<?php
//pobierasz id, title, opis
while($wynik=$this->zapytanie_sql->fetch_array())
{
echo "<a href=strona.php?id=".$wynik['id'].">".$wynik['title']."</a>"; }
?>
a w drugim skrypcie :
poprostu pobiera opis gdzie id = $_GET['id'];
i wyświetla go. O cos takiego ci chodziło ?
dzesi
7.04.2008, 15:11:04
Ja tez do tego doszedłem tylko jak teraz zrobić to żeby np tabela tiitle 1 rekord odwoływał się do tabela tresc_newsa o id = 1 ?
bo tutaj pobiera ogólnie a chodzi mi żeby tytuł był przypisany do jakieś stałej wartości w jakieś tam tabeli .Mam nadzieje ze dobrze wytłumaczyłem
maniekl2
7.04.2008, 19:14:06
No to robisz te dwie tabele. W obydwu tabelach musi byc id. i tam gdzie jest ten drugi skrypt robisz takie zapytanie
<?php
$db = "SELECT opis FROM tresc_newsa WHERE id=".$_GET['id']."";
?>
Chyba że znów źle Ciebie zrozumiałem
guitarnet.pl
8.04.2008, 04:23:05
Od tego momentu masz odczytane wyniki z bazy w tymczasowej tabeli
Minus:
dodatkowa tablica - strata pamieci
Plus:
nie wykonujesz zbednych operacji wewnatrz petli + tablica jest do wykorzystania na pozniej w dalszej czesci skryptu, np przy przeladowaniach ajax
$wynik = array();
$zapamietane_wyniki = array();
$i = 0;
while($wynik=$this->zapytanie_sql->fetch_row())
{
$zapamietane_wyniki[$i]['nazwa_pola'] = $wynik['nazwa_pola']
}
Dodatkowa uwaga , nie uzywaj " cudzyslowiow jak nie musisz uzywaj pojedynczych ', oszczedzisz pracy parserowi
i jeszcze jedna uwaga mi sie nasunela czytajac post kolegi powyzej 2 pietra, sugeruje zrobic odczyt w jednym zapytaniu, a nie w 2 zapytaniach, minimalizacja zapytan do bazy to priorytet (o ile mozliwe) wykonaj testy i sam zobaczysz ile czasu tracisz na podwojne zapytania w porownaniu do tymczasowej tabeli i rozbudowanego zapytania (w granicach rozsadku)