Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wpis do bazy dodany trzy razy
-Gość_krzychu_*-
post
Post #1





Goście







Witam.
Mam taki problem:
pobieram dane z formularza

<form action="send.php" method="GET">
<textarea name="opinia" rows="15" cols="50" wrap="physical"></textarea><br />
<input type="submit" value="wyślij">
<input type="reset" value="wyczyść">
</form>

w pliku send.php

<?php

if (!($connection = @mysql_connect('localhost', 'user', 'haslo'))) die('Nie mozna polaczyc z serwerem');
if (!(@mysql_select_db('okienko', $connection))) die('Nie mozna wybrac bazy');
if (!empty($_GET["opinia"])) {
$opinia = $_GET["opinia"];
if (!(@mysql_query("INSERT INTO opinia VALUES (NULL, NULL, '$opinia')",
$connection))) die('Zapytanie nieprawidlowe');
}
mysql_close($connection);
?>

w bazie mysql:

1. id int(5) NOT NULL auto_incremet
2. date_opinia timestamp
3. opinia varchar (1000)

Problem w tym że dodaje mi ten wpis 3 razy i nie wiem dlaczego?
w bazie mam 3 identyczne wpisy tylko różnią się czasem o około 1 sekundę

Dziękuję za wszelką pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
babejsza
post
Post #2





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

Ostrzeżenie: (0%)
-----


  1. INSERT INTO opinia VALUES (NULL, NULL, '$opinia')



Dodajesz trzy razy wartość do pola opinia. Powinno być tak:

  1. INSERT INTO tabela (id, date_opinia, opinia) VALUES (NULL, NULL, '$opinia')


albo

  1. INSERT INTO tabela SET
  2. opinia = '$opinia'
Go to the top of the page
+Quote Post
-Gość-
post
Post #3





Goście







  1. <?php
  2.  
  3. if (!($connection = @mysql_connect('localhost', 'krzychu', 'temp'))) die('Nie mozna polaczyc z serwerem');
  4. if (!(@mysql_select_db('okienko', $connection))) die('Nie mozna wybrac bazy');
  5. if (!empty($_GET["opinia"])) {
  6. $opinia = $_GET["opinia"];
  7. if (!(@mysql_query("INSERT INTO opinie (id, date_opinia, opinia) VALUES (NULL, NULL, '$opinia')", 
  8. $connection))) die('Zapytanie nieprawidlowe');
  9. }
  10. mysql_close($connection);
  11. ?>


i nadal to samo , w bazie po dodaniu jest tak:

  1. +----+---------------------+--------+
  2. | id | date_opinia | opinia |
  3. +----+---------------------+--------+
  4. | 1 | 2006-06-29 23:19:46 | a |
  5. | 2 | 2006-06-29 23:19:47 | a |
  6. | 3 | 2006-06-29 23:19:47 | a |
  7. | 4 | 2006-06-29 23:21:11 | b |
  8. | 5 | 2006-06-29 23:21:12 | b |
  9. | 6 | 2006-06-29 23:21:12 | b |
  10. | 7 | 2006-06-29 23:22:58 | c |
  11. | 8 | 2006-06-29 23:22:58 | c |
  12. | 9 | 2006-06-29 23:22:59 | c |
  13. +----+---------------------+--------+
Go to the top of the page
+Quote Post
-Gość-
post
Post #4





Goście







Przepraszam za zamieszanie już wiem co jest.
Przyczyna <head> html , wczytywal kilka razy dokument.

Jeszcze raz sorry dry.gif
Go to the top of the page
+Quote Post
riquelme
post
Post #5





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 1.04.2006

Ostrzeżenie: (0%)
-----


Z tego co widze dodajesz tylko opinie natomiast id i data automatycznie są przydzielane.Dlatego nie ma sensu w ogóle dodawać innych.Moja propozycja kodu jest następująca oczywiście zakładając że formularz ma tylko jedno pole -opinia.
  1. <?
  2. $connection = mysql_connect("localhost", "krzych", "temp");
  3. mysql_select_db("okienko", $connection) or die ("Nie mozna sie połączyć");
  4. $opinia=$_POST['opinia'];
  5. $zapis="INSERT INTO opinie(opinia) VALUES('".$_POST['opinia']."')";
  6. $wynik=mysql_query($zapis)or die(mysql_error());
  7.  
  8. if ($wynik)
  9.  {
  10. echo "Dodano opinie";
  11.  }
  12. else
  13.  {
  14. echo ('Nie można dodać opini! ');
  15.  }
  16.  
  17. ?>

Sądząc po tym jak wyświetlają sie wyniki, umieściłeś w kodzie <tr><th>...żeby wyniki były w tabelce,ale to pominąłem akurat
Go to the top of the page
+Quote Post
babejsza
post
Post #6





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

Ostrzeżenie: (0%)
-----


Cytat(riquelme @ 30.06.2006, 00:05 ) *
$opinia=$_POST['opinia'];
$zapis="INSERT INTO opinie(opinia) VALUES('".$_POST['opinia']."')";
$wynik=mysql_query($zapis)or die(mysql_error());

if ($wynik)
 {
echo "Dodano opinie";
exit;
 }
else
 {
echo ('Nie można dodać opini! ');
exit;
 }

?>[/php]


Jeżeli już tak to po co :

  1. <?php
  2. $opinia=$_POST['opinia'];
  3. ?>


a warunek przez Ciebie podany (przez element "or die") zawsze (chyba?) będzie spełniony, czy doda dane czy nie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 05:39