Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] Dubluje zapytanie
Forum PHP.pl > Forum > PHP
Rafiki
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.
b_chmura
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. ?>
Rafiki
chyba nie ... przeciez te zapytanie wogole odczytuje dane z mysqla' a problem polega na tym ze dane sa dodawane podwojnie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.