Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Problem z przekzaniem danych do mysql
Lunatyk
post 23.08.2023, 08:46:59
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 23.08.2023

Ostrzeżenie: (0%)
-----


Hej próbuję napisać na użytek mój oraz znajomych kreator postaci rpg i napotkałem pewien problem. Na wcześniejszej stronie losujemy punkty cech i zapisują się one do mysql. Potem gracz ma wybór albo akceptuje losowe wyniki i przechodzi do innej strony albo nie zgadza się z tym i przechodzi do strony gdzie może pozamieniać wyniki losowań z cechami. (kod tej strony zamieszczam poniżej). Mój problem polega na tym że jak kliknę przycisk tak to w mysql nie aktualizują mi się wyniki.

Macie jakieś pomysły gdzie coś spaprałem albo jak i inaczej osiągnąć ten cel?? To mój pierwszy taki projekt i do tej pory raczej miałem mało styczności z zapytaniami mysql...



Link do pobrania kodu https://icedrive.net/s/jNyiSh2a32kQ4XjVzCzwfzT35jgz

plik do pobrania bo wyskakuje mi komunikat że tekst jest za długi.
Go to the top of the page
+Quote Post
sadistic_son
post 23.08.2023, 21:17:35
Post #2





Grupa: Zarejestrowani
Postów: 1 481
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Domyślam się, że żadnej odpowiedzi nie dostałeś póki co, bo inni, podobnie jak ja nie zamierzają pobierać żadnego pliku z kodem, a może i z czym innym w gratisie...


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Lunatyk
post 24.08.2023, 12:03:26
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 23.08.2023

Ostrzeżenie: (0%)
-----


ok rozumiem zatem wstawiam kod tutaj
CODE
<?php
session_start();
include 'polaczenie.php';

$characterName = '';
$selectedRace = '';
$selectedClass = '';
$selectedProfession = '';
$pdPoints = 0;

if (isset($_SESSION['character_name'])) {
$characterName = $_SESSION['character_name'];
}

if (isset($_SESSION['selected_race'])) {
$selectedRace = $_SESSION['selected_race'];
}

if (isset($_SESSION['selected_class'])) {
$selectedClass = $_SESSION['selected_class'];
}

if (isset($_SESSION['selected_profession'])) {
$selectedProfession = $_SESSION['selected_profession'];
}

if (isset($_SESSION['pd_points'])) {
$pdPoints = $_SESSION['pd_points'];
}

// Sprawdź, czy istnieje już wpis w tabeli dice_results_temp dla danego user_id i imienia/nazwiska postaci
if (isset($_SESSION['user_id']) && isset($_SESSION['character_name'])) {
$user_id = $_SESSION['user_id'];
$chName = $_SESSION['character_name'];

$queryCheckEntry = "SELECT * FROM dice_results_temp WHERE user_id = '$user_id' AND ch_name = '$chName'";
$resultCheckEntry = mysqli_query($conn, $queryCheckEntry);

if ($resultCheckEntry && mysqli_num_rows($resultCheckEntry) > 0) {
// Wpis już istnieje, wczytaj istniejące dane
$rowExistingEntry = mysqli_fetch_assoc($resultCheckEntry);
$existingWW = $rowExistingEntry['ww'];
} else {
// Wpis nie istnieje, utwórz nowy wpis
$queryInsertEntry = "INSERT INTO dice_results_temp (user_id, ch_name) VALUES ('$user_id', '$chName')";
$resultInsertEntry = mysqli_query($conn, $queryInsertEntry);

if (!$resultInsertEntry) {
echo "Błąd: Nie udało się utworzyć nowego wpisu.";
exit();
}
}
} else {
echo "Błąd: Brak wymaganych danych sesji.";
exit();
}
?>

<!DOCTYPE html>
<html>
<head>
<title>Kreator Postaci - Cechy 2</title>
</head>
<style>
table {
text-align: center;
}

th, td {
padding: 5px;
}

td button {
margin: 0 auto;
}
</style>
<body>
<h1>Kreator Postaci - Cechy 2</h1>

<?php
if (isset($_SESSION['username'])) {
echo '<p>Witaj, ' . $_SESSION['username'] . '!</p>';
}
?>
<p>Imię i nazwisko postaci: <?php echo $characterName; ?></p>
<p>Rasa: <?php echo $selectedRace; ?></p>
<p>Klasa: <?php echo $selectedClass; ?></p>
<p>Profesja: <?php echo $selectedProfession; ?></p>
<p>Suma PD: <?php echo $pdPoints; ?></p>
<p>Żywotność:
<?php

if (isset($_SESSION['user_id']) && isset($_SESSION['character_name'])) {
$user_id = $_SESSION['user_id'];
$chName = $_SESSION['character_name'];
} else {
echo "Błąd: Brak wymaganych danych sesji.";
exit();
}

$queryLifeValue = "SELECT s, w, sw FROM dice_results_temp WHERE user_id = '$user_id' AND ch_name = '$chName'";
$resultLifeValue = mysqli_query($conn, $queryLifeValue);

if ($resultLifeValue && mysqli_num_rows($resultLifeValue) > 0) {
$rowLifeValue = mysqli_fetch_assoc($resultLifeValue);
$lifeValue = $rowLifeValue['s'] + (2 * $rowLifeValue['w']) + $rowLifeValue['sw'];
echo $lifeValue;
} else {
echo "Siła + (2 x Wytrzymałość) + Siła Woli - Wylosuj watości cech aby obliczyć!";
}
?>
</p>

