Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/mysql] Dubluje zapytanie
Rafiki
post 22.12.2007, 20:05:56
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 29.12.2005
Skąd: Z krzaków

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


Witam.

Pisze sobie skrypt do zarzadzania trescia strony, nie korzystam z zadnych szablonow jedynie pierw wykonuje kod php a na samym koncu dolaczam pliki .html z wygladem ogolnie zrobilem juz autoryzacja ktora dziala ok. Po zalogowaniu sie do panelu admina dodalem mozliwosci dodania kategori newsow, plik news_category.php wyglada tak:

  1. <?php
  2.  
  3. /**
  4.  * @author Rafał Robakowski <rafal.robakowski@gmail.com>
  5.  * @version 1.0
  6. */
  7.  
  8. /**
  9.  * news_category.php - dodawanie kategorii aktualności.
  10. */
  11.  
  12. // Ładowanie wszystkich niezbędnych plikow ( config oraz klasy )
  13. include('../config.php');
  14. include('../libs/engine.class.php');
  15. include('../libs/sql.class.php');
  16. include('../libs/access.class.php');
  17.  
  18. try
  19. {
  20. // Rozpocznij operacje na sesjach ( włacz automat sesji )
  21.  
  22. // Połącz się z baza danych
  23. sql_connect($config['db_host'], $config['db_user'], $config['db_password'], $config['db_name']);
  24.  
  25. // Sprawdz czy jest już zalogowany
  26. if ( !Access_check_login() )
  27. throw new system_Exception('Brak autoryzacji !');
  28.  
  29. // Sprawdz czy posiada uprawnienia
  30. if ( !Access_check_access('news') )
  31. throw new system_Exception('Brak uprawnień !');
  32.  
  33. // Dodawanie kategorii
  34. if ( $_GET['action'] == add ) {
  35.  
  36. if ( !empty($_POST['submit'])) {
  37. if ( empty($_POST['name']) || empty($_POST['description'])) {
  38. throw new Exception('Nie podałeś danych potrzebnych do dodania kategorii news'a');
  39. } else {
  40. Sql_query("INSERT INTO news_category VALUES('', '". trim(htmlspecialchars($_POST['name'])) ."', '". trim(htmlspecialchars($_POST['description'])) ."', '". $_POST['under_id'] ."')");
  41. }
  42. }
  43. }
  44.  
  45. } catch (system_Exception $sys_Ex) {
  46. include_once('../templates/' . $config['template'] . '/admin/header.html');
  47. include_once('../templates/' . $config['template'] . '/admin/left.html');
  48. include('../templates/' . $config['template'] . '/admin/system_Exception.html');
  49. } catch (Exception $Ex) {
  50. include_once('../templates/' . $config['template'] . '/admin/header.html');
  51. include_once('../templates/' . $config['template'] . '/admin/left.html');
  52. include('../templates/' . $config['template'] . '/admin/Exception.html');
  53. }
  54.  
  55. include_once('../templates/' . $config['template'] . '/admin/header.html');
  56. include_once('../templates/' . $config['template'] . '/admin/left.html');
  57. include('../templates/' . $config['template'] . '/admin/news_category.html');
  58. include('../templates/' . $config['template'] . '/admin/right.html');
  59. include('../templates/' . $config['template'] . '/admin/footer.html');
  60.  
  61. ?>


No i plik news_category.html ktory wyglada tak:

  1. <?php
  2. if ( $Access['is_logged'] === TRUE ) {
  3. ?>
  4.  
  5. <div class="post">
  6. <h2 class="title">Panel administracyjny</h2>
  7. <div class="entry">
  8.  
  9. <?php
  10. if ( $_GET['action'] == add ) {
  11. ?>
  12. <form action="news_category.php?action=add" method="POST">
  13. <table border="0" cellspacing="5" cellpadding="0" width="100%">
  14. <tr>
  15.  <td width="18%" valign="top"><strong>Nazwa kategorii:</strong></td>
  16. <td width="82%"><input type="text" name="name" style="width:100%;"></td>
  17. </tr>
  18. <tr>
  19. <td valign="top"><strong>Opis kategorii:</strong></td>
  20. <td><textarea name="description" style="width:100%; height: 100px;"></textarea></td>
  21. </tr>
  22. <tr>
  23. <td valign="top"><strong>Podkategoria:</strong></td>
  24. <td><select name="under_id" style="width: 100%">
  25. <option value='0'>Brak podkategorii</option>
  26. <?php
  27. Sql_query('SELECT id, name FROM news_category WHERE under_id="0"');
  28.  
  29. while ( Sql_assoc() ) {
  30. $rows = $Sql['rows'];
  31. echo '<option value=''. $rows['id'] .''> &nbsp; &nbsp;- '. $rows['name'] .'</option>';
  32. }
  33. ?>
  34. </select>
  35. </td>
  36. </tr>
  37. <tr><td colspan="2" align="right"><input type="submit" name="submit" value="&nbsp; Dodaj &nbsp;"></td></tr>
  38. </table>
  39. </form>
  40. <?php
  41. }
  42. ?>
  43.  
  44. </div>
  45. </div>
  46.  
  47. <?php } ?>


niby wszystko działa ok, jedyny problem w tym ze po kazdym dodaniu jakiejś kategorii dodaje ją podwójnie. Za kazdym razem, probowałem już wszystkich rzeczy jakie przyszły mi do głowy ale nic. Za każdym razem po dodaniu jakiejs kategori pozniej patrze w phpmyadminie i kazda kategorie jest dodana dwa razy , nie mam pojęcia dlaczego.

Pracuje na localu gdzie chodzi xampp 1.6.4 pod windows'em xp.

Ten post edytował Rafiki 22.12.2007, 20:07:39
Go to the top of the page
+Quote Post
b_chmura
post 23.12.2007, 13:22:08
Post #2





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


jak na moje wina leży o tutaj:
  1. <?php
  2. Sql_query('SELECT id, name FROM news_category WHERE under_id="0"');
  3.  
  4. while ( Sql_assoc() ) {
  5. ?>

zamień to na:
  1. <?php
  2. while (Sql_query('SELECT id, name FROM news_category WHERE under_id="0"')) {
  3. ?>
Go to the top of the page
+Quote Post
Rafiki
post 23.12.2007, 20:08:29
Post #3





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 29.12.2005
Skąd: Z krzaków

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


chyba nie ... przeciez te zapytanie wogole odczytuje dane z mysqla' a problem polega na tym ze dane sa dodawane podwojnie.
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: 27.06.2025 - 06:28