Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Problemy z pobraniem z bazy
Forum PHP.pl > Forum > Przedszkole
maestro20
Witam mam nastepujacy skrypt

  1. <?php  $q = mysql_connect("localhost", "maestro", "xxx") or die('Blad: Nie mozna polaczy´c z MySQL!');
  2. $q = mysql_select_db ('test2') or die ('brak bazy');  
  3. $option = (int)$_POST['id'];
  4.       $zapytanie = "SELECT * FROM `test` WHERE id ='$option'";
  5. $txt = mysql_fetch_assoc ($zapytanie);
  6. echo '<form action="update.php" method="post">';
  7. echo 'Pytanie nr ';echo($txt['id']);
  8. echo '<br>';
  9. echo '<textarea rows="4" cols="50" name="pytanie">'.$txt['pytanie'].'</textarea>';
  10. echo '<br>';
  11. echo '<br>';
  12. echo 'Odpowiedz A:' ;
  13. echo '<br>';
  14. echo '<textarea rows="4" cols="50" name="odpa">'.$txt['odpa'].'</textarea>';
  15. if ($txt['prawidlowa'] == 1)
  16. {
  17. echo '<input type="checkbox" name="odp" value=">'.$txt['prawidlowa'].'" checked="checked" />';
  18. }
  19. else
  20. {
  21. echo '<input type="checkbox" name="odp" value="'.$txt['cos innego'].'" />';
  22. }
  23. echo 'Prawidłowa odpowedź';
  24. echo '<br>';
  25. echo 'Odpowiedz B:';
  26. echo '<br>';
  27. echo '<textarea rows="4" cols="50" name="odpb">'.$txt['odpb'].'</textarea>';
  28. if ($txt['prawidlowa1'] == 1)
  29. {
  30. echo '<input type="checkbox" name="odp" value=">'.$txt['prawidlowa1'].'" checked="checked" />';
  31. }
  32. else
  33. {
  34. echo '<input type="checkbox" name="odp" value="'.$txt['cos innego'].'" />';
  35. }
  36.  
  37. echo 'Prawidłowa odpowedź';
  38. echo '<br>';
  39. echo 'Odpowedz C';
  40. echo '<br>';
  41. echo '<textarea rows="4" cols="50" name="odpc">'.$txt['odpc'].'</textarea>';
  42. if ($txt['prawidlowa2'] == 1)
  43. {
  44. echo '<input type="checkbox" name="odp" value=">'.$txt['prawidlowa2'].'" checked="checked" />';
  45. }
  46. else
  47. {
  48. echo '<input type="checkbox" name="odp" value="'.$txt['cos innego'].'" />';
  49. }
  50. echo 'Prawidłowa odpowedź';
  51. echo '<br>';
  52. echo '<br>';
  53. echo '<input type="submit" value="update" />';
  54. ?>

ten skrypt ma edytowac wybrane pytanie z bazy ale niestety mam problemy z polonczeniem go z wyborem z bazy bo jak zrobie na sztywno pobranie to wszystko jest oki i dziala ale jak chce zeby edytowalo wybrany przez uzytkownika rekord to sie wysypuje i neimam pojecia jak to zrobic smile.gif
_olo_1984
co to jest "rozsypuje się" ?
Po pierwsze wywal to (int) sprzed posta, po drugie sprawdzaj co przesyłasz w polu $_POST['id'], w pliku w którym odbierasz dane postem i łączysz się z bazą pobierając dane daj print_r($_POST['id']) i zobacz, czy wartość jest poprawna. Bo rozumiem że jeżeli do zapytania dasz na sztywno poprawny numer to skrypt "nie wysypie się" ?
maestro20
tak jak dam na sztywno to wszystko dzial i wyswietla sie jak a blad jak wypisuje mi jest nastepujacej tresci
"Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\gotowe dzialajace\usuniecie\test2.php on line 16"
mi sie wydaje ze ma problem z pobraniem tego zapytania do tablicy ale niestety niewiem jaki

mogl by ktos rzucic na to okiem Prosze smile.gif
drzalek
Może tu jest jakiś błąd
  1. <?php
  2. $zapytanie = "SELECT * FROM `test` WHERE id ='$option'";
  3. ?>


Spróbuj tak:
  1. <?php
  2. $zapytanie = "SELECT * FROM test WHERE id =".$option
  3. ?>
patryczakowy
zamień ten kawałek
  1. <?php
  2. $zapytanie = "SELECT * FROM `test` WHERE id ='$option'";
  3. ?>

na
  1. <?php
  2. $zapytanie =mysql_query("SELECT * FROM `test` WHERE id ='$option'");
  3. ?>

poprostu teraz w zmiennej $zapytanie masz ciąg znaków a nie dane z bazy danych
maestro20
Niestety zadne z waszch podpowiezi nie rozwiazalo w 100% mojego problemu ale bynajmniej teraz nie wyswietla errora smile.gif
patryczakowy
a daj sobie
  1. <?php
  2. echo $option ;
  3. ?>

przed zapytaniem i zobacz co masz w tej zmiennej i czy takie pole wogule istnieje w bazie
maestro20
pokazuje mi 0 czyli wyglonda na to ze ta funkcja nie przkazuje zadneg parametru
drzalek
To może pokaż jak przekazujesz to id
maestro20
robie to tak

  1. <?php $link = mysql_connect("localhost", "maestro", 'Passw0d') or die('Blad: Nie mozna polaczy´c z MySQL!');
  2.  
  3. mysql_select_db("test2") or die('Blad: Nie mozna wybraz bazy danych!');
  4.  
  5. $zapytanie = mysql_query ("SELECT id FROM test where 1");
  6. ?>
  7. <form action="usun.php" method="post">
  8. <select name="id">
  9. <option value="0">Wybierz Pytanie
  10. <?php while($option = mysql_fetch_assoc($zapytanie)) {
  11. echo '<option value="'.$option['id'].'">'.$option['id'].'</option>';
  12. }
  13. ?>
