erO_
16.11.2009, 15:12:10
Witam!
Mam problem tworze bazę danych, mam gotowe dodawanie wpisów do bazy, wszystko działa okej, przyszła pora na wyświetlanie wyników i możliwość edycji i usuwania wpisów, to też sumie działa, ładuje bazę i wyrzuca wyniki na ekran, ale niestety nie mogę usunąć wpisu, ani go z edytować, nie wiem gdzie popełniłem błąd, wszystko robiłem na podstawie kursu PHP. Generalnie wszystko działa więc błąd musi być gdzieś w ostatnich 10 wierszach.
Proszę rzućcie swoim profesjonalnym okiem na to..
KOD+opisy:
<?php
// nawiazujemy polaczenie
// w przypadku niepowodznie wyświetlamy komunikat
or
die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());// połączenie nawiązane ;-)
echo "Udało się połączyć z serwerem!<br />"; // nawiązujemy połączenie z bazą danych
// w przypadku niepowodzenia wyświetlamy komunikat
or
die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());// połączenie nawiązane ;-)
echo "Udało się połączyć z bazą dancych!"; /* zapytanie do konkretnej tabeli */
or
die('Błąd zapytania');/*
wyświetlamy wyniki, sprawdzamy,
czy zapytanie zwróciło wartość większą od 0
*/
/* jeżeli wynik jest pozytywny, to wyświetlamy dane */
echo "<table cellpadding=\"3\" border=1>"; echo "<td>".$r->iloscopon."</td>"; echo "<td>".$r->iloscoleju."</td>"; echo "<td>".$r->iloscswiec."</td>";
<a href=\"wyswietl.php?a=del&id={$r->id}\">DEL</a>
<a href=\"wyswietl.php?a=edit&id={$r->id}\">EDIT</a>
</td>";
}
}
if($a == 'del' and
!empty($id)) {
/* usuwamy rekord */
echo 'Rekord został usunęty z bazy'; }
?>
piotrooo89
16.11.2009, 15:22:07
a daj tak:
if(($a == 'del') and
!empty($id))
erO_
16.11.2009, 15:31:01
Niestety nic nie dało:
Parse error: parse error in c:\usr\apache\httpd\html\bazadanychzaliczenie\wyswietl.php on line 49, działa jak usunę
} z
49 lini, wtedy wyświetla tabele i pod nią komunikat
"Rekord zostal usunety z bazy" od razu po włączeniu strony, naciskając na edytuj, albo usuń nadal nic się nie dzieje.
2 przypadek
...
if(($a == 'del') and
!empty($id))
/* usuwamy rekord */
echo 'Rekord został usunęty z bazy'; ?>
piotrooo89
16.11.2009, 15:39:08
{
echo '<table cellpadding="3" border=1>'; {
echo '<td>'.$r->iloscopon.'</td>'; echo '<td>'.$r->iloscoleju.'</td>'; echo '<td>'.$r->iloscswiec.'</td>';
<a href="wyswietl.php?a=del&id='.$r->id.'">DEL</a>
<a href="wyswietl.php?a=edit&id='.$r->id.'">EDIT</a>
</td>';
}
}
if(($_GET['a'] == 'del') && (!empty($_GET['id']))) {
/* usuwamy rekord */
echo 'Rekord został usunęty z bazy'; }
Blame
16.11.2009, 15:39:32
...
if(($a == 'del') && !empty($id)){
/* usuwamy rekord */
echo 'Rekord został usunęty z bazy'; }
?>
Ta klamra nie dała ci nic do myślenia?
erO_
16.11.2009, 15:50:22
Po prostu jak nie było tej klamry to po prostu tekst wypisywało, skrypt nie działał...
Piotr niestety też nie śmiga w opcji co wysłałeś, wciąż po naciśnięciu tylko przeładowuje stronę i nic nie robi...
piotrooo89
16.11.2009, 15:51:56
dziwna sprawa... a tak może:
<a href="?a=del&id='.$r->id.'">DEL</a>
<a href="?a=edit&id='.$r->id.'">EDIT</a>
erO_
16.11.2009, 16:07:27
Też nie śmiga wciąż to samo... wątpie żeby w kodzie były błędy, bo był kopiowany z kursu internetowego, zawsze działało... A może są jakieś zabezpieczenie w bazie danych które muszę wyłączyć, żeby z poziomu strony edytować i usuwać wpisy ?
KOD na chwilę obecną wygląda następująco (wklejam bo zaraz się pogubimy...)
<?php
// nawiazujemy polaczenie
// w przypadku niepowodznie wyświetlamy komunikat
or
die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());// połączenie nawiązane ;-)
echo "Udało się połączyć z serwerem!<br />"; // nawiązujemy połączenie z bazą danych
// w przypadku niepowodzenia wyświetlamy komunikat
or
die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());// połączenie nawiązane ;-)
echo "Udało się połączyć z bazą dancych!"; /* zapytanie do konkretnej tabeli */
or
die('Błąd zapytania');/*
wyświetlamy wyniki, sprawdzamy,
czy zapytanie zwróciło wartość większą od 0
*/
{
echo '<table cellpadding="3" border=1>';
{
echo '<td>'.$r->iloscopon.'</td>';
echo '<td>'.$r->iloscoleju.'</td>';
echo '<td>'.$r->iloscswiec.'</td>';
<a href="?a=del&id='.$r->id.'">DEL</a>
<a href="?a=edit&id='.$r->id.'">EDIT</a>
</td>';
}
}
if(($_GET['a'] == 'del') && (!empty($_GET['id'])))
{
/* usuwamy rekord */
echo 'Rekord został usunęty z bazy'; }
?>
piotrooo89
16.11.2009, 16:13:00
a wywal te @.
aha no i pytanie, czy masz coś w tej tabeli dane?
erO_
16.11.2009, 16:13:42
Jakie @?
piotrooo89
16.11.2009, 16:15:48
te: @mysql_connect('localhost', 'root', 'krasnal')
erO_
16.11.2009, 16:23:36
Niestety wciąż przeładowuje i nic poza tym..., chyba będę musiał się wybrać na uczelnie może mój wykładowca coś wymyśli... masakra jakaś....
piotrooo89
16.11.2009, 16:35:12
a ten if jest wogóle OK pod względem logicznym, czy wyświetla się ten napis o usunięciu rekordu?
erO_
16.11.2009, 17:48:36
No właśnie nie, tylko i wyłącznie przeładowuje stronę, nic się na niej nie zmienia, komunikat ani przed ani po naciśnięciu się nie wyświetla, tylko i wyłącznie:
Udalo sie polaczyc z serwerem!
Udalo sie polaczyc z baza dancych!
TABELKA
piotrooo89
16.11.2009, 18:55:41
u mnie to działa... a te if'y masz w tym samym pliku co wyświetlanie tabelki?
erO_
30.11.2009, 13:28:05
kurde, to jak to możliwe, że u Ciebie działa, a u mnie nie, w ogóle mi się wyświetla informacji, że usunięto wpis, tylko i wyłącznie przeładowywuje i nic nie robi...
Hallo? ktoś mi pomorze ? Bo sam nie mogę tego rozgryźć...
kingofspace
30.11.2009, 15:41:42
a w bazie dla uzytkownika ktory loguje się z poziomu php masz ustawione mozliwosc edycji rekordu uswania rekordu?
Tak naciskam usuń i nic się nie dzieje, przeładowuje stronę a wpis w tabeli zostaje, nie pojawia się komunikat ze usunięto nic... Tak jak by nic się nie działo, może macie jakiś inny sposób na usuwanie rekordów, ale ten wydawał mi się bardzo logiczny, kolo wyświetlanych wyników w tabeli widnieje opcja usuń i edytuj, ale ani jedna anie druga nie działa. Zależało by mi żeby tylko usuń działało...
lessi
1.12.2009, 16:05:32
Na początku zobacz przed warunkiem czy dostarczane są dane. Czy $a=del i czy $id jest nie pusta.
echo 'Zmienna a: '. $a .'<br>Zmienna id:'. $id;
albo daj do tego warunek else
#
if($a == 'del' and
!empty($id)) { /* usuwamy rekord */
echo 'Rekord został usunęty z bazy'; }
else{
}
Miałeś racje po wklejeniu else, pod tabelą wyświetl się informacja "Błąd", czyli gdzie tkwi błąd, bo już się pogubiłem...
Opisze jeszcze raz bo może coś przeoczyłem w końcu dopiero się uczę
BAZA - zaliczenie
TABELA - dane (3 pola int [Null-NIE, Domyslnie- 0, reszta pusta] - iloscopon, iloscoleju, iloscswiec)
USER - root
HASŁO - krasnal
KOD JAKI MAM AKTUALNIE
<?php
// nawiazujemy polaczenie
// w przypadku niepowodznie wyswietlamy komunikat
or
die('Brak polaczenia z serwerem MySQL.<br />Blad: '.mysql_error());// polaczenie nawiazane ;-)
echo "Udalo sie polaczyc z serwerem!<br />"; // nawiazujemy polaczenie z baza danych
// w przypadku niepowodzenia wyswietlamy komunikat
or
die('Nie moge polaczyc sie z baza danych<br />Blad: '.mysql_error());// polaczenie nawiazane ;-)
echo "Udalo sie polaczyc z baza dancych!"; /* zapytanie do konkretnej tabeli */
or
die('Blad zapytania');/*
wyswietlamy wyniki, sprawdzamy,
czy zapytanie zwrócilo wartosc wieksza od 0
*/
{
echo '<table cellpadding="3" border=1>';
{
echo '<td>'.$r->iloscopon.'</td>';
echo '<td>'.$r->iloscoleju.'</td>';
echo '<td>'.$r->iloscswiec.'</td>';
<a href="?a=del&id='.$r->id.'">DEL</a>
<a href="?a=edit&id='.$r->id.'">EDIT</a>
</td>';
}
}
if(($_GET['r'] == 'del') && (!empty($_GET['id'])))
{
/* usuwamy rekord */
echo 'Rekord zostal usunety z bazy'; }
else{
}
?>
lessi
1.12.2009, 18:44:04
Czyli jest jakiś problem z przesłaniem zmiennych. Teraz musisz napisać ten pierwszy sposób. Żeby przekonać się jakie masz dane w zmiennej a i jakie w zmiennej id
Nie rozumiem, jestem początkujący, tylko instalowałem skrypt według tutoriala i gdzieś się pogubiłem... Jak to zrobić ?
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.