Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Sprawdzanie czy dany rekord nie dziala
Forum PHP.pl > Forum > Przedszkole
Skicek
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.
redeemer
mysql_num_rows() + COUNT(*) ?
Skicek
hmm... obojetnie ktore usuwam to i tak dalej nie dziala
erix
Eeee, a po co tak bazę katujesz?

Zrób sobie indeks UNIQUE i sprowadzisz wszystko do jednego zapytania.
Skicek
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
erix
Liczenie rekordów zamiast sprawdzania, czy jakieś są, to operacja mało efektywna... Nie sprawdzasz ilości, więc po co? tongue.gif
Skicek
czyli mam zrobic fetch_array i wtedy sprawdzic ?
d3ut3r
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.
Skicek
a jak mozna zlozyc UNIQUE na dwie kolumny na raz? bo jak proboje kazdej z osobna to jest blad o powtarzalnosci rekordow
mimol
zaznacz 2 pola i potem kliknij w unique.
Bardzo latwo robi sie to w phpmyadmin
Skicek
error
#1170 - BLOB/TEXT column 'dane' used in key specification without a key length
abort
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?
Skicek
looooooooool ;D
no ta cudzyslowy...

dzieki, jak zwykle pomoglisie smile.gif

mozna zamknac
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.