Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wpis do bazy dodany trzy razy
Forum PHP.pl > Forum > Przedszkole
Gość_krzychu_*
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.
babejsza
  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ść
  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ść
Przepraszam za zamieszanie już wiem co jest.
Przyczyna <head> html , wczytywal kilka razy dokument.

Jeszcze raz sorry dry.gif
riquelme
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
babejsza
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.
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.