Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dodawanie reokordu do bazy blad
Forum PHP.pl > Forum > Przedszkole
kingofspace
witam próbuje zrobić prosty skrypt który by dodawał do bazy rekord z danymi pobranymi ze zmiennych

taką mam strukturę tabeli w bazie
  1. --
  2. -- Struktura tabeli dla `Zamowienia`
  3. --
  4.  
  5. CREATE TABLE IF NOT EXISTS `Zamowienia` (
  6. `Id` int(11) NOT NULL AUTO_INCREMENT,
  7. `UsersId` varchar(25) NOT NULL,
  8. `Game` varchar(25) NOT NULL,
  9. `Typ` varchar(25) NOT NULL,
  10. `Slot` varchar(25) NOT NULL,
  11. `Lokacja` varchar(25) NOT NULL,
  12. `datestart` date NOT NULL,
  13. `dateend` date NOT NULL,
  14. `status` varchar(25) NOT NULL,
  15. PRIMARY KEY (`Id`)
  16. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
  17.  
  18. --


tresc skryptu jest taka

  1. <?php
  2. require "include/lay.php";
  3. headstr("Rejestracja");
  4.  
  5. //polaczenie z baza danych
  6. if (!$db_lnk = @mysql_connect("myssdfgdsfg3306", "adgadgce", "adgadgag7"))
  7. {
  8. echo('Wystapil blad podczas proby polaczenia z serwerem MYSQL...');
  9. return SERVER_ERROR;
  10. }
  11. if(!mysql_select_db('sfdgfa_pl'))
  12. {
  13. echo('Wystapil blad podczas wyboru bazy danych: testy...');
  14. return SERVER_ERROR;
  15. }
  16. ?>
  17.  
  18. <div class="n">
  19. <div class="nt">
  20. <h1>Zarejestruj się</h1>
  21. </div>
  22. <?php
  23. $lokacja = $_GET["lokacja"];
  24. $gra = $_GET["gra"];
  25. $typ = $_GET["typ"];
  26. $sloty = $_GET["sloty"];
  27. $okres = $_GET["okresik"];
  28. $cena = $_GET["cenakoncowa"];
  29. ?>
  30.  
  31.  
  32.  
  33. <?php
  34. $Userid= $_SESSION["UserId"];
  35. ?>
  36.  
  37. <?php
  38. $query = "INSERT INTO `Zamowienia` (`id`, `UsersId`, `Game`, `Typ`, `Slot`, `Lokacja`, `datestart`, `dateend`, `status`) VALUES ('', '$Userid', '$gra', '$typ', '$sloty', '$lokacja', '2008-12-15', '2009-12-16', 'Nie opłacone')";
  39.  
  40. $result = mysql_query("$query");
  41.  
  42.  
  43. ?>
  44. <?php
  45. echo(Zamówienie zostalo złożone proimy je oplacic przez panel usera.);
  46. ?>
  47.  
  48. <div class="nb"><br /> <div><a href="#"><br /></a></div></div>
  49. </div>
  50. </div>
  51.  
  52. <?php
  53. footstr();
  54. ?>
  55.  



treść błędu

Parse error: syntax error, unexpected T_STRING in /var/www/virtual/kingofspace.cba.pl/addzamowienie.php on line 47
darko
No fajnie i co? Gdzie błąd? Co się dzieje?
kingofspace
Z tym błędem sobie poradziłem naprawiłem. i działa dodanie rekordu do bazy
teraz chciałem zamiast daty podanej w zapytaniu dac aktualna date w formacie YYYY-MM-DD i potem zapisac do jakiejs zmiennej datę np 3 miesiące w przód
piotr94
a może byś przeczytał co Ci PHP mówi i przeanalizował linijkę 47??
nie wypadałoby dodać tam cudzysłowów??
  1. echo('Zamówienie zostało złożone prosimy je opłacić przez panel usera.');

PS, ortografia nie boli tongue.gif
kingofspace
no właśnie pisząc 1 posta to dostrzegłem haha.gif

ortografia nie boli ale pisze ten skrypt na szybko i jakoś tak wyszło

darko
Cytat
teraz chciałem zamiast daty podanej w zapytaniu dac aktualna date w formacie YYYY-MM-DD


  1. echo date("Y-m-d");


Cytat
i potem zapisac do jakiejs zmiennej datę np 3 miesiące w przód


  1. $jakas_zmienna = date("Y-m-d",mktime(0, 0, 0, date("m")+3, date("d"), date("Y")));
phpion
Cytat(darko @ 16.11.2009, 13:53:53 ) *
  1. $jakas_zmienna = date("Y-m-d",mktime(0, 0, 0, date("m")+3, date("d"), date("Y")));

Prościej i jaśniej chyba w ten sposób:
  1. $jakas_zmienna = date('Y-m-d', strtotime('+3 months'));
kingofspace
Mam pytanko kolejne mam w bazie rekord pobrałem go po Id i muszę go wyświetlić jak go wyświetlić w tabelce?
darko
może prymitywnie:
  1. // tablica
  2. $dane_rekordu;
  3. echo "<table border=\"1\"><tr>";
  4. foreach($dane_rekordu as $dane) {
  5. echo "<td>$dane</td>";
  6. }
  7. echo "</tr></table>";
kingofspace
a jak bede mial pobrane duuzo rekordów?
mam takie zapytanie i spodziewam sie duzej liczby rekordów tego typu
  1. $query = "SELECT Id UsersId Game Typ Slot Lokacja datestart FROM Zamowienia WHERE status=Nie oplacone";


i mi pobierze jakies 30 rekordow potrzebuje to podzielic na x stronna ktorej bedzie maks 10 rekordow i w jakiejs table zeby to wyswietlilo
darko
to użyj paginacji, sortowania i grupowania wyników zarówno w zapytaniach do bazy ( SELECT ... order by cos_tam asc limit 20 ) jak w tabelce (nawet na tym forum korzystamy z paginacji przeglądając posty w danym dziale)
kingofspace
  1. SELECT Id, UsersId, Game, Typ, Slot, Lokacja, datestart, FROM Zamowienia WHERE STATUS=Nie oplacone


Czy to zapytanie do bazy ma prawo zadziałać bo mam jakiś błąd;/

jak wrzuciłem je do pma to wyskoczyło

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM Zamowienia WHERE status=Nie oplacone LIMIT 0, 30' at line 1
danny
Albo tak: http://forum.php.pl/index.php?showtopic=35498 ,albo recznie.

Sprobuj: ='Nie oplacone'
kingofspace
  1. <?php
  2. $query = "SELECT 'Id', 'UsersId', 'Game', 'Typ', 'Slot', 'Lokacja', 'datestart', FROM 'Zamowienia' WHERE 'status'='Nie oplacone'";
  3. $result=mysql_query($query);
  4. print_r($result);
  5.  
  6. ?>


Teraz mam taki kod i nic nie dodaje do zmiennej results w bazie mam tylko jeden rekord
danny
Hm, moze zastap ' ' na ` `. Nie mam innych pomysłow. Czy status w bazie rzeczywiscie przyjmuje stan `Nie oplacone`? snitch.gif
darko
usuń przecinek po 'datestart' a przed FROM

spróbuj tak:

  1. $query = "SELECT Id, UsersId, Game, Typ, Slot, Lokacja, datestart FROM Zamowienia WHERE status like 'Nie oplacone'";


kingofspace
niestety nie pomogło sciana.gif nic ide do lekarza jak przyjdę się pomęczę;] może ktoś coś odpisze

