Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]dodawanie rekordow/kategorie
Forum PHP.pl > Forum > Przedszkole
gigzorr
  1. <?php
  2.  
  3.  
  4.  
  5. if (!$tekst)
  6.  
  7. {
  8. echo "Nie zostały wypełnione wszystkie pola";
  9. }
  10.  
  11.  
  12. $tekst = addslashes($tekst);
  13.  
  14.  
  15. $db = mysql_connect("localhost", "root", "krasnal");
  16. if (!$db)
  17. {
  18. echo "Nie można nawiązać połączenia z bazą danych";
  19. }
  20.  
  21. mysql_select_db("opisiki");
  22.  
  23. $query = "insert into angielskie values ('".$tekst. "')";
  24. $query = "insert into erotyczne values ('".$tekst. "')";
  25. $query = "insert into smieszne values ('".$tekst. "')";
  26.  
  27. $result = mysql_query($query);
  28.  
  29. if($result)
  30. echo "opis <b>".$tekst."</b> został dodany";
  31. else {echo "juz jest ten opis.";}
  32.  
  33.  
  34. ?>


  1. <form action="dodaj.php" method="post">
  2. Opis:<input type="text" name="tekst" /><br /><br />
  3. Kategoria:
  4. <select name="nazwa">
  5. <option>smieszne</option>
  6. <option>erotyczne</option>
  7. <option>angielskie</option>
  8.  
  9. <br /><br />
  10. <input type="submit" value="Dodaj" />
  11. </form>


Mam taki oto kod , w bazie danych mam 3 tabele , smieszne,erotyczne,angielskie.
I teraz mam problem , nie mam pomysłu jak zrobić zapytanie?$query , żeby dodawał
np wybiore erotyczne , i wpisze opis i doda do tabeli erotyczne.
Jedyne co udało mi się zrobić to , np zapytanie
  1. $query = "insert into angielskie values ('".$tekst. "')";

[/php]
i wszystko ładnie doda to tabeli angielskie
ale już jak mam:
  1. $query = "insert into angielskie values ('".$tekst. "')";
  2. $query = "insert into smieszne values ('".$tekst. "')";
  3. $query = "insert into erotyczne values ('".$tekst. "')";

czyli wybiore np smieszne to i tak doda do innego chyba trzeciego.
neverever
No przecież sobie dwukrotnie nadpisujesz tą zmienną $query , to co się dziwisz?

Jeżeli chcesz uzależnić od wybranej opcji w polu select formularza, to

  1. switch($_POST['nazwa']) {
  2. case 'angielskie':
  3. $query = "insert into angielskie values ('".$tekst. "')";
  4. break;
  5. case 'erotyczne':
  6. $query = "insert into erotyczne values ('".$tekst. "')";
  7. break;
  8. case 'smieszne':
  9. $query = "insert into smieszne values ('".$tekst. "')";
  10. break;
  11. }
albo coś w tym stylu.
gigzorr
Cytat(neverever @ 10.03.2010, 17:39:42 ) *
No przecież sobie dwukrotnie nadpisujesz tą zmienną $query , to co się dziwisz?

Jeżeli chcesz uzależnić od wybranej opcji w polu select formularza, to

  1. switch($_POST['nazwa']) {
  2. case 'angielskie':
  3. $query = "insert into angielskie values ('".$tekst. "')";
  4. break;
  5. case 'erotyczne':
  6. $query = "insert into erotyczne values ('".$tekst. "')";
  7. break;
  8. case 'smieszne':
  9. $query = "insert into smieszne values ('".$tekst. "')";
  10. break;
  11. }
albo coś w tym stylu.


dzięki działa jak należy smile.gif



a jeszcze jedno pytanie , w menu mam kategorie np . smieszne,angielskie

utworzyłem pliki angielskie.html smieszne.html , includowanie all jest ok
ale jak mam zrobić , żeby po kliknięciu w daną kategorie , wyświetlały się wszystkie opisy z , danej tabeli?
i jeszcze jeden problem z hostem , cały czas , mam " Nie zostały wypełnione wszystkie pola" wpisałem błędne hasło/login żeby sprawdzić
czy wyskoczy błąd o połączeniu a tu nic ku mojemu zdziwieniu?na localu działa na servie nie?
bobo168
Przesyłasz w tym linku kategorii id za pomocą tablicy $_GET potem sobie tylko podstawiasz te id do zapytania i tyle..
A co do drugiego pytania to nie rozumiem.
gigzorr
Cytat(bobo168 @ 10.03.2010, 20:07:47 ) *
Przesyłasz w tym linku kategorii id za pomocą tablicy $_GET potem sobie tylko podstawiasz te id do zapytania i tyle..
A co do drugiego pytania to nie rozumiem.


coś takiego?
  1. <?php
  2. switch ($_GET['id']) {
  3. case 'smieszne': include("smieszne.html"); break;
  4.  
  5.  
  6. }
  7. ?>
