![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 209 Pomógł: 3 Dołączył: 6.04.2010 Skąd: Słupca Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich mam mały problem z dodaniem rekordu mianowicie pisze skrypt do składania zamówień na ulotki i mam problem z przenoszeniem danych z bazy z danymi tymczasowymi(tmpzam) a stałymi danymi (dataz). Struktura baz jest taka tmpzam: uid(numer użytkownika) offid(numer ulotki) ilosc(ilosc) oraz dataz: zid(numer zamówienia) offid ilosc.
podaje skrypt może ktoś podpowie w czym bład że pętla tylko wstawia mi jeden rekord a mianowicie zid.
PS pętla while ma za zafanie powstawiać wszystkie zamówione przedmioty |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Bo masz klauzule WHERE w zapytaniu SELECT i w odpowiedzi dostajesz jeden wiersz. Poza tym do skopiowania tabel w ten sposób możesz posłużyć się zapytaniem INSERT-SELECT.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 209 Pomógł: 3 Dołączył: 6.04.2010 Skąd: Słupca Ostrzeżenie: (0%) ![]() ![]() |
a właśnie że nie jest to przez nią ponieważ klauzula where pozwala mi pobrać tylko rekordy danego użytkownika i im przypisać (zastąpić) pole uid polem zid(numer zamuwienia)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Myślę, że Twój kod można zastąpić tym:
Zamiast wykonywać $sql2 możemy skorzystać z mysql_insert_id(), aby pobrać numer nowego zamówienia (pole zid w tabeli zamówienia musi być automatycznie inkrementowane). Zamiast wykonywać w pętli kilka lub nawet więcej INSERT-ów możemy "zrzucić odpowiedzialność" na silnik bazy danych poprzez przedstawione wyżej zapytanie. W opisie problemu nie wspomniałeś, że w kopiowaniu pośredniczy jeszcze jedna tabela, stąd moje poprzednie przypuszczenia. Szczerze przyznam, że nie potrafię powiedzieć, dlaczego kopiowało/uje Ci jeden rekord. Aby to sprawdzić możesz sobie przed pętlą while podejrzeć obiekt $result (linia 25 w Twoim kodzie): |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 209 Pomógł: 3 Dołączył: 6.04.2010 Skąd: Słupca Ostrzeżenie: (0%) ![]() ![]() |
nadal nie pomogło w tabeli dataz jest nadal wypełniane tylko jedno pole mianowicie zid;/
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Używasz $_row która nigdzie nie jest określona.
Zastosuj się do podanych tu porad: Temat: Jak poprawnie zada pytanie między innymi włącz wyświetlanie wszystkich błędów. Ale zastosuj się też do innych -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.06.2025 - 19:11 |