Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mysql_fetch_row
Forum PHP.pl > Forum > PHP
Zatarra
  1. $id = 'SELECT ID FROM DANE_DZIEKANATU WHERE PESEL="'.$pesel.'";';
  2. $nrid = mysql_query($id);
  3. while ( $rowek = mysql_fetch_row($nrid) )
  4. {
  5. extract($rowek);
  6. echo $schowek;
  7. }
  8. if(!empty($schowek))
  9. {
  10. echo $schowek .' nono '. $schowek[0];
  11. }
  12. else
  13. {
  14. die('blad');
  15. }


co jest nie tak z mysql_fetch_row??
$pesel istnieje ma warość np. 12345678901
Do $nrid robi się wszystko. $nrid ma wartość resource#10 ale potem uzywam "mysql_fetch_row", który wogóle nie wchodzi.
jak dalem mysql_fetch_row($nrid) or die("mysql_fetch_row nie dziala") to mi zrobilo die.
Prosze o jak najszybszą odpowiedz dodam że parę linijek taki kod działa:
  1. $query4 = "SELECT NR_ALBUMU FROM DANE_STUDENTA WHERE NR_ALBUMU='$nr';";
  2. $checkindex = mysql_query($query4);
  3. $row = mysql_fetch_row($checkindex);
  4.  
  5. if($row[0] == $nr)
  6. {
  7. echo '<br><b>Wybrany Numer Albumu jest już zajęty!</b><br>';
  8. unset($nr);
  9. unset($row[0]);
  10. $walidacja= $walidacja + 1;
  11. }
markonix
Co tam średnik robi?

Pesel to wartość numeryczna, daj $pesel bez cudzysłowu.
Kod
extract($rowek);
echo $schowek; // co to jest?
Zatarra
zmienna która przyjmuje wartości z $rowek (wydobywa to extract())

jaki średnik ?
markonix
No dobra ale jak dobrze pamiętam to ta funkcja po prostu indeks zmienia w zmienną tak więc nazwa zmiennej powinna być w elementach pobranych z bazy.
A Ty z bazy pobierasz tylko "id".

No średnik w zapytaniu:

Kod
$id = 'SELECT ID FROM DANE_DZIEKANATU WHERE PESEL="'.$pesel.'";';


Powinno być

Kod
$id = "SELECT `id` FROM dane_dziekanatu WHERE pesel = $pesel";
Zatarra
staram się pobrać id dzieki temu zapytaniu. Zaraz wkleję kod i pokaże jak to wygląda

1 insert wstawia do tabeli DANE DZIEKANATU pracownika
2 mysql_query wysyla zapytanie (dziala do tej pory)
3 wyszukuje ID tego pracownika z tabeli DANE_DZIEKANATU
4 Potem te id dodaje do innej tabeli

Kod
$query='INSERT INTO DANE_DZIEKANATU (IMIE, NAZWISKO, PESEL, LOGIN, HASLO, EMAIL) VALUES ("'.$imie.'","'.$nazwisko.'",'.$pesel.',"'.$nick.'","'.$pass.'","'.$email.'");';
mysql_query($query) or die('blad podczas dodawania PRACOWNIKA');
    
    $id = 'SELECT ID FROM DANE_DZIEKANATU WHERE PESEL='.$pesel;
    $nrid = mysql_query($id);
    while ( $rowek = mysql_fetch_row($nrid) )
    {
        extract($rowek);
        echo $ID;
    }
    if(!empty($ID))
    {
        echo $ID .' lub inna postac tej samej zmiennej '. $ID[0];
    }
    else
    {
        die('blad');
    }

$query1='INSERT INTO ADMIN_PANEL (ID, AKCEPTCJA, ID_DZIEKANATU, KOD) VALUES ("1, 0, '.$ID.', "'.$key.'");';
mysql_query($query1) or die('blad podczas dodawania KODU');


