Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> podwojne wyswietlanie rekordow, podwojnie wyswietla rekordy
wujeksz
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 24.03.2010

Ostrzeżenie: (0%)
-----


witam, mam problem
w bazie danych mam 3 rekordy a na stronie wyswietla mi 6. sa one po prostu dublowane. jak to zrobic, aby sie nie dublowaly?questionmark.gif
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Gdzie jest ta szklana kula.... kurka, jeszcze wczoraj tu stała.... no nic, nie mogę znaleźć szklanej kuli, PODAJ więc KOD....rety, czy za każdym razem trzeba to każdemu z osobna tłumaczyć?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wujeksz
post
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 24.03.2010

Ostrzeżenie: (0%)
-----


CODE
<?php
ini_set( 'display_errors', 'On' );
error_reporting( E_ALL );
$sql="SELECT id_uz FROM $tbl_name WHERE user='$user' and password='$password'";
$result=mysql_query($sql);
$id_uz=mysql_result($result,"id_uz");
$query="SELECT produkty2.produkt, produkty2.jednostka, produkty2.cena, produkty2.producent, hasla.nazwa
FROM produkty2
INNER JOIN hasla
ON produkty2.id_uz2 = $id_uz
ORDER BY produkty2.produkt";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

$i=0;
while ($i < $num) {

$produkt=mysql_result($result,$i,"produkt");
$jednostka=mysql_result($result,$i,"jednostka");
$cena=mysql_result($result,$i,"cena");
?>

<tr>
<form action="new.php" method="post">
<td><font face="Arial, Helvetica, sans-serif"><? echo $produkt; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><? echo $jednostka; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><? echo $cena; ?> zł</font></td>
<td> <input name="textfield" type="text" id="textfield" value="Ilość" size="7" maxlength="6" /></td>
<td><input type="submit" value="Zamów"></td>
</tr>
</form>
<?
$i++;
}

echo "</table>";
?>
</div>
</body>
</html>
</body>
</html>


to jest kod do wyswietlania.

a wyzej jest kod do polaczenia z baza danych wyglada on tak:

CODE
<?php
session_start();
if(!session_is_registered(user)){
header("location:index.php");
}
ini_set('session.bug_compat_42',0);
ini_set('session.bug_compat_warn',0);
$host="****.home.pl";
$username="*****";
$password="*****";
$db_name="******";
$tbl_name="hasla";

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$password = $_SESSION["password"];
$user = $_SESSION["user"];
$sql="SELECT nazwa FROM $tbl_name WHERE user='$user' and password='$password'";
$result=mysql_query($sql);
$nazwa=mysql_result($result,"nazwa");
?>
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Po pierwsze do kodu php uzywa się bbcode PHP a nie CODE

Po drugie: joinujesz tabelę z hasłami ale w żaden sposón nie łączysz jej z tabela produkty - w efekcie dostajesz iloczyn kartezjański, czyli o wiele wiecej danych niż byś się spodziewał.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wujeksz
post
Post #5





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 24.03.2010

Ostrzeżenie: (0%)
-----


nie no wlasnie lacze ją z id_uz

w tabeli gdzie sa uzytkownicy jest do kazdego indywidualna, a w produkty rowniez.

to akurat dziala. dla odpowiedniego uzytkownika sa wyswietlane odpowiednie dane tylko ze podwojnie. w tabeli produkty jest 6 produktow, po 3 dla jednego uzytkownika z roznymi cenami, natomiast przy wieswietlaniu dla jednego uzytkownika sa trzy wyniki, ale zdublowane

czyli.

w tabeli produkty mam

id_uz | produkt | cena
1 | ocet | 5
1 | bulka | 3
1 | piwo |6
2 | ocet | 4
2 |bulka | 5
2 | piwo | 18


i mi wysiwetla dla uzytkownika z ID 1
ocet 5
ocet 5
bulka 3
bulka 3
piwo 6
piwo 6
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
nie no wlasnie lacze ją z id_uz
Słucha.... nie łączysz.... mówię o tabeli HASLA. Dołączasz tę tabelę, ale w żaden sposób nie łączysz jest z tabelą PRODUKTY. I właśnie dlatego ci się dane dublują. PRzyjmij to do wiadomości


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wujeksz
post
Post #7





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 24.03.2010

Ostrzeżenie: (0%)
-----


moglbys mi podpowiedziec jak to naprawic? bo naprawde nie moge dostrzec bledu. przyznam sie bez bicia ze jestem samoukiem i jeszcze wiele musze sie nauczyc.

Cytat
$query="SELECT produkty2.produkt, produkty2.jednostka, produkty2.cena, produkty2.producent, hasla.id_uz
FROM produkty2
INNER JOIN hasla
ON produkty2.id_uz2 = hasla.id_uz
ORDER BY produkty2.produkt";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();


znalzlem blad. tutaj wkleilem poprawiony kod. moze komus sie przyda.

a moglibyscie mi podpowiedziec jak zrobic odnosnik aby dla admina przekirowalo na inno strone, i w zaden sposob nie moge polskich znakow wyswietlac z bazy danych. wkleje kod z pliku ktory sprawdza login.

Cytat
<?php
$host="******";
$username="****";
$password="****";
$db_name="****";
$tbl_name="hasla";

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$user=$_POST['user'];
$password=$_POST['password'];

$user = stripslashes($user);
$password = stripslashes($password);
$user = mysql_real_escape_string($user);
$password = mysql_real_escape_string($password);

$sql="SELECT * FROM $tbl_name WHERE user='$user' and password='$password'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){


// Register $user, $password and redirect to file "login_success.php"
session_register("user");
session_register("password");
session_register("nazwa");
header("location: login_success.php");
}
else {
$message="Podałeś nieprawidłowe dane!";
}
?>
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No musisz w jakis sposob połączyć tabele HASLA z tabelą PRODYKTY. Jest jakieś pole po którym te tabele mogą się łączyć? Jak nie ma, to nie możesz joinować hasła razem z produktami.

  1. $query="SELECT produkty2.produkt, produkty2.jednostka, produkty2.cena, produkty2.producent, hasla.nazwa
  2. FROM produkty2
  3. INNER JOIN hasla
  4. ON hasla.JAKIES_POLE=produkty2.JAKIES_POLE
  5. where produkty2.id_uz2 = $id_uz
  6. ORDER BY produkty2.produkt";


Po raz ostatni proszę: używaj bboce PHP dla kodu PHP

Cytat
a moglibyscie mi podpowiedziec jak zrobic odnosnik aby dla admina przekirowalo na inno strone,
No to dla admina zamiast
header("location: login_success.php");
masz dac:
header("location: inna_strona.php");

No IF chyba umiesz zrobić?
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wujeksz
post
Post #9





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 24.03.2010

Ostrzeżenie: (0%)
-----


ok wszystko jasne,

a powiedz mi tylko jak zrobic aby polskie znaki byly wyswietlane z bazy danych? bo nie moge tego zrobic w zaden sposob.
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Na temat polskich znaków na tym forum było już tysiące postów. Wystarczy, że użyjesz wyszukiwarki

O przypiętym temacie już nie wspominając....


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 02:14