Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] niezgodnosc liczb
Forum PHP.pl > Forum > Przedszkole
Raffal
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
Cysiaczek
Hmm.... a mógłbyś podać komunikat błędu?
nospor
$_POST['nrnews']
a w formularzu masz nr a nie nrnews. nrnews masz w pierwszym formie, ale do update on sie nie liczy. przenosze
Raffal
to znaczy jak mam to naprawic questionmark.gif

co musze zmienic questionmark.gif

bo rozumiem ze $id z 2 Formularza nie zapisuje sie to jak mam to poprawic?
nospor
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
Raffal
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
nospor
Cytat
No raczej nie do konca dlatego ze w zapytaniu sql jest $id
Brawo, punkt za spostrzegawczosc 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 winksmiley.jpg ), albo ty źle poprawiles, albo blad jest jeszcze gdzies indziej. pokaz wiec kod po porawkach i powiedz co jest jeszcze nie tak
Raffal
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. ?>
nospor
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. smile.gif

Pozatym skoro ma to byc edycja tylko jednego rekordu, to lepiej zamien na select, bo checkboxow mozna kilka na raz wybrac
Raffal
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 ........sad.gif
nospor
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 smile.gif
W manualu w przykladzie jest taka ladna pętla, ktorej ty wogole nie wstawiles.
Raffal
  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 smile.gif
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.