Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Dodawanie pola rekordu w tabeli
Forum PHP.pl > Forum > Przedszkole
wisiek21
  1. <?php
  2.  
  3. if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
  4. {
  5. header('Location: logowanie-bibliotekarza.php');
  6. exit();
  7. }
  8.  
  9. require_once "connect.php";
  10.  
  11. $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
  12.  
  13. if ($polaczenie->connect_errno!=0)
  14. {
  15. echo "Error: ".$polaczenie->connect_errno;
  16. }
  17. else
  18. {
  19. $nazwa = $_POST['nazwa'];
  20.  
  21. $nazwa = htmlentities($nazwa, ENT_QUOTES, "UTF-8");
  22.  
  23. if ($rezultat = @$polaczenie->query(
  24. sprintf("SELECT * FROM kategoria WHERE nazwa='%s'",
  25. mysqli_real_escape_string($polaczenie,$nazwa))))
  26. {
  27. $ilu_kategorii = $rezultat->num_rows;
  28. if($ilu_kategorii>0)
  29. {
  30. $_SESSION['blad'] = '<span style="color:red">Nieprawidłowa nazwa kategorii!</span>';
  31. header('Location: kategoria.php');
  32.  
  33. } else {
  34.  
  35. sprintf("INSERT INTO $db_name.kategoria VALUES(null, '%s')",
  36. mysqli_real_escape_string($polaczenie,$nazwa))
  37.  
  38.  
  39. unset($_SESSION['blad']);
  40. $rezultat->free_result();
  41.  
  42.  
  43. }
  44.  
  45. }
  46.  
  47. $polaczenie->close();
  48. }
  49. ?>


Kod ma pobrać wartość imputa połączyć się do bazy, sprawdzić czy nie ma w tabeli już takiej nazwy jeśli jej nie ma dodać nowy rekord. Coś pokopałem podpowiecie proszę co.
nospor
1) Jak cos nie dziala, to trzeba napisac czym sie objawia niedzialanie a nie kazac nam wrozyc....
2) Nigdzie nie widze bys wykonywal zapytanie. Utworzenie zapytania a jego wykonanie to dwie rozne rzeczy
wisiek21
od poprzednią sprawę już ogarnąłem ale mam kłopot z innym elementem a mianowicie mam problem z napisaniem generującej się z bazy listy rozwijanej "<select>" napisałem coś takiego oczywiście w pętli. Niestety pomyliłem coś z cudzysłowami, apostrofami lub konkatenacją

  1. echo "<option value='$i["id_kategoria"]'>.$i["nazwa"].</option>";
rad11
  1. echo "<option value='{$i["id_kategoria"]}'>{$i["nazwa"]}</option>";


  1. echo "<option value='".$i["id_kategoria"]."'>".$i["nazwa"]."</option>";


Nie używasz żadnego IDE ?
wisiek21
  1. "SELECT tytul, autor, wydawnictwo, rok_wydania FROM ksiazka WHERE id_kategoria="$_POST['kategoria']""


Formularz wysyłany metodą post. kategoria to wartość atrybutu name pola select. Kod mający filtrować i wyświetlać zawartości z poszczególnych kategorii jest zaraz za formularzem z polem select w tym samym pliku.

I tak jeszcze z innej beczki zastanawiam się jak można fanie oprogramować wybór użytkownika np. Zwracamy mu 20 produktów z bazy on z nich wybiera np 2 a my pobieramy odpowiednie dane i dodajemy nowy wpis w tabeli z zamówieniami. Dane klienta oczywiście pobieram z bazy podczas logowania i mam w zmienianych sesyjnych

Panowie co tu poknociłem z konkatenacja albo czymś podobnym bo patrze i nie widzę

  1. $rezultat=@$polaczenie->query("SELECT id_".$table_name." FROM ".$table_name." WHERE id_".$table_name." = '$id' AND haslo='$old_password'";);


  1. $rezultat=@$polaczenie->query("UPDATE ".$table_name." SET "."haslo = '$new_password' WHERE id_".$table_name." = '$id'";);

nospor
i znowu trzeba ci pisac:
a czym sie objawia blad?

