Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Problem ze skryptem na dodawanie rekordów do bazy danych
Forum PHP.pl > Forum > Przedszkole
Aerowild
  1. <!--c1--><div class='codetop'>Kod</div><div class='codemain'><!--ec1--><?
  2.        
  3.        $polaczenie = mysql_connect("xxxx","xxxx",""); 
  4.        if(!$polaczenie) {echo"blad"; exit;}
  5.        $baza=mysql_select_db("xxxx", $polaczenie); 
  6.        if(!$baza) {echo"blad1"; exit;}
  7.        
  8.        
  9.        
  10.        if ($data && $style && $wynik && $kto && $result && $score && $scr1 && $scr2 && $scr3 && $scr4) {
  11.                $dodanie = "INSERT INTO mecze ( mecz_id , data , style , wynik , kto , result , score , scr1 , scr2 , scr3
     , scr4 ) "
    ;
  12.                $dodanie .= "VALUES ('', '$data', '$style', '$wynik', '$kto', '$result', '$score', '$scr1', '$scr2', '$scr3', '$scr4');";
  13.                $wyniki = mysql_query ($dodanie);
  14.            }
  15.        
  16.        
  17.        echo'<form method="post">Dodaj mecz:<input type="hidden" name="co" value="dodaj"><table>
  18.            <tr><td>Data:</td><td><input type="text" name="data"></td></tr>
  19.            <tr><td>Style:</td><td>
  20.            <select size="1" name="style" onFocus="ON(this)" onBlur="OFF(this)" class="form">
  21.                                <option>CTF</option>
  22.                                <option>TDM</option>
  23.                                <option>GPD</option>
  24.                                <option>PLCTF</option>
  25.                                <option>TNL</option>
  26.                                <option>OTHER</option>
  27.            </select></td></tr>
  28.            <tr><td>Wynik</td><td>
  29.            <select size="1" name="wynik" onFocus="ON(this)" onBlur="OFF(this)" class="form">
  30.                                <option>WIN</option>
  31.                                <option>TIE</option>
  32.                                <option>LOST</option>
  33.            </select></td></tr>
  34.            
  35.            <tr><td>Przeciwko:</td><td><input type="text" name="kto">
  36.            
  37.            </td></tr>
  38.            <tr><td>Ogolny wynik</td><td><input type="text" name="result"></td></tr>
  39.            <tr><td>Flagi</td><td><input type="text" name="score"></td></tr>
  40.            <tr><td>Adres URL 1-szego screena:</td><td><input type="text" name="scr1"></td></tr>
  41.            <tr><td>Adres URL 2-giego screena:</td><td><input type="text" name="scr2"></td></tr>
  42.            <tr><td>Adres URL 3-ciego screena:</td><td><input type="text" name="scr3"></td></tr>
  43.            <tr><td>Adres URL 4-ego screena:</td><td><input type="text" name="scr4"></td></tr>
  44.            </table><input type="submit" value="Dodaj"></form>';
  45.           
  46.             mysql_close($polaczenie);
  47.              
  48.        
  49.          ?><!--c2--></div><!--ec2-->


No więc kiedyś zajmowałem się bazami danych, ale było to bardzo dawno i na chwilę obecną nie pamiętam praktycznie nic. Skrypt powyżej działał bo nie raz go używałem (jakieś 2 lata temu). Ostatnio znów okazał się przydatny, ale nie działa. Nie mam pojęcia dlaczego, gdyż nic w nim nie zmieniałem. Prosiłbym o pomoc w miarę możliwości.
Xniver
Pewnie masz wyłączoną opcję w php.ini "register_globals". Musisz użyć $_GET
goozer
$_POST bo form ma method POST.
na przyklad - $data powinno wygladac tak: $_POST['data'].

No a poza wydaje mi sie ze pola wyboru select nie beda dzialac bo dla opcji nie jest przypisywana wartosc. Ale nie jestem pewien.

