Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Administracja
Forum PHP.pl > Forum > Przedszkole
krzychol
Witam!

Jestem początkującym programistą php, i mam problem z menu w Administracji.

Otóż chcę napisać system newsów. Chciałbym aby gdy kliknę "dodaj" - wyświetlił się formularz, a gdy kliknę "wyświetl" to pojawią sie newsy. Dziękuje za pomoc.
stefan_precz
linki w menu robisz na zasadzie

panel.php?cos=dodaj

i potem wyłapujesz to w tym pliku

if ($id == 'dodaj'){
i tutaj wklejamy formularz dodawania
}

a ja poprawię @stefan_precz, gdyż wkradł się do jego logiki błąd. powinno być
  1. <?php
  2.  
  3. if ($cos == 'dodaj'){
  4. //i tutaj wklejamy formularz dodawania
  5. }
  6.  
  7. ?>

a bezpieczniej
  1. <?php
  2.  
  3. if ($_GET['cos'] == 'dodaj'){
  4. //i tutaj wklejamy formularz dodawania
  5. }
  6.  
  7. ?>

----
nospor
krzychol
Mam kolejny problem.

Otóż:

Chcę z bazy MySQL odczytać dane i następnie wstawić je w tabelę. Całkowicie nie mam pomysłu jak to wstawić. Mam 3 kolumny: datę, temat, treść.
Łącze się z bazą, wybieram pola, ale jak je wstawić w tabelę?

Z góry dzięki.
nospor
co tzreci post na forum (troche przesadzilem) zawiera wstawianie danych do tabeli. przejrzyj se topicu a znajdziesz.

jakbys nie znalazl:
  1. <?php
  2. //.....wykonaie zapytania
  3. echo &#092;"<table>\";
  4. while ($row = mysql_fetch_array($result))
  5. {
  6. echo &#092;"<tr>\";
  7. echo &#092;"<td>{$row['data']}</td>\";
  8. echo &#092;"<td>{$row['temat']}</td>\";
  9. echo &#092;"<td>{$row['tresc']}</td>\";
  10. echo &#092;"</tr>\";
  11. }
  12. echo &#092;"</table>\";
  13.  
  14. ?>
krzychol
Mam kolejny problem. Chcę wstawić tematy w wysuwaną listę w formularzu a następnie po wybraniu tematu i kliknięciu wykasować cały wiersz.

  1. <?php
  2. $query = &#092;"SELECT temat FROM news\";
  3.  $result = @mysql_query ($query);
  4.  
  5.  echo '<form method=\"post\" action=\"./nowosci.php?nowosci=wykasowanie\">';
  6.  
  7.  while ($row = mysql_fetch_array($result))
  8.  {
  9.  echo &#092;"<select>{$row['temat']}</select>\";
  10. }
  11.  echo &#092;"</form>\";
  12. ?>


Powyżej przedstawiam mój kod, niestety nie działa :/. Jak to zrobić?
Z góry dzięki.
pawel_k
sprobuj moze moze czegos takiego:
  1. <?php
  2. $query = &#092;"SELECT temat FROM news\";
  3.  $result = @mysql_query ($query);
  4.  
  5.  echo '<form method=\"post\" action=\"./nowosci.php?nowosci=wykasowanie\">';
  6.  echo '<select name=\"temat\">';
  7.  while ($row = mysql_fetch_array($result))
  8.  {
  9. echo '<option value=\"'.$row['temat'].'\">'.$row['temat'].'</option>';
  10. }
  11. echo '</select>';
  12.  echo '</form>';
  13. ?>
krzychol
No tak wszystko gra, ale jak nazywa się zmienna ta którą wybiorę z opcji?

$temat?
strife
$_POST['temat']
krzychol
No mam tak:

  1. <?php
  2. // Wykasowanie newsa z bazy MySQL 
  3. if ($_GET['nowosci'] == 'wykasowanie')
  4.  {
  5. $temat = $_POST['temat'];
  6. $query = &#092;"DELETE FROM news WHERE temat = '$temat'\";
  7. echo 'Wybrany news został wykasowany.';
  8. }
  9. ?>


