Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] niezgodnosc liczb
Raffal
post
Post #1





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 19.06.2006

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


Witam mam problem z edycja newsa tzn pobieram dane z formularza
gdzie wywyoluje nr newsa lecz cos nie dziala wydaje mi sie ze problem moze byc w niezgodnosci pol z baza danych tzn id jest autonumerowane ale nie jestem pewien

oto skrypt
  1. <?php
  2.  
  3. echo '<form action="" method="POST">';
  4. echo '<input type="text" name="nrnews" value="">';
  5. echo '<input type="submit" value="Zaladuj wiadomosc">';
  6. echo '</form>';
  7.  
  8. $id=(int)($_POST['nrnews']);
  9. echo $id;
  10.  
  11. mysql_connect('','','') or die('Błąd połączenia z bazą');
  12. mysql_select_db('baza') or die('Błędna baza');
  13.  
  14.  
  15.  
  16.  
  17. if(isset($_POST["temat"])){
  18. $temat=$_POST['temat'];
  19. $tresc=$_POST['tresc'];
  20. $data=date("Y-m-d H:i");
  21.  
  22. mysql_query('UPDATE news SET temat="'.$temat.'", tresc="'.$tresc.'", data="'.$data.'" WHERE id='.$id) or die('Niepoprawne zapytanie (2)');
  23. } else {
  24. $mysl=mysql_query('select temat,tresc from news where id='.$id) or die('Niepoprawne zapytanie (1)');
  25. $record=mysql_fetch_array($mysl);
  26. echo '<form action="" method="POST">';
  27. echo '<input type="hidden" name="nr" value="'.$id.'">';
  28. echo '<textarea name="temat" cols="50" rows="20">'.$record[0].'</textarea><br>';
  29. echo '<textarea name="tresc" cols="50" rows="20">'.$record[1].'</textarea><br>';
  30. echo '<input type="submit" value="Wyślij"></form>';
  31. }
  32. ?>

prosilbym o pomoc albo chociaz wskazania bledu bo nie moge wymyslec iinnego wyjscia

Ten post edytował Raffal 30.11.2006, 12:51:02
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Hmm.... a mógłbyś podać komunikat błędu?
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$_POST['nrnews']
a w formularzu masz nr a nie nrnews. nrnews masz w pierwszym formie, ale do update on sie nie liczy. przenosze
Go to the top of the page
+Quote Post
Raffal
post
Post #4





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 19.06.2006

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