bobo168
Widzę że nie masz za bardzo pojęcia o php/mysql przeczytaj jakąś książkę, to samo dojdziesz do tego jak to zrobić.
gigzorr
coś takiego zrobiłem :

  1. <?php
  2. $db = mysql_connect_db("localhost", "root", "krasnal");
  3. mysql_select_db("opisiki");
  4. $query = mysql_query("SELECT * FROM `opisiki`.`erotyczne`");
  5. while ($row = mysql_fetch_assoc ($result) )
  6. $B['adm'] = $u['text'];
  7.  
  8. echo''.$B['adm'].'';
  9.  
  10.  
  11.  
  12. ?>


ale mam blad
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\dodaj\wyswietl.php on line 16

linia:
while ($row = mysql_fetch_assoc ($result) )
mortus
A gdzie masz zmienną $result ? U Ciebie jest to zmienna $query. Mija się to nieco z logiką (z angielskiego query to zapytanie, a my w pętli while poruszamy się po wynikach zapytania, czyli po results). Bardziej logicznie byłoby tak:
  1. $query = "SELECT * FROM `opisiki`.`erotyczne`";
  2. $result = mysql_query($query);
gigzorr
Cytat(mortus @ 11.03.2010, 09:20:40 ) *
A gdzie masz zmienną $result ? U Ciebie jest to zmienna $query. Mija się to nieco z logiką (z angielskiego query to zapytanie, a my w pętli while poruszamy się po wynikach zapytania, czyli po results). Bardziej logicznie byłoby tak:
  1. $query = "SELECT * FROM `opisiki`.`erotyczne`";
  2. $result = mysql_query($query);


przerobiłem tak jak mówiłeś ale dalej nic.ale znalazłem na necie:
  1. <?php
  2. mysql_connect("localhost", "root", "krasnal");
  3. mysql_select_db("opisiki");
  4. $result = mysql_query("SELECT * FROM erotyczne");
  5.  
  6. if ($result && mysql_num_rows($result)) {
  7. $numrows = mysql_num_rows($result);
  8. $rowcount = 1;
  9. print "Opisy w kategori erotyczne:<br /><br />";
  10.  
  11. while ($row = mysql_fetch_assoc($result)) {
  12. print "Row $rowcount<br />";
  13.  
  14. while(list($var, $val) = each($row)) {
  15. print "<B>$var</B>: $val<br />";
  16. }
  17.  
  18. print "<br />";
  19. ++$rowcount;
  20. }
  21. }
  22. ?>


takie działa , ale mógłby mi ktoś wytłumaczyć drugą połowe tego?
na poczatku rozumiem polaczenia/wybieranie bazy,tabeli z ktorej ma czytac, pozniej jest (zapytanie?) , ale co ono robi?
rowcount tez wiem co robi
przerobilem sobie na bardziej zrozumialy dla mnie
  1. <?php
  2. $db = mysql_connect("localhost", "root", "krasnal"); // polaczenie z baza danych
  3. if (!$db)
  4. {
  5. echo "nie mozna nawiazac polaczenia z baza danych";
  6. }
  7.  
  8. $db = mysql_select_db("opisiki"); // wybieranie bazy danych
  9. if (!$db)
  10. {
  11. echo "nie ma takej bazy";
  12. }
  13. $result = mysql_query("SELECT * FROM erotyczne"); // wybieranie tabeli , z ktorej ma odczytac dane
  14. if (!$result)
  15. {
  16. echo "nie mozna odczytac tabeli";
  17. }
  18.  
  19. if ($result && mysql_num_rows($result)) {
  20. $numrows = mysql_num_rows($result);
  21. $rowcount = 1; // od ktorego ma odliczac
  22. echo "Opisy w kategori erotyczne:<br /><br />";
  23.  
  24. while ($row = mysql_fetch_assoc($result)) {
  25. echo "<b>ID</b>:$rowcount<br />";
  26.  
  27. while(list($var, $val) = each($row)) {
  28. echo "<B>$var</B>: $val<br />";
  29. }
  30.  
  31. echo "<br />";
  32. ++$rowcount;
  33. }
  34. }
  35. ?>

ale tam gdzie jest koment od ktorego ma odliczac to tych 2 wyzej nie rozumiem
mortus
Przede wszystkim:
  1. $result = mysql_query("SELECT * FROM erotyczne");
to nie jest wybieranie tabeli, z której chcemy odczytać dane, ale właśnie pobieranie wszystkich danych z tabeli erotyczne i zapisanie ich do zmiennej $result.
Warunek
  1. if ($result && mysql_num_rows($result))
mówi: jeżeli udało się nam pobrać dane (czyli istnieje zmienna $result) i możemy uzyskać liczbę wierszy pobranych danych (mysql_num_rows($result)) to
  1. $numrows = mysql_num_rows($result);
zapisz liczbę wierszy pobranych danych do zmiennej $numrows.
Ogólnie, to brak Ci podstaw MySQL. Polecam poczytać manuala lub poszukać jakiegoś kursu PHP+MySQL
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.