Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z wyświetleniem danych
manti_1986
post 29.07.2009, 19:17:53
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.07.2009

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


Nie mogę wyświetlic wyniku na ekrenie w postaci tablicy..Po wyświetleniu zmiennej wyskakuje mi " Resource id #5 "


Moj kod to :


<?php include ('naglowek.php'); ?>

<h3>Produkty</h3>

<?php

// formularz Edycja istniejącego produktu
// jezeli klikne na produkt dany to stworzy formularz do edytowania biorac juz ten produkt po id
if ($_GET['akcja'] == 'edytuj') {
//pobiera produkt po id
$zapytanie = "SELECT * FROM pizza WHERE id_pizzy=".$_GET['id_pizzy'];
$produkt = mysql_query($zapytanie);
$rekord = mysql_fetch_assoc($produkt);
?>
<!--okno edytowania dodatkowo-->
<p><b>Edytuj produkt</b></p>

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
<!--id tylko do oczytu nie mozna zmieniac-->
ID: <input readonly name="id_pizzy" value="<?php echo $rekord['id'] ?>" size="2"/>

Produkt: <input name="nazwa_pizzy" value="<?php echo $rekord['nazwa'] ?>" size="40" />

kcal/100g: <input name="rozmiar_pizzy" value="<?php echo $rekord['kcal'] ?>" size="5" />

<input type="submit" name="zmien" value="Zmień" />
<input type="reset" value="Resetuj" /><!--resetuje do postaci poprzedniej wlasciwej-->

</form><br />

<?php
}

// zmiana istniejącego produktu
//jezeli klikne na zmien
if ($_POST['zmien']) {

// UWAGA: nie powinno się bez sprawdzenia wprowadzać do bazy tego, co podał użytkownik!
$zapytanie = "UPDATE pizza SET nazwa_pizzy='".$_POST['nazwa_pizzy']."', rozmiar_pizzy=" . $_POST['rozmiar_pizzy'] . " WHERE id_pizzy=".$_POST['id_pizzy'];

$produkt = mysql_query($zapytanie);

if ($produkt)
echo "<p>Aktualizacja powiodła się</p>";
else
echo "<p>Aktualizacja nie powiodła się!</p>";
}


// dodawanie nowego produktu
//jezeli klikne na dodaj
if ($_POST['dodaj']) {

$nowy_produkt = trim($_POST['nazwa_pizzy']);
$kalorie = trim($_POST['rozmiar_pizzy']);

// sprawdź, czy taka nazwa produktu jest już w bazie
$zapytanie = "SELECT nazwa_pizzy FROM pizza WHERE nazwa_pizzy='$nowy_produkt'";
$produkt = mysql_query($zapytanie);

if (mysql_num_rows($produkt) > 0)
echo "<p>Produkt o takiej nazwie już istnieje. Podaj inną nazwę.</p>";

else {
$zapytanie = "INSERT INTO pizza (nazwa_pizzy, rozmiar_pizzy) VALUES ('$nowy_produkt', $kalorie)";
$wstaw = mysql_query($zapytanie);

if ($wstaw)
echo "<p>Dodano nowy produkt do bazy</p>";
else
echo "<p>Dodanie nowego produktu nie powiodło się</p>";
}
}

?>
<!-- 1. to widaj jako pierwsze -->
<p><b>Dodaj produkt</b></p>

<!-- formularz Dodaj nowy produkt -->

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
nazwa pizzy: <input name="nazwa_pizzy" size="35" />
rozmiar pizzy: <input name="rozmiar_pizzy" size="5" />

<input type="submit" name="dodaj" value="Dodaj" /><!--dodaje i odrazu wczytuje-->
<input type="reset" value="Resetuj" /><!--wyczyszcza formularz-->
</form>
<p /><!-- podkreslenie-->

<?php
// wygeneruj tabelę ze wszystkimi produktami pod podkresleniem

$zapytanie = "SELECT * FROM pizza ORDER BY nazwa_pizzy";
$produkty = mysql_query($zapytanie) or die ('Błąd: ' . mysql_error());