G
Aerowild
No więc udało mi sie włączyć opcję register_globals. Ale skrypt wciąż nie działa. Próbowałem również Twojej wersji goozer, ale wciąż nic. Zmieniłem nawet pola wyboru select na normalne pola text, ale to również nie pomogło. Czy ma ktoś jakieś inne pomysły ?
likedat
Co konkretnie nie działa? Może spróbuj wyświetlić mysql_error() po dodaniu rekordu do bazy? Możesz też dodać jakieś echo wewnątrz warunku if ($data && $style, aby sprawdzić, czy on w ogóle przechodzi. I wyłącz register globals, nie warto winksmiley.jpg
Aerowild
Likedat: Skrypt wygląda tak. Jest on dość stary ( z przed 2 lat) wiem, że wtedy działał, a nic w nim nie zmieniałem. Na serwerze włączone jest register_globals (tak wiem, że nie powinno być). Gdy wpiszę wszystkie dane w formularz i klikne dodaj wszystko jest ok, ale rekord nie jest dodawany do bazy. Wiesz może z jakiego powodu? Czy jest jakiś błąd w kodzie?

  1. <!--c1--><div class='codetop'>Kod</div><div class='codemain'><!--ec1--><?
  2.    
  3.    $polaczenie = mysql_connect("sql.boo.pl","xxxx","xxxx");
  4.    if(!$polaczenie) {echo"blad"; exit;}
  5.    $baza=mysql_select_db("xxxx", $polaczenie);
  6.    if(!$baza) {echo"blad1"; exit;}
  7.    
  8.    
  9.    
  10.    if ($type && $clan && $date && $lineup && $result && $wtl) {
  11.            $dodanie = "INSERT INTO clanwars ( id , clan , type , date , lineup , result , wtl ) ";
  12.            $dodanie .= "VALUES ('', '$type', '$clan', '$date', '$lineup', '$tryb', '$result', '$wtl');";
  13.            $wyniki = mysql_query ($dodanie);
  14.        }
  15.    
  16.    
  17.    echo'<form method="post" target="_self"><font size="1" color="black" face="Arial">Dodaj mecz:</font><input type="hidden" name="co" value="dodaj"><table>
  18.            <tr><td class="text">Type:</td><td><input type="text" name="type"></td></tr>
  19.            <tr><td class="text">Clan:</td><td><input type="text" name="clan"></td></tr>
  20.            <tr><td class="text">Date:</td><td><input type="text" name="date"></td></tr>
  21.            <tr><td class="text">Lineup:</td><td><input type="text" name="lineup"></td></tr>
  22.            <tr><td class="text">Result:</td><td><input type="text" name="result"></td></tr>
  23.            <tr><td class="text">W/T/L:</td><td><input type="text" name="wtl"></td></tr>
  24.        </table><input type="submit" value="Dodaj"></form>';
  25.    
  26.         mysql_close($polaczenie);
  27.    
  28.    
  29.      ?><!--c2--></div><!--ec2-->
Sabistik
Proszę o poprawę tematu na zgodny z regulaminem działu przedszkole inaczej zostanie zamknięty. To samo dotyczy bbcode.
marcio
  1. <?
  2. //lacz sie tak
  3. if($polaczenie = mysql_connect("sql.boo.pl","xxxx","xxxx")) {
  4.  
  5. //najpier form a potem sprawdzenie chyba logiczne
  6.  
  7. echo'<form method="post" action="'.$_SERVER['PHP_SELF'].'"><font size="1" color="black" face="Arial">Dodaj mecz:</font><input type="hidden" name="co" value="dodaj"><table>
  8.  <tr><td class="text">Type:</td><td><input type="text" name="type"></td></tr>
  9.  <tr><td class="text">Clan:</td><td><input type="text" name="clan"></td></tr>
  10.  <tr><td class="text">Date:</td><td><input type="text" name="date"></td></tr>
  11.  <tr><td class="text">Lineup:</td><td><input type="text" name="lineup"></td></tr>
  12.  <tr><td class="text">Result:</td><td><input type="text" name="result"></td></tr>
  13.  <tr><td class="text">W/T/L:</td><td><input type="text" name="wtl"></td></tr>
  14.  </table><input type="submit" value="Dodaj"></form>';
  15.  
  16. if (!empty($_POST['type']) && !empty($_POST['clan']) && !empty($_POST['date']) && !empty($_POST['lineup']) && !empty($_POST['result']) && !empty($_POST['wtl'])) {
  17.  
  18. //P.S tutaj przypisuje dla kazdej zmiennej z forma cos takiego
  19. $type = $_POST['type'];
  20. //I tak dla kazdej
  21.  
  22. $dodanie = ("INSERT INTO clanwars (clan,type,date,lineup,result,wtl) values('$clan', '$type', '$date', '$lineup', '$result', '$wtl')");
  23.  
  24. if(mysql_query($dodanie, $polaczenie) {
  25. echo('Dodano');
  26.  mysql_close($polaczenie);
  27. }
  28.  
  29. else echo('Blad podczas dodawania');
  30.  
  31.  }
  32. }
  33.  
  34. ?>

Pisane na szybko ale mniej wiecej cos takiego

P.S mailes zle zapytanie i jedna tabele za duzo a o 1 zmienna za malo i miales je zle rozstawione
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.