usunołem przecinek i coś drgnęło

dla zapytania
  1. SELECT `Id`, `UsersId`, `Game`, `Typ`, `Slot`, `Lokacja`, `datestart` FROM `Zamowienia` WHERE `status`=`Nie oplacone`


wyskoczyl blad

#1054 - Unknown column 'Nie oplacone' in 'where clause'
darko
kingofspace przeczytaj mój post powyżej Twojego (po edycji)
kingofspace
ja usunolem ten przecinek właśnie po usunięciu jego wyskoczył nowy bład
danny
TO pozostaje jedno z 2. Albo musisz wyselectowac rowniez `status`, albo pokombinowac z `` przy Nie oplacone.
kingofspace
doszlem do takiego skryptu

  1. <?php
  2. $not = "Nie oplacone"
  3. ?>
  4. <?php
  5. $query = "SELECT `Id`, `UsersId`, `Game`, `Typ`, `Slot`, `Lokacja`, `datestart` FROM `Zamowienia` WHERE `status`='$not'";
  6. $result=mysql_query($query);
  7. print_r($result);
  8.  
  9. ?>


tresc wyswietlana na stronie to Resource id #4

czy ten skrypt dziala poprawnie?
nospor
zobacz w manulau co zwraca myql_query() a dowiesz sie czemu widzdisz jakies RESOURCE....
jak juz to doczytasz to poczytaj o mysql_fetch_array()
darko
albo daj

  1. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  2. echo($row[0]." ".$row[1]." ".$row[2]." ".$row[3]." ".$row[4]." ".$row[5]." ".$row[6]);
  3. }
  4.  
kingofspace
faktycznie z wasza pomoc i manualem mam już wyświetlanie rekordów na stronie www teraz potrzebuje to wpakowac do jakiejs tabelki z x wierszami żeby wierszy nie zabrakło
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-2024 Invision Power Services, Inc.