to znaczy jak mam to naprawic (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

co musze zmienic (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

bo rozumiem ze $id z 2 Formularza nie zapisuje sie to jak mam to poprawic?
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




o rety... no to przeciez ci powiedzialem: nazwy ci sie roznią. Co zrobic? No chyba logiczne: nadac takie same. zmien w drugim formie nr na nrnews i po sprawie
Go to the top of the page
+Quote Post
Raffal
post
Post #6





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 19.06.2006

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


No raczej nie do konca dlatego ze w zapytaniu sql jest $id i zeby zapisac akutar w tym rekordzie musze pobrac
z hidden pole ktore pobiera sie z bazy sprawdzalem tak jak ty mowisz i nie dziala ;/ albo cos inaczej to rozumiem
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
No raczej nie do konca dlatego ze w zapytaniu sql jest $id
Brawo, punkt za spostrzegawczosc (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . A na powaznie: i co z tego? przeciez to $id pobierasz tak:
$id=(int)($_POST['nrnews']);

a w drugim formie nie masz pola nrnews tylko pole nr, przez co do Twojego $id, powiem brzydko, kupa trafia. Dlatego w drugim formie masz zmienic nr na nrnews i powinno byc git. jesli nadal ci nie dziala, to albo ja namieszalem (malo prawdopodobne (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ), albo ty źle poprawiles, albo blad jest jeszcze gdzies indziej. pokaz wiec kod po porawkach i powiedz co jest jeszcze nie tak
Go to the top of the page
+Quote Post
Raffal
post
Post #8





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 19.06.2006

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


no dziala

a jezeli chcialbym zeby zamiast wpisywac nr newsa wybierac tylko z listy nr id (cheakbox)
to jak?

sporzadzilem narazie cos takiego

  1. <?php
  2. $wybor=mysql_query('select id from news) or die('Niepoprawne zapytanie (3)');
  3. $wybory=mysql_fetch_array($wybor);
  4.  
  5. for($i=0;$i<count(wybory);$i++)
  6. {
  7. echo '<input type="checkbox" name="a" value="$wybory[$i]">';
  8. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
sporzadzilem narazie cos takiego
No i mi nie mow ze to ci wyswietla liste id. A skoro ci nie wyswietla (bo nie wyswietla) to powinienes luknac do manuala, przeczyatc cos o mysql_fetch_array(), przejrzec przyklady tam zalączone i juz bys wiedzial jak pobrac liste ID. Milej lektury. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozatym skoro ma to byc edycja tylko jednego rekordu, to lepiej zamien na select, bo checkboxow mozna kilka na raz wybrac
Go to the top of the page
+Quote Post
Raffal
post
Post #10





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 19.06.2006

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


ok sprzzadzilem cos takiego

  1. <?php
  2. $wybor=mysql_query('select id,temat from news') or die('Niepoprawne zapytanie (3)');
  3. $wybory=mysql_fetch_row($wybor);
  4. //echo $wybory[0][0];
  5. echo '<form action="">';
  6. echo '<select name="nazwa">';
  7.  
  8. for($i=0;$i<count($wybory);$i++)
  9. {
  10.  
  11. echo '<option value=$wybory[$i]></option>';
  12.  
  13. }
  14. echo '</select>';
  15. echo '</form>';
  16. ?>


i co ? nic nie dziala mialo to sie odbywac w ten sposob ze pobierane jest id,temat z tabeli i w select jako value jest id a wyswietla sie temat
no ale nie dziala ........(IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




powtorze jeszcze raz:
Cytat
No i mi nie mow ze to ci wyswietla liste id. A skoro ci nie wyswietla (bo nie wyswietla) to powinienes luknac do manuala, przeczyatc cos o mysql_fetch_array(), przejrzec przyklady tam zalączone i juz bys wiedzial jak pobrac liste ID. Milej lektury.
Zdaje sie wogole tego nie wziales sobie do serca (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
W manualu w przykladzie jest taka ladna pętla, ktorej ty wogole nie wstawiles.
Go to the top of the page
+Quote Post
Raffal
post
Post #12





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 19.06.2006

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


  1. <?php
  2. $wybor=mysql_query('select id,temat from news') or die('Niepoprawne zapytanie (3)');
  3.  
  4.  
  5. echo '<form action="" method=POST>';
  6. echo '<select name="nrnews">';
  7.  
  8. while ($row=mysql_fetch_array($wybor, MYSQL_NUM)) {
  9. echo $row[0];
  10. echo '<option value='.$row[0].'>'.$row[1].'</option>';
  11.  
  12. }
  13.  
  14. echo '</select>';
  15. echo '<br>twoj wybor to<br>'.$nrnews;
  16. echo '<input type="submit" value="Załaduj">';
  17. echo '</form>';
  18.  
  19. $id=(int)($_POST['nrnews']);
  20. echo $id;
  21.  
  22. if(isset($_POST["temat"])){
  23. $temat=$_POST['temat'];
  24. $tresc=$_POST['tresc'];
  25. $data=date("Y-m-d H:i");
  26.  
  27. mysql_query('UPDATE news SET temat="'.$temat.'", tresc="'.$tresc.'", data="'.$data.'" WHERE id='.$id) or die('Niepoprawne zapytanie (2)');
  28. } else {
  29. $mysl=mysql_query('select temat,tresc from news where id='.$id) or die('Niepoprawne zapytanie (1)');
  30. $record=mysql_fetch_array($mysl);
  31. echo '<form action="" method="POST">';
  32. echo '<input type="hidden" name="nrnews" value="'.$id.'">';
  33. echo '<textarea name="temat" cols="50" rows="20">'.$record[0].'</textarea><br>';
  34. echo '<textarea name="tresc" cols="50" rows="20">'.$record[1].'</textarea><br>';
  35. echo '<input type="submit" value="Wyślij"></form>';
  36. }
  37. ?>


ok to jest wersja ostateczna dziekuje za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Raffal 3.12.2006, 18:06:54
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: 20.09.2025 - 06:31