Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysq]Problem z foreach i insert into.
ko1
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 21.08.2008

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


Witam, mam problem z wpisaniem do bazy mysql danych z tablicy. Najpierw wpisuje do tablicy dane z pliku xls, dane wczytuja sie prawidlowo. Potem gdy w petli foreach chce przez insert into wpisac do bazy te dane, wpisuje się do bazy tylko część danych. Gdy usune linijkę z insert into ta sama pętla wypisuje na ekran prawidlowo wszystkie wpisy tablicy, gdy jednak zamiast wypisania na ekran chce wpisac do tabeli mysql wpisuje się tylko część danych z tablicy. Z góry dziękuje. Kod:
CODE
$t = array_unique($wynik);

$data = date("Y-m-d");
foreach ($t as $value4) {

$czy2 = @mysql_query("select * from arty where mail = '$value4'");
$czy3 = @mysql_query("select * from mailinglist where email = '$value4'");

if(@mysql_num_rows($czy2) == 0 && @mysql_num_rows($czy3) == 0 ){

echo "\n";
echo "$value4 \n $n";

$dodaj = @mysql_query("INSERT INTO mailinglist (email, data, category) VALUES('$value4', '$data', $typ)") or die(mysql_error());

}
}
?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
franki01
post
Post #2





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

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


Cytat(WebCM @ 21.08.2008, 17:08:37 ) *
Zdefiniowałeś zmienne $data i $typ?

Zainteresuj się rozszerzeniem MySQLi" title="Zobacz w manualu PHP" target="_manual i podpinaniem danych do zapytania. Masz wtedy pewność, że dane zostaną wysłane do serwera bezpiecznie (oczywiście jeśli pochodzą z zewnątrz, musisz je zabezpieczyć - np. aby nie zawierały kodu HTML - htmlspecialchars" title="Zobacz w manualu PHP" target="_manual).

Nie htmlspecialchars, tylko mysqli_real_escape_string" title="Zobacz w manualu PHP" target="_manual - to ma znaczenie.

Może ta linijka:
Kod
if(@mysql_num_rows($czy2) == 0 && @mysql_num_rows($czy3) == 0 ){
sprawia, że niektóre dane nie są dodawane.

Daj na górze kodu $i = 0;, a potem bezpośrednio pod zapytaniem INSERT $i++;. Po wykonaniu pętli wyświetl $i i zobacz czy jest tyle samo dodanych rekordów w tabeli. Porównaj to z ilością emaili z danych wejściowych. Wynik napisz tu.

Ten post edytował franki01 21.08.2008, 16:16:28
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.10.2025 - 08:00