?>
<hr />
<table>
<tr><th>ID</th><th>Nazwa </th><th>Rozmiar </th><th></th></tr>

<?php
print $produkty;
while ($rekord = mysql_fetch_assoc($produkty)) {
//while ($rekord = mysql_fetch_row($produkty)) {
//while ($rekord = mysql_fetch_array($produkty)) {

?>
<tr>
<td><?php echo $rekord['id_pizzy']; ?></td>

<td><a href="<?php echo $_SERVER['PHP_SELF'];?>?akcja=edytuj&id=<?php echo $rekord['id_pizzy'];?>">
<!--bedzie id,nazwa podkreslona, kcal/100 ... jezeli klikne na dany produkt to zareaguje na akcje edytuj-->

<?php echo $rekord['nazwa_pizzy'];?></a></td>
<td><?php echo $rekord['rozmiar_pizzy'];?></td>
</tr>
<?php
}
?>
<table>

</body>
</html>



Prosze o pomoc
Go to the top of the page
+Quote Post
kfc4
post 29.07.2009, 20:35:24
Post #2





Grupa: Zarejestrowani
Postów: 195
Pomógł: 18
Dołączył: 7.10.2007

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


Wrzuć kod między [ php ] a [ /php ]

//Używaj przycisku 'Raportuj'
//manti_1986 dodaj BBcode
//~Spawnm


// Przepraszam, nie wiedziałem o takim czymś
//~kfc4

Ten post edytował kfc4 30.07.2009, 09:11:20
Go to the top of the page
+Quote Post
manti_1986
post 29.07.2009, 21:53:03
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.07.2009

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


Nie mogę wyświetlic wyniku na ekrenie w postaci tablicy..Po wyświetleniu zmiennej wyskakuje mi " Resource id #5 "