Ale to nie działa sad.gif
strife
Nie widzę tutaj gdzie wywołujesz mysql_query" title="Zobacz w manualu PHP" target="_manual
  1. <?php
  2.  
  3. // Wykasowanie newsa z bazy MySQL 
  4. if ($_GET['nowosci'] == 'wykasowanie')
  5. {
  6. $temat = $_POST['temat'];
  7. $query = mysql_query(&#092;"DELETE FROM news WHERE temat = '$temat'\");
  8. echo 'Wybrany news został wykasowany.';
  9. }
  10.  
  11. ?>
krzychol
nic niedało ... dalej nie działa sad.gif
nospor
ja w tym formualrzu co tu jest nie widzę nigdzie żadnego submita, czyli formualrz nie jest wysylany. Przed koncem formularza dodaj:
  1. <?php
  2.  
  3. echo '<input type=\"submit\" value=\"skasuj\">';
  4.  
  5. ?>


przy kasowaniu daj echo zeby sprawdzic czy wogole tam dochodzi i dorób jeszcze komuikat bledu
  1. <?php
  2.  
  3. if ($_GET['nowosci'] == 'wykasowanie')
  4. {
  5. echo &#092;"wszedlem do kasowania\";
  6. $temat = $_POST['temat'];
  7. $query = mysql_query(&#092;"DELETE FROM news WHERE temat = '$temat'\") or die(mysql_error());
  8. echo 'Wybrany news został wykasowany.';
  9. }
  10.  
  11. ?>
krzychol
Przycisk był - moja wina bo nie wpisałem całego kodu ... ale błąd leżał gdzie indzie ... połączenie do bazy MySQL się wcześniej urywało i pokazywało tekst, ale nie łączyło się z bazą. Dzięki.
R4v3N
ja to bym dal id wpisu i uwuwalbym po id tongue.gif
np

Formularz
  1. <?php
  2. switch($_GET['op']) {
  3.  case &#092;"form\":
  4. ?>
  5. <form action=?op=del method=post>
  6. Wybierz news'a : <select name=id>
  7. <?php
  8. $wyk = mysql_query(&#092;"select * newsy order by id desc\");
  9. while($row = mysql_fetch_array($wyk)) {
  10.  echo &#092;"<option value=\".$row['id'].\">\".$row['tytul'].\"</option>\";
  11. }
  12. ?>
  13. </select>
  14. <input type=submit>
  15. </form>
  16. <?php 
  17.  break;
  18.  case &#092;"del\":
  19.   if($_POST['id']) {
  20.       $wyk = mysql_query(&#092;"delete from news where id='\".$_POST['id'].\"'\");
  21.       if($wyk) {
  22.            echo &#092;"news zostal usuniety\";
  23.       }
  24.       else {
  25.            echo &#092;"news nie zostal usuniety. MYSQL_ERROR: \".mysql_error();
  26.       }
  27.   }
  28.   else {
  29.        echo &#092;"brak parametru ID\";
  30.   }
  31.   break;
  32. }
  33. ;


chyba bedzie tak tongue.gif nie sprawdzalem tego ale chyba powinno dzialac tongue.gif
krzychol
Mam kolejne pytanie ...

Czy gdy wybieram jeden wiersz z tabeli MySQL musze korzystać z pętli while aby wstawić dane do edycji?
Z góry dziękuje za pomoc.
vieri_pl
No raczej...
pawel_k
jezeli pytasz sie czy musisz stosowac cos takiego
  1. <?php
  2. while($row = mysql_fetch_array($wyk))
  3. ?>
to nie... jesli masz pewnosc ze wybierasz tylo jedem wiersz to stosowanie petli jest bez sensu... wystarczy sam zapis $row = mysql_fetch_array($wyk)
krzychol
Czy poniższy kod jest poprawny?

  1. <?php
  2.  
  3. // Edytowanie
  4. if ($_GET['ksiega'] == edytowanie)
  5.  {
  6.  $sql = mysql_connect ($host, $user, $pass);
  7.  mysql_select_db(&#092;"$db\");
  8.  $imie = $_POST['imie'];
  9.  $query = &#092;"SELECT * FROM ksiega WHERE imie = $imie\";
  10.  $result = @mysql_query ($query);
  11.  
  12.  echo '<form action=\"./ksiega.php?ksiega=zapis\" method=\"post\">
  13.  <br>';
  14.  
  15.  while ($row = mysql_fetch_array($result))
  16. {
  17.  echo &#092;"<fieldset>
  18. <legend>Aby dodac wpis wypelnij ponizszy formularz.</legend>
  19.  <table cellspacing=0 cellpading=0>
  20. <tr>
  21. <th colspan=2 width=100>
  22.  </th>
  23. </tr>
  24. <tr valign=top align=left>
  25.  <th width=45% class=tekst>Imie i Nazwisko lub nick <b>*</b>
  26.  </th>
  27.  <th width=55%>
  28. <input type=text name=imie size=30 value={$row['imie']}>
  29.  </th>
  30. </tr>
  31. <tr valign=top align=left>
  32.  <th width=45% class=tekst>E-mail
  33.  </th>
  34.  <th width=55%>
  35. <input type=text name=email size=30 value={$row['email']}>
  36.  </th>
  37. </tr>
  38. <tr valign=top align=left>
  39. <th width=45% class=tekst>Skad jestes?
  40. </th>
  41.  <th width=55%>
  42. <input type=text name=skad size=30 value={$row['skad']}>
  43. </th>
  44. </tr>
  45. <tr valign=top align=left>
  46.  <th width=45% class=tekst>Gadu-Gadu
  47.  </th>
  48.  <th width=55%>
  49. <input type=text name=gg size=30 value={$row['gg']}>
  50.  </th>
  51. </tr>
  52. <tr valign=top align=left>
  53.  <th width=45% class=tekst>Treśa wpisu: <b>*</b>
  54.  </th>
  55.  <th width=55%>
  56. <textarea name=tresc rows=6 cols=30>{$row['tresc']}</textarea>
  57.  </th>
  58. </tr>
  59. <tr>
  60.  <th colspan=2 width=100%>
  61. <input type=submit name=zapis value=Wykasuj>
  62.  </th>
  63. </tr>
  64. <tr valign=top align=left>
  65.  <th colspan=2 width=100%>* Pola wymagane!
  66.  </th>
  67. </tr>
  68.  </table>
  69. </fieldset>
  70.  </form>&#092;"; 
  71.  }
  72.  mysql_close($sql);
  73.  }
  74.  
  75. ?>


Aha dodam że wcześnie wybiera się z formularza zmienną $imie co działa poprawnie.
R4v3N
ja tu nigdzie nie widze <form action="url" method="post/get">

a reszta to chyba sie zgadza.

BTW. Masz juz pierwsza czesc tego skryptu za soba tongue.gif teraz tylko update wpisu :] i bedzie gotowy tongue.gif
krzychol
Form jest ... nad pętlą while - niewiem czemu akurat tak mam, ale jest. Najgorsze jest to że ten skrypt nie działa :/ ... bo jedyna rzecz która się wkłada poprawnie to imię :/.
Majcok12
pokaz funkcje zapis, ktora updatuje te dane.

btw. nie widze wiekszego sensu edytowania wszystkich wpisow danego usera, np. klikne edytuj wpis i pokaza mi sie do edytowania wszystkoe moje wpisy, lepiej zrobic edycje jednego konkretnego wpisu, co bedzie szybsze i moim zdaniem lepsze. a jesli chciales edytowac tylko jeden konkretny wpis to wystarczy w zapytaniu zamiast where imie = 'imie', dac where post_num = 'dany_id', bo mysle ze masz w tabeli takie pole jak post_num czy cos takiego z atrybutem auto_increment i wtedy obejdzie sie bez petli, bo bedzie tylko jeden wpis
krzychol
Chyba źle coś napisałem. Problem polega na tym że dane nie wprowadzają się do formularza. Z tym jednym użytkownikiem masz rację. Tylko niewiem jak to zrobić. Jestem początkujący :/
Majcok12
czyli przyjmuje, ze w tabeli masz pole id, ktore ma atrybut auto_increment (tak, ze kazdy wpis ma inny, unikalny numer) i w linku do edycji masz podany id

  1. <?
  2. if ($_GET['ksiega'] == edytowanie)
  3. {
  4. $sql = mysql_connect ($host, $user, $pass);
  5. mysql_select_db(&#092;"$db\");
  6.  
  7. $query = &#092;"SELECT * FROM ksiega WHERE id = $_GET[id]\";
  8. $result = @mysql_query ($query);
  9.  
  10. ?>
  11. <form action=\"./ksiega.php?ksiega=zapis\" method=\"post\">
  12. <br>
  13. <?
  14. $row = mysql_fetch_array($result);
  15.  
  16. ?>
  17. <fieldset>
  18. <legend>Aby dodac wpis wypelnij ponizszy formularz.</legend>
  19.  <table cellspacing=0 cellpading=0>
  20. <tr>
  21. <th colspan=2 width=100>
  22.  </th>
  23. </tr>
  24. <tr valign=top align=left>
  25.  <th width=45% class=tekst>Imie i Nazwisko lub nick <b>*</b>
  26.  </th>
  27.  <th width=55%>
  28. <input type=text name=imie size=30 value=<? echo $row['imie']; ?>>
  29.  </th>
  30. </tr>
  31. <tr valign=top align=left>
  32.  <th width=45% class=tekst>E-mail
  33.  </th>
  34.  <th width=55%>
  35. <input type=text name=email size=30 value=<? echo $row['email']; ?>>
  36.  </th>
  37. </tr>
  38. <tr valign=top align=left>
  39. <th width=45% class=tekst>Skad jestes?
  40. </th>
  41.  <th width=55%>
  42. <input type=text name=skad size=30 value=<? echo $row['skad']; ?>>
  43. </th>
  44. </tr>
  45. <tr valign=top align=left>
  46.  <th width=45% class=tekst>Gadu-Gadu
  47.  </th>
  48.  <th width=55%>
  49. <input type=text name=gg size=30 value=<? echo $row['gg']; ?>>
  50.  </th>
  51. </tr>
  52. <tr valign=top align=left>
  53.  <th width=45% class=tekst>Treśa wpisu: <b>*</b>
  54.  </th>
  55.  <th width=55%>
  56. <textarea name=tresc rows=6 cols=30><? echo $row['tresc']; ?></textarea>
  57.  </th>
  58. </tr>
  59. <tr>
  60.  <th colspan=2 width=100%>
  61. <input type=submit name=zapis value=Wykasuj>
  62.  </th>
  63. </tr>
  64. <tr valign=top align=left>
  65.  <th colspan=2 width=100%>* Pola wymagane!
  66.  </th>
  67. </tr>
  68.  </table>
  69. </fieldset>
  70.  </form>
  71. <?
  72.  }
  73.  mysql_close($sql);
  74. }
  75.  
  76. ?>
Guest
a mzoe masz blad w zapytaniu do mysql... ? daj za mysql_query(zapytanie):

or die(mysql_error());

bo widze ze postawiles @ przed mysql_query co wylacza pokazywanie ew. bledow
krzychol
Znalazłem swój błąd. Niewiem czemu ale z wysuwanej listy nie przenosi mi zmiennej id :/.

  1. <?php
  2.  
  3. // Wybranie wpisu do edycji
  4. if ($_GET['ksiega'] == 'edytuj')
  5.  {
  6.  $query = "SELECT id FROM ksiega";
  7.  $result = mysql_query ($query);
  8.  
  9.  echo '<p class="tekst">Wybierz autora wpisu który ma zostac edytowany:</p>';
  10.  echo '<form method="post" action="./ksiega2.php?ksiega=edytowanie">
  11.  <select name="tytul">';
  12.  
  13.  while ($row = mysql_fetch_array($result))
  14.  {
  15. echo '<option value="'.$row[id].'">'.$row[id.'</option>';
  16.  }
  17.  
  18.  echo '</select>
  19.  <br>
  20.  <input type=submit name=edytuj value=Edytuj>
  21.  </form>';
  22.  }
  23.  
  24. ?>


Sprawdziłem to przez wywołanie echa i zmiennej id. Oczywiście w następnej stronie umieściłem:
$id = $_POST['id'];

ale to nic nie dało sad.gif. Co robić?
NuLL
  1. <?php
  2.  
  3. // Wybranie wpisu do edycji
  4. if ($_GET['ksiega'] == 'edytuj')
  5. {
  6. $query = "SELECT id,imie FROM ksiega";
  7. $result = mysql_query ($query);
  8.  
  9. echo '<p class="tekst">Wybierz autora wpisu który ma zostac edytowany:</p>';
  10. echo '<form method="post" action="./ksiega2.php?ksiega=edytowanie">
  11.  <select name="tytul">';
  12.  
  13. while ($row = mysql_fetch_array($result))
  14.  {
  15. echo '<option value="'.$row['id'].'">'.$row['imie'].'</option>';
  16.  }
  17.  
  18. echo '</select>
  19.  <br>
  20.  <input type=submit name=edytuj value=Edytuj>
  21.  </form>';
  22. }
  23.  
  24. ?>
krzychol
NuLL to nic nie dało. Dalej to samo. Niewiem czemu ale skrypt nie przenosi zmiennej id metodą POST dalej :/. Gdy wpisze numer zamiast zmiennej w zapytaniu to działa.
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.