• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z PHP

Object Storage Arubacloud
0 głosów
328 wizyt
pytanie zadane 10 stycznia 2019 w PHP przez avabuy Nowicjusz (210 p.)
zmienione kategorie 10 stycznia 2019 przez Arkadiusz Waluk

Witam. Pojawił mi się błąd po wywołaniu obsługi formularza :

Dziwne iż błąd wskazuje na linie 34 której nawet nie ma w kodzie PHP. Oto kody PHP :
raport_produkty

<?php
require_once("info.inc");
$conn=mysqli_connect($host,$login,$haslo,$baza);
$sql="select nazwa,cena from w_produkty";
$r=mysqli_query($conn,$sql);
echo "Produkt - Cena <br><br>";
while($rekord=mysqli_fetch_array($r)){
echo $rekord["nazwa"];
echo " - ";
echo $rekord["cena"];

echo " ";

echo "<a href='http://localhost/joomla/index.php/2-uncategorised/110-obs-ilosc-sztuk-php?nazwa=". $rekord["nazwa"]."'>Kup</a><br>";
}
mysqli_close($conn);
?>

formularz_produkty

<?php
require_once("info.inc");
$nazwa=$_GET["nazwa"]; 
$conn = mysqli_connect($host,$login,$haslo,$baza);

$sql="INSERT INTO zamowienia (nazwa, id_statusu) VALUES('".$nazwa."', 1)";
$result=mysqli_query($conn, $sql);

mysqli_close($conn);
?>

<form method="post" action="http://localhost/joomla/index.php/2-uncategorised/111-obs-zapisz-zamowienie-php">
Formularz zamowienia<br><br>
Ilosc sztuk:<br>
<input type="text" name="ilosc_sztuk"/>
<br><br>Nazwa kupujacego:<br>
<input type="text" name="nazwa_kupujacego"/>
<br><br>Adres:<br>

<input type="text" name="adres"/>
<br><br>
<input type="submit" value="Zapisz"/>
</form>

i obsługa formularza:

<?php
$ilosc_sztuk=$_POST["ilosc_sztuk"];
$nazwa_kupujacego=$_POST["nazwa_kupujacego"];

$adres=$_POST["adres"];
require_once("info.inc");
$conn=mysqli_connect($host,$login,$haslo,$baza);
$sql="SELECT id_zamowienia FROM zamowienia ORDER BY czas_zlozenia DESC LIMIT 1";
$r=mysqli_query($conn,$sql);

while($rekord=mysqli_fetch_array($r)){
$id_zamowienia=$rekord["id_zamowienia"];

}

echo "Gotowe! Twoj numer zamowienia to: ";

echo $id_zamowienia;

$sql="UPDATE  zamowienia SET ilosc_sztuk='".$ilosc_sztuk."', nazwa_kupujacego='".$nazwa_kupujacego."', adres='".$adres."' WHERE id_zamowienia='".$id_zamowienia."'";

$r=mysqli_query($conn,$sql);
mysqli_close($conn);
?>

oraz zdjęcie tabeli zamówienia:

Czy wie ktoś w czym tkwi problem?

1 odpowiedź

0 głosów
odpowiedź 10 stycznia 2019 przez Piter10p Bywalec (2,750 p.)
wybrane 10 stycznia 2019 przez avabuy
 
Najlepsza

Problem jest chyba tu:

while($rekord=mysqli_fetch_array($r)){
$id_zamowienia=$rekord["id_zamowienia"];
 
}
 
echo "Gotowe! Twoj numer zamowienia to: ";
 
echo $id_zamowienia;

Instancja zmiennej deklarowana jest wewnątrz pętli, dlatego nie jest dostępna poza nią.

Sprawdź, czy zamiana tego na to pomoże:

$id_zamowienia = 0;

while($rekord=mysqli_fetch_array($r)){
$id_zamowienia=$rekord["id_zamowienia"];
 
}
 
echo "Gotowe! Twoj numer zamowienia to: ";
 
echo $id_zamowienia;

 

komentarz 10 stycznia 2019 przez avabuy Nowicjusz (210 p.)
Ogólnie po prostu sprawa wygląda tak, że- jak to typowo na studiach - po prostu trzeba zrobić projekt i nie wchodzić zabardzo w jego szczegóły. Prowadząca zleciła nam zrobić projekt, tak więc go po prostu zrobiłem wwedług wytycznych i przykładowych kodów PHP ( czyli np. takich jakie zamieściłem wyżej jednak lekko edytowane pod moje parametry itd) a jakoś specjalnie w język PHP szczerze powiedziawszy nie mam zamiaru brnąć bo to nie moja "bajka" po prostu - nie będzie mi to potrzebne w mojej przyszłej pracy :) jeśli chodzi o select to najpierw ktoś musi wprowadzić id zamowienia więc należy to zrobić formularzem? ;)
komentarz 10 stycznia 2019 przez Piter10p Bywalec (2,750 p.)
Strona sama powinna wygenerować link z odpowiednimi wartościami albo jako parametr GET albo jako wartość route.

Podobnie, jak skrypt generował link "kup".

Niestety musze powiedziec, że cały ten skrypt jest zly. Po 1) Jest źle zaprojektowany. 2) To jest tak zwany "shagetti code" - od bardzo dawna już się tak stron nie pisze.

Moglbym wiedzieć, która to uczelnia zatrudnia takich "specjalistów"? Za pół roku sam będę kończył technikum i wolal bym nie lądować w takim miejscu.
komentarz 10 stycznia 2019 przez avabuy Nowicjusz (210 p.)
Hmmm no ale nie rozumiem czy wkońcu formularzem czy jak to zrobić? Pomogłbyś to napisać aby kod był prawidłowo napisany? ;) tzn. to nie jest tak że ona nie jest specjalistką - bo jest bo siedzi w tym 15 lat jednak na moim kierunku tego typu przedmiot jest przedmiotem " pobocznym" , dlatego nie "rozwija" się go jakoś specjalnie ponieważ są inne ważniejsze przedmioty ;) pójdziesz na studia to zobaczysz jak to jest - ogólnie studia jakoś specjalnie nie przygotowują do pracy w danym kierunku. Osobiście polecam Ci studia zaoczne bo pracując gdziekolwiek będziesz zdobywał już jakieś doświadczenie i "papierek" do CV ;) Prawda jest taka, że jak chcesz się czegoś nauczyć to więcej nauczysz sie w domu niż na studiach - z tym że studia dają Ci "papierek" i w tym jest cały myk ;)
komentarz 10 stycznia 2019 przez Piter10p Bywalec (2,750 p.)
Niestety nie napiszę gotowego kodu - nie po to jest to forum, oraz nikt nie będzie produkował Ci rozwiązań. Mogę podpowiedzieć ci tyle, że Powinieneś zaprojektować kod, który na podstawie wygenerowanego linku z id zamówienia pobierze odpowiednie dane z bazy oraz je wyświetli.
Jeśli chcesz, mogę napisać ci ten projekt, ale za zapłatą.
komentarz 10 stycznia 2019 przez avabuy Nowicjusz (210 p.)
A to sobie odpuszcze, dzieki ;)

Nie znaleziono podobnych pytań

92,626 zapytań

141,483 odpowiedzi

319,825 komentarzy

62,006 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...