Moj kod to :


  1. <?php include ('naglowek.php'); ?>
  2.  
  3. <h3>Produkty</h3>
  4.  
  5. <?php
  6.  
  7. // formularz Edycja istniejącego produktu
  8. // jezeli klikne na produkt dany to stworzy formularz do edytowania biorac juz ten produkt po id
  9. if ($_GET['akcja'] == 'edytuj') {
  10. //pobiera produkt po id
  11. $zapytanie = "SELECT * FROM pizza WHERE id_pizzy=".$_GET['id_pizzy'];
  12. $produkt = mysql_query($zapytanie);
  13. $rekord = mysql_fetch_assoc($produkt);
  14. ?>
  15. <!--okno edytowania dodatkowo-->
  16. <p><b>Edytuj produkt</b></p>
  17.  
  18. <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
  19. <!--id tylko do oczytu nie mozna zmieniac-->
  20. ID: <input readonly name="id_pizzy" value="<?php echo $rekord['id'] ?>" size="2"/>
  21.  
  22. Produkt: <input name="nazwa_pizzy" value="<?php echo $rekord['nazwa'] ?>" size="40" />
  23.  
  24. kcal/100g: <input name="rozmiar_pizzy" value="<?php echo $rekord['kcal'] ?>" size="5" />
  25.  
  26. <input type="submit" name="zmien" value="Zmień" />
  27. <input type="reset" value="Resetuj" /><!--resetuje do postaci poprzedniej wlasciwej-->
  28.  
  29. </form><br />
  30.  
  31. <?php
  32. }
  33.  
  34. // zmiana istniejącego produktu
  35. //jezeli klikne na zmien
  36. if ($_POST['zmien']) {
  37.  
  38. // UWAGA: nie powinno się bez sprawdzenia wprowadzać do bazy tego, co podał użytkownik!
  39. $zapytanie = "UPDATE pizza SET nazwa_pizzy='".$_POST['nazwa_pizzy']."', rozmiar_pizzy=" . $_POST['rozmiar_pizzy'] . " WHERE id_pizzy=".$_POST['id_pizzy'];
  40.  
  41. $produkt = mysql_query($zapytanie);
  42.  
  43. if ($produkt)
  44. echo "<p>Aktualizacja powiodła się</p>";
  45. else
  46. echo "<p>Aktualizacja nie powiodła się!</p>";
  47. }
  48.  
  49.  
  50. // dodawanie nowego produktu
  51. //jezeli klikne na dodaj
  52. if ($_POST['dodaj']) {
  53.  
  54. $nowy_produkt = trim($_POST['nazwa_pizzy']);
  55. $kalorie = trim($_POST['rozmiar_pizzy']);
  56.  
  57. // sprawdź, czy taka nazwa produktu jest już w bazie
  58. $zapytanie = "SELECT nazwa_pizzy FROM pizza WHERE nazwa_pizzy='$nowy_produkt'";
  59. $produkt = mysql_query($zapytanie);
  60.  
  61. if (mysql_num_rows($produkt) > 0)
  62. echo "<p>Produkt o takiej nazwie już istnieje. Podaj inną nazwę.</p>";
  63.  
  64. else {
  65. $zapytanie = "INSERT INTO pizza (nazwa_pizzy, rozmiar_pizzy) VALUES ('$nowy_produkt', $kalorie)";
  66. $wstaw = mysql_query($zapytanie);
  67.  
  68. if ($wstaw)
  69. echo "<p>Dodano nowy produkt do bazy</p>";
  70. else
  71. echo "<p>Dodanie nowego produktu nie powiodło się</p>";
  72. }
  73. }
  74.  
  75. ?>
  76. <!-- 1. to widaj jako pierwsze -->
  77. <p><b>Dodaj produkt</b></p>
  78.  
  79. <!-- formularz Dodaj nowy produkt -->
  80.  
  81. <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
  82. nazwa pizzy: <input name="nazwa_pizzy" size="35" />
  83. rozmiar pizzy: <input name="rozmiar_pizzy" size="5" />
  84.  
  85. <input type="submit" name="dodaj" value="Dodaj" /><!--dodaje i odrazu wczytuje-->
  86. <input type="reset" value="Resetuj" /><!--wyczyszcza formularz-->
  87. </form>
  88. <p /><!-- podkreslenie-->
  89.  
  90. <?php
  91. // wygeneruj tabelę ze wszystkimi produktami pod podkresleniem
  92.  
  93. $zapytanie = "SELECT * FROM pizza ORDER BY nazwa_pizzy";
  94. $produkty = mysql_query($zapytanie) or die ('Błąd: ' . mysql_error());
  95.  
  96. ?>
  97. <hr />
  98. <table>
  99. <tr><th>ID</th><th>Nazwa </th><th>Rozmiar </th><th></th></tr>
  100.  
  101. <?php
  102. print $produkty;
  103. while ($rekord = mysql_fetch_assoc($produkty)) {
  104. //while ($rekord = mysql_fetch_row($produkty)) {
  105. //while ($rekord = mysql_fetch_array($produkty)) {
  106.  
  107. ?>
  108. <tr>
  109. <td><?php echo $rekord['id_pizzy']; ?></td>
  110.  
  111. <td><a href="<?php echo $_SERVER['PHP_SELF'];?>?akcja=edytuj&id=<?php echo $rekord['id_pizzy'];?>">
  112. <!--bedzie id,nazwa podkreslona, kcal/100 ... jezeli klikne na dany produkt to zareaguje na akcje edytuj-->
  113.  
  114. <?php echo $rekord['nazwa_pizzy'];?></a></td>
  115. <td><?php echo $rekord['rozmiar_pizzy'];?></td>
  116. </tr>
  117. <?php
  118. }
  119. ?>
  120. <table>
  121.  
  122. </body>
  123. </html>




Prosze o pomoc
Go to the top of the page
+Quote Post
krowal
post 30.07.2009, 06:43:46
Post #4





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