drzalek
W pierwszym skrypcie nie używasz mysql_query() exclamation.gif!
maestro20
doalem i dalej nic teraz to wyglonda tak
  1. $option =$_POST['id'];
  2.  
  3. $zapytanie = mysql_query ("SELECT * FROM `test` WHERE id ='.$option'");
  4. $txt = mysql_fetch_assoc ($zapytanie);
drzalek
popraw
  1. <?php
  2. $option =$_POST['id'];
  3.  
  4. $zapytanie = mysql_query ("SELECT * FROM `test` WHERE id =".$option);
  5. $txt = mysql_fetch_assoc ($zapytanie);
  6. ?>
maestro20
dalej nic nie wyswietla sad.gif
drzalek
Sorki bo ja się pomyliłem, ale poprawiłem

  1. <?php  $q = mysql_connect("localhost", "maestro", "xxx") or die('Blad: Nie mozna polaczy´c z MySQL!');
  2. $q = mysql_select_db ('test2') or die ('brak bazy');
  3. $option = (int)$_POST['id'];
  4. $zapytanie = "SELECT * FROM `test` WHERE id =".$option;
  5. $txt = mysql_fetch_array(mysql_query($zapytanie));
  6. ?>


Jeżli w pierwszym skrypcie jest oki, tzn jeśli ten select przyjmuje odpowiednie wartości to tutaj też powinno być dobrze
maestro20
niestety dalej nie wyswietla ja sad.gif
drzalek
No dobrze a ten skrypt:

  1. <?php $link = mysql_connect("localhost", "maestro", 'Passw0d') or die('Blad: Nie mozna polaczy´c z MySQL!');
  2.  
  3. mysql_select_db("test2") or die('Blad: Nie mozna wybraz bazy danych!');
  4.  
  5. $zapytanie = mysql_query ("SELECT id FROM test where 1");
  6. ?>
  7. <form action="usun.php" method="post">
  8. <select name="id">
  9. <option value="0">Wybierz Pytanie
  10. </option>
  11. <?php while($option = mysql_fetch_assoc($zapytanie)) {
  12. echo '<option value="'.$option['id'].'">'.$option['id'].'</option>';
  13. }
  14. ?>


działa prawidłowo??
maestro20
tak bo ja do tego skryptu mam dodane usuwanie z bazy rekordu i usuwanie dziala jak najlepiej wiec nie sdze zeby tu byl jakis problem
matixrr
SELECT id FROM test where 1

czy tu przypadkiem WHERE nie jest źle zadeklarowane :|
drzalek
Jeszcze zmień to:

  1. <?php  $q = mysql_connect("localhost", "maestro", "xxx") or die('Blad: Nie mozna polaczy´c z MySQL!');
  2. $q = mysql_select_db ("test2") or die ('brak bazy');
  3. $option = (int)$_POST['id'];
  4. $zapytanie = "SELECT * FROM test WHERE id =".$option;
  5. $txt = mysql_fetch_array(mysql_query($zapytanie));
  6. ?>


I może używaj albo ' albo ", żeby była jasność, bo potem się można pogubić co jest dla skryptu php, a co dla sql
maestro20
to zapytanie jstdobrze zdeklarowane bo jak dalem SELECT id FROM test pokazywalo mi to samo takrze tu nie tkwi problem

ale chyab juz to wyzej mi wpisales zebym zmienil, ale teraz tez to zrobilem i nic nie daje
drzalek
Zgodnie z tym co napisałeś w pierwszym poście, że jeśli ustawisz na sztywno to działa, czyli jak zrozumiałem jeśli zamiast id=$option, podasz np. id=4 to jest ok...
W związku z powyższym błąd MUSI być, albo w skrypcie gdzie wybierasz to id, albo w zapytaniu. Zakładam, że zapytanie poprawiłeś, bo mówiłeś, że nie zgłasza Ci już błędu.

Trzeba zatem jeszcze raz sprawdzić pierwszy skrypt, jeśli jest on w osobnym pliku, to możesz go uruchomić i zobaczyć co wyświetli Ci się w kodzie, chodzi o <option value="">, jeśli tam będzie dobrze to na chwilę obecną nie mam pomysłu co jeszcze.
maestro20
teraz to juz nic mi nie dziala i jestem troche wkurzony :[ czekaj zrobie reseta i zobaczymy co powie

Wiesz prawde mowiac nie wiem jak to sprawdzic bo jestem kompletnie zielony z tego ale wydaje mi sie ze skrypt dziala poprawnie bo mam usuwanie z bazy wlasnie na takiej zasadzi ze na jeden strone wybieram z listy odpowiedni rekord do usunicia i naciskam usun i rekord usuwa wiec to chyba nie to

No i niewiem jak mam to zrobic stoje z tym i echo prosze kogos o pomoc smile.gif

Hej forumowicze ma ktos pomysl na moj problem bo kilku prubowalo ale niestety nie do konca skutecznie
Licze na na wasza pomoc winksmiley.jpg
erix
To może pokaż WSZYSTKO, co teraz masz, a nie podbijasz temat? IMHO trochę zakręciłeś, robiłeś coś poza forum, a moja szklana kula gdzieś się wturlała... tongue.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.