Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]/[mysql]rozwijana lista
Forum PHP.pl > Forum > Przedszkole
Lejto
Mam rozwijany formularz który pobiera dane z mysql po zaznaczeniu u naciśnięciu przycisku mają zostać wysłane dane to bazy mysql ale to nie działa nie robiłem nigdy rozwijanych list z powiązaniem z mysql

Kod formularza:
  1. <?php
  2. $sql = "SELECT * FROM nauczyciel";
  3. $query = mysql_query($sql) or die ("Błąd MySQL");
  4. $rows=mysql_num_rows($query);
  5. ?>
  6.  
  7. <form action="?co=glosowanie" method="post">
  8. <select name="">
  9. <?
  10. for($i=0; $i < $rows; $i++)
  11. {
  12.  $row = mysql_fetch_array($query);
  13. ?>
  14.  
  15.  
  16. <option name="<? echo ($row[id]); ?>"><? echo ($row[blefer]) ?></option>
  17.  
  18.  
  19. <?php
  20. }
  21. ?><br />
  22. <input type="submit" value="Głosuj!" />
  23. </form>
  24. <?
  25.  
  26. echo '</select></form>';
  27. echo '</td></tr></table>';
  28. ?>


Kawałek kodu pochodzącego z pliku ?co=glosowanie
  1. <?php
  2. $id = $_POST['id'];
  3.  
  4. if(!empty($id)) // jezeli formularz zostal wypelniony, dodanie glosu 
  5. {
  6.  
  7. $id = addslashes($id);
  8. $zapytanie = "update nauczyciel set = glosow + 1 where blefer = '$id'";
  9. $query = mysql_query($wynik) or die ("Nie mogę wykonać zapytania");
  10. }
  11. ?>


Kod SQL:
  1. CREATE TABLE `nauczyciel` (
  2. `blefer` text character SET utf8 collate utf8_polish_ci NOT NULL,
  3. `glosow` text NOT NULL,
  4. `miejsce` text NOT NULL,
  5. `id` int(11) NOT NULL AUTO_INCREMENT,
  6. PRIMARY KEY (`id`)
  7. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=68 ;


EDIT: Poprawiłem pętle bo nie jest tak jak powinna być
dziurson
Spróbuj coś takiego

$query1 = mysql_query("SELECT glosow FROM nauczyciel WHERE id='".$id."';");
$data = mysql_fetch_assoc($query1);
$glosow = $data[glosow]+1;

$update = mysql_query("UPDATE nauczyciel SET glosow=".$glosow." WHERE id='".$id."';");

-- EDIT by JaRoPHP --
Proszę o stosowanie znaczników bbcode. Tym razem poprawiam, następnym razem dostaniesz 'nagrodę'.
Lejto
zrobiłem tak jak piszesz i w ogóle nie che mi obrazka wyświetlać błędy się pokazują z headerem

dziurson: miałeś błąd w zapytaniu ale jak go poprawiłem to i tak mi nie działa mam gdzieś błąd przy pobraniu parametru name do tablicy POST

Zmieniłem kod (option nie może mieć "name") ale i tak nie działa nie wiem już co mam źle
Kod formularza:
  1. <?
  2. $glosow=$_REQUEST['glosow'];
  3. $sql = "SELECT * FROM nauczyciel";
  4. $query = mysql_query($sql) or die ("Błąd MySQL");
  5. $rows=mysql_num_rows($query);
  6. ?>
  7.  
  8. <form action="?co=glosowanie" method="post">
  9. <select name="glosow">
  10. <?
  11. for($i=0; $i < $rows; $i++)
  12. {
  13.  $row = mysql_fetch_array($query);
  14. ?>
  15.  
  16.  
  17. <option value="<? echo ($row[blefer]); ?>"><? echo ($row[blefer]) ?></option>
  18.  
  19.  
  20. <?php
  21. }
  22. ?><br />
  23. <input type="submit" value="Głosuj!" />
  24. </form>
  25. <?
  26.  
  27.  
  28. echo '</select></form>';
  29.  
  30.  
  31.  
  32.  
  33.  
  34. echo '</td></tr></table>';
  35. ?>


Kod dodania do bazy:
  1. <?php
  2. if(!empty($glosow)) // jeżeli formularz został wypełniony, dodanie głosu
  3. {
  4.  
  5. $glosow=addslashes($glosow);
  6. $zapytanie="update nauczyciel
  7. set glosow = glosow + 1
  8. where blefer = '$glosow'";
  9. mysql_query($zapytanie) or die ("nie mogę wykonać zapytania");
  10. }
  11. ?>
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.