![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 2.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mógłby mi ktoś wytłumaczyć fenomen tego że za każdym razem tworzy dwa rekordy w bazie (jeden poprawny (z poprawnymi danymi) i drugi zupełnie pusty) podczas jednego zapytania.
Kod if($ev=='dodaj') { echo pl('<form action="index.php?p=admin&ev=dodane" method="post"> Data:<input type="text" name="data"> Url obrazka:<input type="text" name="image"> Tekst:<input type="text" name="tekst"> <input type="submit" value="Dodaj"></form>'); } if($ev=='dodane') { $data=$_POST['data']; $image=$_POST['image']; $tekst=$_POST['tekst']; //echo $data.$image.$tekst; $sql=mysql_query("INSERT INTO `events` (`data`, `image`, `tekst`) VALUES ('$data', '$image', '$tekst')"); if(!$sql) echo pl('Bład podczas dodawania eventu'); else echo('<b>Event został dodany poprawnie</b>'); } Kod id int(11) auto_increment
data varchar(40) image varchar(200) tekst varchar(200) |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A $ev skąd się bierze?
![]() PS. Do php jest dostępny odpowiedni bbcode. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 2.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Stąd:
$ev=$_GET['ev']; Jakby nie spełniało warunku ev to by nie dodawało do bazy w ogólne rekordu... A dodaje poprawny tylko że dwa na raz (drugi pusty) mógłbym go zawsze automatycznie zaraz usunąć no ale nie w tym rzecz... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat (jeden poprawny (z poprawnymi danymi) i drugi zupełnie pusty) podczas jednego zapytania. Cytat A dodaje poprawny tylko że dwa na raz (drugi pusty) W takiej kolejności, czy na odwrót? Nie include" title="Zobacz w manualu PHP" target="_manual'ujesz tego pliku gdzieś drugi raz? Czy to jest cały skrypt? -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 18.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
witam
proponuję zmienić kolejność i zastosować "else if" Kod </P><P>if ($ev==$_GET['dodane'])</P><P>{</P><P>// polecenia SQL</P><P>}</P><P>else if($ev=='dodaj') // lub samo else</P><P>{</P><P>// teraz dopiero formularz</P><P>}</P><P> pozdrawiam. sorry, jeszcze raz: if ($ev==$_GET['dodane']) { // polecenia SQL } else if($ev=='dodaj') // lub samo else { // teraz dopiero formularz } |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 2.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
W takiej kolejności, czy na odwrót? Nie include" title="Zobacz w manualu PHP" target="_manual'ujesz tego pliku gdzieś drugi raz? Czy to jest cały skrypt? Nie nie cały index.php ma ponad 1000 linijek to są tylko eventsy które jako jedyne nie działają, ponieważ na tym samym sposobie są newsy, strony, linki itd. z samego admin.php: $o=$_GET['o']; $lm=$_GET['lm']; $li=$_GET['li']; $id=$_GET['id']; $ps=$_GET['ps']; $ap=$_GET['ap']; $ev=$_GET['ev']; ale tylko tutaj dodaje podwójnie, nie mam pojęcia dlaczego, kopiowany jest ten sam kod co przy innych, zmienione jak zawsze to samo ale tylko tutaj tworzy dwa rekordy na raz. Co do kolejności to tak, najpierw dodaje ten z uzupełnionymi polami a potem z pustymi. No i wyszukiwałem właśnie czy nie zdublowałem gdzieś ale zrobiłem chyba najprostszy i najskuteczniejszy test zamieniłem linjkę: Kod $sql=mysql_query("INSERT INTO `events` (`data`, `image`, `tekst`) VALUES ('$data', '$image', '$tekst')"); na: Kod //$sql=mysql_query("INSERT INTO `events` (`data`, `image`, `tekst`) VALUES ('$data', '$image', '$tekst')"); i nie dodaje nic (ani jednego rekordu (czyli tak jak powinno)). Wystarczy że usunę slashe i przy tych samych danych przy tym samym formluarzu i reszcie dodaje automatycznie 2 rekordy. damian.1923 mam właśnie w takiej kolejności najpierw mam if($li=='usuniete') sql if($li=='zmienione') sql if($ev=='dodane') sql ... if($li=='usun') if($li=='edytuj') if($ev=='dodaj') ... no i tu formularze W takiej kolejności właśnie wszystko jest no i wszystko działa, tylko właśnie przy tym tak sie dzieje, no i mówię dam w komentarz, 0 rekordów utworzy, usunę komentarz od razu 2 rekordy. Dziś już nie mam czasu ale jutro jeszcze muszę spróbować takie rzeczy jak usunąć całkiem tą tabele i stworzyć nową pozmieniać nazwy zmiennych itp, może gdzieś się coś zdublowało bo nie dzielę tego na pliki żeby dużo nie otwierać i prawie 700 linijek mam w admin.php więc można coś przeoczyć. Omg ![]() Dopiero teraz zauważyłem że dodaje w każdej opcji w newsach, linkach itd i winą nie jest nic z panelu a tylko i wyłącznie wyświetlanie tych eventsów, co też ciekawe dlaczego, nie wiem co tu jest takiego niezwykłego: Kod /* $sqlev=mysql_query("SELECT `data`, `image`, `tekst` FROM `events`"); $it=0; while($event=mysql_fetch_row($sqlev)) { if($it) echo('*****************<br><br>'); echo('<b>'.$event[0].'</b><br><br> <img src="'.$event[1].'"><br><br> '.$event[2].'<br><br>'); $it++; } */ Przepraszam za ten temat no ale jak go zakładałem byłem w 100% przekonany że dzieje się tak tylko przy dodawaniu eventsów! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 05:20 |