Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Sprawdzanie czy dany rekord nie dziala
Skicek
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.09.2011

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


Wiem, ze byly juz takie tematy ale nie pomogly mi rozwiazac problemu.

  1. $q = mysql_num_rows(mysql_query('SELECT count(*) FROM $nick WHERE dane="$d2" and data="$entryDate"'));
  2. if ($q==0) {
  3. $blue = "INSERT INTO $nick(title, dane, data) VALUES ('$d1', '$d2', '$entryDate')";
  4. $ins = @mysql_query($blue);
  5. if($ins) echo $b." ok<br>";
  6. else echo $b." Błąd nie udało się dodać nowego rekordu<br>";
  7.  
  8. } else {
  9. echo $b." jest juz taki element<br />";
  10. }


mam taki kod powinien dzialac ze gdy nie ma rekordu to dodaje a gdy jest to nie dodaje. Lecz caly czas tylko dodaje.
Go to the top of the page
+Quote Post
redeemer
post
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


mysql_num_rows() + COUNT(*) ?

Ten post edytował redeemer 14.08.2012, 14:22:14
Go to the top of the page
+Quote Post
Skicek
post
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.09.2011

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


hmm... obojetnie ktore usuwam to i tak dalej nie dziala
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Eeee, a po co tak bazę katujesz?

Zrób sobie indeks UNIQUE i sprowadzisz wszystko do jednego zapytania.
Go to the top of the page
+Quote Post
Skicek
post
Post #5





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.09.2011

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


tylko ze wartosc moze sie powtorzyc dlatego nie moge uzyc UNIQUE.

Dlatego sprawdzone sa dane i data jednoczesnie by nie bylo tych samych rekordow. A kazdy z nich osobno moze sie powtarzac
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Liczenie rekordów zamiast sprawdzania, czy jakieś są, to operacja mało efektywna... Nie sprawdzasz ilości, więc po co? (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Skicek
post
Post #7





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.09.2011

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


czyli mam zrobic fetch_array i wtedy sprawdzic ?
Go to the top of the page
+Quote Post
d3ut3r
post
Post #8





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


Nadal możesz założyć indeks UNIQUE tylko na dwie kolumny wówczas każda z osobna może się powtarzać ale nie może istnieć taka sama para.
Go to the top of the page
+Quote Post
Skicek
post
Post #9





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.09.2011

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


a jak mozna zlozyc UNIQUE na dwie kolumny na raz? bo jak proboje kazdej z osobna to jest blad o powtarzalnosci rekordow
Go to the top of the page
+Quote Post
mimol
post
Post #10





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

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


zaznacz 2 pola i potem kliknij w unique.
Bardzo latwo robi sie to w phpmyadmin
Go to the top of the page
+Quote Post
Skicek
post
Post #11





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.09.2011

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


error
#1170 - BLOB/TEXT column 'dane' used in key specification without a key length
Go to the top of the page
+Quote Post
abort
post
Post #12





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Ale rekordu nie znajdzie, bo NIE MA PRAWA. Masz w kodzie instrukcję:
Kod
$q = mysql_num_rows(mysql_query('SELECT count(*) FROM $nick WHERE dane="$d2" and data="$entryDate"'));

Spróbujmy ją ciutkę rozbić:
Kod
$query = 'SELECT count(*) FROM $nick WHERE dane="$d2" and data="$entryDate"';
$q = mysql_num_rows(mysql_query($query));

Wypisz sobie zawartość $query tuż przed wysłaniem zapytania do bazy.
Już wiesz, gdzie masz błąd?
Go to the top of the page
+Quote Post
Skicek
post
Post #13





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.09.2011

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


looooooooool ;D
no ta cudzyslowy...

dzieki, jak zwykle pomoglisie (IMG:style_emoticons/default/smile.gif)

mozna zamknac
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 15.09.2025 - 01:51