Kod od linijki ok 102
  1. <?php
  2. print $produkty; // !!!!!! $produkty to nie tablica tylko wynik zapytania
  3. while ($rekord = mysql_fetch_assoc($produkty)) {
  4. //while ($rekord = mysql_fetch_row($produkty)) {
  5. //while ($rekord = mysql_fetch_array($produkty)) {
  6.  
  7. ?>
  8. <tr>
  9. <td><?php echo $rekord['id_pizzy']; ?></td>
  10.  
  11. <td><a href="<?php echo $_SERVER['PHP_SELF'];?>?akcja=edytuj&id=<?php echo $rekord['id_pizzy'];?>">
  12. <!--bedzie id,nazwa podkreslona, kcal/100 ... jezeli klikne na dany produkt to zareaguje na akcje edytuj-->
  13.  
  14. <?php echo $rekord['nazwa_pizzy'];?></a></td>
  15. <td><?php echo $rekord['rozmiar_pizzy'];?></td>
  16. </tr>
  17. <?php
  18. }
  19. ?>

Próbujesz zrobić print na wyniku zapytania bez wcześniejszego fetch'a, poza tym do wyświetlania tablicy służy print_r() a nie print. Nie wiem czemu tu robisz źle skoro wcześniej miałeś zrobione dobrze, ale pewnie to jakiś gotowiec i nie wiesz nawet co się dzieje winksmiley.jpg


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
manti_1986
post 30.07.2009, 08:30:17
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.07.2009

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


Cytat(krowal @ 30.07.2009, 07:43:46 ) *
Kod od linijki ok 102
  1. <?php
  2. print $produkty; // !!!!!! $produkty to nie tablica tylko wynik zapytania
  3. while ($rekord = mysql_fetch_assoc($produkty)) {
  4. //while ($rekord = mysql_fetch_row($produkty)) {
  5. //while ($rekord = mysql_fetch_array($produkty)) {
  6.  
  7. ?>
  8. <tr>
  9. <td><?php echo $rekord['id_pizzy']; ?></td>
  10.  
  11. <td><a href="<?php echo $_SERVER['PHP_SELF'];?>?akcja=edytuj&id=<?php echo $rekord['id_pizzy'];?>">
  12. <!--bedzie id,nazwa podkreslona, kcal/100 ... jezeli klikne na dany produkt to zareaguje na akcje edytuj-->
  13.  
  14. <?php echo $rekord['nazwa_pizzy'];?></a></td>
  15. <td><?php echo $rekord['rozmiar_pizzy'];?></td>
  16. </tr>
  17. <?php
  18. }
  19. ?>

Próbujesz zrobić print na wyniku zapytania bez wcześniejszego fetch'a, poza tym do wyświetlania tablicy służy print_r() a nie print. Nie wiem czemu tu robisz źle skoro wcześniej miałeś zrobione dobrze, ale pewnie to jakiś gotowiec i nie wiesz nawet co się dzieje winksmiley.jpg




to że napisałem print $produkty to po to aby zobaczyc pojedynczy wynik ale go mi nie wyswietla.. nie wiem czy nie zauwazyłeś że to czy to jest czy tego nie ma nie zmienia postaci rzeczy że dalej niewiem co w kodzie mam źle
Go to the top of the page
+Quote Post
krowal
post 30.07.2009, 12:25:21
Post #6





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


Wiem, że nie wiesz co masz źle bo nawet tego kodu nie pisałeś smile.gif

Kilka linijek wcześniej przed kodem który wkleiłem poprzednio masz coś takiego:
  1. <?php
  2. $produkty = mysql_query($zapytanie); //linijka 95-96
  3. ?>

Później chcesz wyświetlić zmienną $produkty... to tak nie działa bo zmienna $produkty zawiera w sobie uchwyt do zasobu mysql który musi być jeszcze jakoś przetworzony. Btw jest to robione kilka linijek dalej w pętli:
  1. <?php
  2. while ($rekord = mysql_fetch_assoc($produkty)) { //linijka 104-105
  3. ?>

I jeśli w tej pętli dasz print_r($rekord); to ci wyświetli tablicę z danymi pobranymi z db dotyczącymi jednego rokordu.

Jeśli tego dalej nie rozumiesz to zacznij od jakiegoś tutoriala z podstawami.


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
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 Wersja Lo-Fi Aktualny czas: 21.06.2025 - 04:20