cigle wyświetla blad z else : (
markonix
dodaj mysql_error w die przy zapytaniu.
Zatarra
usunolem i wstawim jeszcze raz odpowiedz.:
  1. $query='INSERT INTO DANE_DZIEKANATU (IMIE, NAZWISKO, PESEL, LOGIN, HASLO, EMAIL) VALUES ("'.$imie.'","'.$nazwisko.'",'.$pesel.',"'.$nick.'","'.$pass.'","'.$email.'");';
  2. mysql_query($query) or die('blad podczas dodawania PRACOWNIKA');
  3.  
  4. $ids = 'SELECT ID FROM DANE_DZIEKANATU WHERE PESEL ='.$pesel.';';
  5. $nrid = mysql_query($ids);
  6. echo 'hmm' . $ids;
  7. while ( $rowek = mysql_fetch_row($nrid) )
  8. {
  9. extract($rowek);
  10. echo $ID;
  11. }
  12.  
  13. $query1='INSERT INTO ADMIN_PANEL (ID, AKCEPTCJA, ID_DZIEKANATU, KOD) VALUES (1, 0, '.$ID[0].', "'.$key.'");';
  14. mysql_query($query1) or die(mysql_error());


Wynik zapytania $ids:
http://studnet.cba.pl/wynik_zapytania.jpg

Tabela:
http://studnet.cba.pl/baza.png

die(mysql_error()):
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' "aaaaaa")' at line 1
markonix
Wszedłeś w te linki co podałeś zanim je wstawiłeś na forum? ....

Po zadaniu domyślam się, że jesteś studentem, więc mógłbyś trzymać jakiś poziom języka "usunolem" ...

Podałem Ci zapytanie poprawione, a Ty znowu dajesz tam jakieś średniki.
Zmienne raczej pisze się z małych liter, tak samo tabele.

mysql_error wyświetla ewentualny błąd w zapytaniu, ustosunkuj się do niego..
Zatarra
O a myślałem, że sobie już poszedłeś. Teraz wszystko działa jak należy. Tak jestem studentem. Sorry za taką pisownie ale się spieszę ze wszystkim.
Wyrzuciłem wszystko i jeszcze raz napisałem.
KOD:
  1. $query='INSERT INTO DANE_DZIEKANATU (IMIE, NAZWISKO, PESEL, LOGIN, HASLO, EMAIL) VALUES ("'.$imie.'","'.$nazwisko.'",'.$pesel.',"'.$nick.'","'.$pass.'","'.$email.'");';
  2. mysql_query($query) or die('blad podczas dodawania PRACOWNIKA');
  3.  
  4. $id = 'SELECT ID FROM DANE_DZIEKANATU WHERE PESEL ='.$pesel.';';
  5. $nrid = mysql_query($id);
  6. echo 'hmm' . $id.'<br />';
  7. $rowm = mysql_fetch_row($nrid);
  8.  
  9. if(!empty($rowm[0]))
  10. {
  11. $query1='INSERT INTO ADMIN_PANEL (ID, ID_DZIEKANATU, KOD) VALUES (1, '.$rowm[0].', "'.$key.'");';
  12. mysql_query($query1) or die(mysql_error());
  13. }
  14. else
  15. {
  16. echo 'Zmienna przekazująca id jest pusta';
  17. die();
  18. }

miałem taki tylko wcześniej nie usunąłem AKCEPTACJA -> która ma domyślnie null ehh. I stąd nie chciało mi działać
Pozdrawiam i dzięki za pomoc. Oczywiście podziękują

Edit: Mam pytanie: jeżeli Akceptacja ma domyślnie NULL (akceptacja to pole w tabeli ADMIN_PANEL) to mogę potem z php nadać jej wartość?
http://studnet.cba.pl/akceptajca.png

apropo średników: nauczono mnie tak w accessie (na zajęciach) że każde polecenie w mysql mamy kończyć średnikiem.
markonix
Tak, to tylko wartość domyślna, ustalana przy dodawaniu nowego rekordu gdy nie ustalisz żadnej wartości dla danej kolumny (np. ominiesz).

Z tymi obrazkami które wstawiasz to trzeba otworzyć je kopiując link, chyba jakaś blokada hotlinków na cba.
Zatarra
Spodziewałem się że to tylko jak nic nie podam to domyślnie mi przypisze, czyli jak nadam wartość dla AKCEPTACJA to spokojnie ją nadpisze (null).
Nie wiedziałem o co chodziło Tobie z linkami, ale teraz już wiem. Prawdopodobnie to jest dlatego że nie mam wykupionego tam konta, a tylko darmowe. A tak na boku muszę powiedzieć że nie jestem php-wcem, a nawet programistą. Interesuje się sieciami komp. Dlatego dość głupie błędy popełniam.
Jeszcze raz dzięki
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.