Ile jeszcze razy trzeba ci to napisac, bys sam z siebie zaczal opisywac problem?!
wisiek21
Parse error: syntax error, unexpected ';' dotyczy właśnie linij z zapytaniami
nospor
No bo niby po co srednik miedzy " a ) questionmark.gif
wisiek21
co do zapytań poszło teraz wywala Parse error: syntax error, unexpected end of file in /home/u132734871/public_html/uppassczyt.php on line 49. 49 to tag zamykający php

  1. <?php
  2.  
  3. if ((!isset($_SESION['id'])) || (!isset($_SESION['oldpass'])))
  4. {
  5. header('Location: logowanie-uzytkownika.php');
  6. exit();
  7. }
  8.  
  9. require_once "connect.php";
  10.  
  11. $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
  12.  
  13.  
  14.  
  15. if($polaczenie->connect_errno!=0){
  16.  
  17.  
  18.  
  19. echo "Error: ".$polaczenie->connect_errno;
  20.  
  21. echo "<P align='center'><font color='red'> Coś poszło nie tak:(<br /> Spróbuj ponownie...</font></p>";
  22.  
  23. }
  24.  
  25. else{
  26.  
  27. $id =$_SESSION['id'];
  28. $old_password = $_POST['oldpass'];
  29. $new_password =$_POST['newpass'];
  30. $table_name ='czytelnik';
  31.  
  32. echo "SELECT id_".$table_name." FROM ".$table_name." WHERE id_".$table_name." = '$id' AND haslo='$old_password'";
  33.  
  34. $rezultat=@$polaczenie->query("SELECT id_".$table_name." FROM ".$table_name." WHERE id_".$table_name." = '$id' AND haslo='$old_password'");
  35. {
  36. if (! ($rezultat && mysqli_num_rows($rezultat))) {
  37. echo "<P align='center'><font color='red'> Nieprawidłowe aktualne hasło(<br /> Spróbuj ponownie...</font></p>";
  38. }
  39. else {
  40. $rezultat=@$polaczenie->query("UPDATE ".$table_name." SET "."haslo = '$new_password' WHERE id_".$table_name." = '$id'");
  41.  
  42. if (!$rezultat)
  43. echo "<P align='center'><font color='red'> Coś poszło nie tak(<br /> Spróbuj ponownie...</font></p>";
  44.  
  45. echo "<P align='center'><font color='red'> Hasło zostało zmienione...</font></p>";
  46. }
  47. }
  48. ?>
nospor
$rezultat=@$polaczenie->query("SELECT id_".$table_name." FROM ".$table_name." WHERE id_".$table_name." = '$id' AND haslo='$old_password'");
{
A po co tam ten { questionmark.gif
Poza tym chyba nie zamykasz jednego else...

Zacznij pisac w koncu ze wcieciami, to nie bedziesz robil tak glupich bledow i od razu bedziesz widzial czego ci brakuje
wisiek21
Poprzednie kłopoty opanowane. Teraz znów banał ale nie mogę się dopatrzeć gdzie jest kłopot.

Parse error: syntax error, unexpected '$_POST' (T_VARIABLE) in /home/u132734871/public_html/zamawiaj.php on line 30

  1. $rezultat=@$polaczenie->query("SELECT data_zwrotu FROM zamowienie WHERE id_ksiazka="$_POST['wybor']" ORDER BY id_zamowienie DESC;")
KsaR
  1. $rezultat=$polaczenie->query("SELECT `data_zwrotu` FROM `zamowienie` WHERE `id_ksiazka`=".$_POST['wybor'].' ORDER BY `id_zamowienie` DESC;');

Ps. Nie czytalem reszty tematu.
Musisz uzyc operatora laczenia (kropki) ktory laczy w 1 string, zmienne / string-i.
rad11
Albo:

  1. {$_POST['wybor']}

wisiek21
Nasuwa mi się jedno pytanie skrypt mam manipulować datami pod spodem całość skryptu.
  1. <?php
  2.  
  3. if (!isset($_SESSION['zalogowany']) && !isset($_POST['wybor']))
  4. {
  5.  
  6. header('Location: addzamowienie.php');
  7.  
  8. exit();
  9. }
  10.  
  11. require_once "connect.php";
  12.  
  13. $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
  14.  
  15.  
  16.  
  17. if($polaczenie->connect_errno!=0){
  18.  
  19.  
  20.  
  21. echo "Error: ".$polaczenie->connect_errno;
  22.  
  23. echo "<P align='center'><font color='red'> Coś poszło nie tak:(<br /> Spróbuj ponownie...</font></p>";
  24.  
  25. }
  26.  
  27. else{
  28. $dzis = date("d.m.y");
  29. if ( $rezultat=$polaczenie->query("SELECT `data_zwrotu` FROM `zamowienie` WHERE `id_ksiazka`=".$_POST['wybor'].' ORDER BY `id_zamowienie` DESC;'))
  30.  
  31. {
  32. $ileZam = $rezultat->num_rows;
  33.  
  34. if($ileZam>0){
  35. $rekord = $i = $rezultat->fetch_assoc();
  36. if ($dzis>$rekord['data_zwrotu']){
  37.  
  38. $odbior=$dzis;
  39. $zwrot=$dzis+14;
  40. }
  41. else{
  42. $odbior=$rekord['data_zwrotu']+1;
  43. $zwrot=$odbior+14;
  44. }
  45. }
  46.  
  47.  
  48.  
  49. mysqli_query($polaczenie,"INSERT INTO zamownienie (id_zamowienie, id_czytelnik, id_ksiazka, data_zamowienia, data_odbioru, data_zwrotu) VALUES ('null','$_SESSION['id']','$_POST['wybor']','$dzis','$odbior','$zwrot')");
  50. }
  51. }
  52.  
  53. ?>


Czy da sie manipulować w ten sposób datami. Przyzwyczajenia z innego języka czy trzeba będzie dzielić datę na kawałki i bawić się z timestamp?
Zerknijcie na zapytanie w wierszu 50 (to drugie).

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /home/u132734871/public_html/zamawiaj.php on line 50
wiem że to banały ale trudno mi się połapać w tych konkatenacjach itp.
rad11
Zrób dla zmiennych post to samo co zrobiłeś dla zmiennej post wybór albo skorzystaj z mojej podpowiedzi
wisiek21
OK jak wrócę to pobawię się z tymi kropkami. a jak sprawa się ma co do manipulacji datami?

Panowie nadal nie mogę ogarnąć konkatenacji w tym zapytaniu.
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.