<h2>Cechy Rasy</h2>
<table border="1">
<tr>
<th>Cecha Rasowa</th>
<th>Wartość</th>
</tr>
<?php
$queryCharacteristics = "SELECT DISTINCT characteristic, points FROM characteristic_race WHERE race = '$selectedRace'";
$resultCharacteristics = mysqli_query($conn, $queryCharacteristics);

if ($resultCharacteristics && mysqli_num_rows($resultCharacteristics) > 0) {
while ($row = mysqli_fetch_assoc($resultCharacteristics)) {
echo '<tr>';
echo '<td>' . $row['characteristic'] . '</td>';
echo '<td>' . $row['points'] . '</td>';
echo '</tr>';
}
}
?>
</table>

<h2>Cechy Postaci</h2>
<form method="post" action="">
<table border="1">
<tr>
<th>Wybierz Cechę</th>
<th>Punkty Cechy</th>
</tr>
<?php

if (isset($_SESSION['user_id']) && isset($_SESSION['character_name'])) {
$user_id = $_SESSION['user_id'];
$chName = $_SESSION['character_name'];
} else {
echo "Błąd: Brak wymaganych danych sesji.";
exit();
}

$queryCharacteristicValues = "SELECT ww, us, s, w, i, zw, zr, intel, sw, o FROM dice_results_temp WHERE user_id = '$user_id' AND ch_name = '$chName'";
$resultCharacteristicValues = mysqli_query($conn, $queryCharacteristicValues);

if ($resultCharacteristicValues && mysqli_num_rows($resultCharacteristicValues) > 0) {
$rowCharacteristicValues = mysqli_fetch_assoc($resultCharacteristicValues);

$characteristicNames = array(
'ww' => 'Walka Wręcz',
'us' => 'Umiejętności Strzeleckie',
's' => 'Siła',
'w' => 'Wytrzymałość',
'i' => 'Inicjatywa',
'zw' => 'Zwinność',
'zr' => 'Zręczność',
'intel' => 'Inteligencja',
'sw' => 'Siła Woli',
'o' => 'Ogłada',
);

echo '<tr><td colspan="3">';

// Dodaj listę wyboru cech
foreach ($characteristicNames as $key => $name) {
echo '<tr>';
echo '<td>';
echo '<select name="selected_characteristics[' . $key . ']" class="characteristic-select">';
echo '<option value="">Wybierz</option>'; // Opcja "Wybierz" jako domyślna

// Dla każdej cechy, sprawdź, czy jest dostępna
foreach ($characteristicNames as $optionKey => $optionName) {
if ($optionKey === $key) {
echo '<option value="' . $optionKey . '">' . $optionName . '</option>';
} else {
$disabled = in_array($optionKey, array_keys($selectedCharacteristics)) ? 'disabled' : '';
echo '<option value="' . $optionKey . '" ' . $disabled . '>' . $optionName . '</option>';
}
}

echo '</select>';
echo '</td>';
echo '<td>' . $rowCharacteristicValues[$key] . '</td>';
echo '</tr>';
}

?>
</table>
</form>

<p>Czy akceptujesz swój los?</p>
<form method="post" action="">
<button type="submit" name="accept" value="yes">Tak</button>
<button type="submit" name="accept" value="no">Nie</button>
</form>

<?php
if (isset($_SESSION['user_id']) && isset($_SESSION['character_name'])) {
$user_id = $_SESSION['user_id'];
$chName = $_SESSION['character_name'];
} else {
echo "Błąd: Brak wymaganych danych sesji.";
exit();
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['accept'])) {
$acceptChoice = $_POST['accept'];
if ($acceptChoice === 'yes') {
// Pamiętaj o zabezpieczeniu przed SQL Injection!

// Przykład polecenia SQL do aktualizacji cech w tabeli dice_results_temp
$updateQuery = "UPDATE dice_results_temp SET
ww = '{$selectedCharacteristics['ww']}',
us = '{$selectedCharacteristics['us']}',
s = '{$selectedCharacteristics['s']}',
w = '{$selectedCharacteristics['w']}',
i = '{$selectedCharacteristics['i']}',
zw = '{$selectedCharacteristics['zw']}',
zr = '{$selectedCharacteristics['zr']}',
intel = '{$selectedCharacteristics['intel']}',
sw = '{$selectedCharacteristics['sw']}',
o = '{$selectedCharacteristics['o']}'
WHERE user_id = '$user_id' AND ch_name = '$chName'";
$updateResult = mysqli_query($conn, $updateQuery);

// Dodaj 25 PD do aktualnej wartości PD
$pdPoints += 25;
$_SESSION['pd_points'] = $pdPoints;

// Przekieruj na character_talents.php
header("Location: character_talents.php");
exit();
} elseif ($acceptChoice === 'no') {
// Przekieruj na character_characteristic_2.php
header("Location: character_characteristic_2.php");
exit();
}
}
}
?>

<script>
const selectElements = document.querySelectorAll('.characteristic-select');

selectElements.forEach(selectElement => {
selectElement.addEventListener('change', () => {
const selectedValue = selectElement.value;

selectElements.forEach(otherSelect => {
if (otherSelect !== selectElement) {
const optionToRemove = otherSelect.querySelector(`option[value="${selectedValue}"]`);
if (optionToRemove) {
optionToRemove.remove();
}
}
});
});
});
</script>

</body>
</html>
Go to the top of the page
+Quote Post
nospor
post 24.08.2023, 14:30:09
Post #4





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Gdy ktos klinie TAK, to do bazy wpisujesz dane z
$selectedCharacteristics

nigdzie nie widze bys te tablice tworzyl. Z powietrza dane sie nie wezma.

Wlacz debugowanie, bledy itp. tu masz opisane zgrubsza
http://forum.php.pl/index.php?showtopic=44...t=0&start=0


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 14:38