Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP]Wczytanie rekordów z bazy MYSQL ze znakami specjalnymi do formularza, Jak przesyłać dane z jednego formularza do drugiego gdzie w rekord są
staryadam60
post 21.07.2018, 12:25:40
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 20.11.2011

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


Witam!

Wczytuję z bazy Mysql rekord ze znakami specjalnymi np; cat's, do formularza nr1.
Wszystko ładnie się wyświetla, następnie chcę przesłać ten rekord do następnego nr2 formularza i tutaj jest problem.

Inne rekordy które zaznaczę do przesłania w formularzu nr1, bez znaków specjalnych są wczytywane w formularzu nr2,
ale te ze znakami już nie.

Stosowałem funkcję mysqli-real_escape_string i nie pomaga, nadal nie przekazuje pomiędzy formularzami tychże rekordów.

Coś robię źle, tylko nie wiem co. Pomocyyyyy.

Adam
Go to the top of the page
+Quote Post
b4rt3kk
post 21.07.2018, 14:12:44
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Pokaż kod.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
staryadam60
post 23.07.2018, 08:35:26
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 20.11.2011

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


Kod pierwszego formularza w którym wyszukuję towar z bazy;
Kod
<html>
<head>
<meta charset="utf-8" />
<title>Znajdź rekord do wpisania</title>

</head>
<body>

<?php
// Łączymy się z serwerem

include_once ("db/connect.php");
?>

<h3 align="szukajnazwy">Szukanie wg nazwy:</h3>

<form action="admin_modrecord1.php" method="GET">
    <p>Podaj nazwę towaru: </p>
   <input type="text" name="towar"  autofocus size="30" required>&nbsp;<br>
    
    <input type="submit" value="Pokaż">&nbsp;&nbsp;
</form>

<?php
    $sn1 = $_GET['towar'];

   $like = "%".$sn1."%";  //parametry do zapytania z LIKE

    echo"Zmienna LIKE;".$like."<br />";
    
    $stmt = $mysqli->prepare("SELECT indeks, nazwa FROM towar WHERE nazwa like ? ORDER BY nazwa");    
    $stmt->bind_param('s', $like);
    $stmt->execute();
    $stmt->bind_result($indeks, $nazwa);

    echo '
        <form action="admin_modrecord2.php" method="POST" >
        <label for="Nazwa">Nazwa towaru</label>
        <select name="sel_record">';
        
        while ($stmt->fetch())
        {
                 echo " <option value= '$nazwa'>$nazwa : $indeks </option>";
            
            }    
                        echo '<input type="submit" value="Wybierz produkt" />
                               </form> </select> ';

$stmt->close();
/* close connection */
$mysqli->close();
?>

</body>
</html>


Teraz formularz nr 2 w którym nie wyświetlają się towary ze znakami specjalnymi, np. cat's

Kod
<html>
<head>
<meta charset="utf-8" />
<title>Zapisz towar, rekord</title>

</head>
<body>
<?php
// Łączymy się z serwerem

include_once ("db/connect.php");


$sel_record2 =$_POST['sel_record'];

echo"Sel Record z Mysqli;  ".$sel_record2. "<br />";


$stmt = $mysqli->prepare("SELECT  t.indeks, t.nazwa, t.vat, t.pkwiu, t.jm, thf.ilosc, thf.cena_n_z, k.kod_kreskowy
FROM towar t
LEFT  JOIN  (faktura f,  faktura_has_towar thf, kod_ean k)
ON (t.id_towar=thf.id_towar AND f.id_faktura=thf.id_faktura AND t.id_towar=k.id_towar)
WHERE t.nazwa = ? ORDER BY f.data_zak DESC LIMIT 0, 1");
$stmt->bind_param('s', $sel_record2);
$stmt->execute();
$stmt->bind_result($indeks, $nazwa, $vat, $pkwiu, $jm, $ilosc, $cena_z, $kod_k);


echo "Nazwa w bazie:" .$nazwa;

$stmt->fetch();
    if (!$stmt)
    {
     echo '<p>Nie można pobrać listy   !';
   }  
    echo "Indeks w mood2 : " . $indeks . " Nazwa : " . $nazwa . " Kod kreskowy: " . $kod_k;

     echo"

<form method='POST' action='admin_addrecord11.php'>
<section >
Indeks :      <input type='text' name='indeks' value='$indeks'size='20' /><br />
Nazwa :       <input type='text' name='nazwa' value='$nazwa' size='40' /><br />  
Jm :          <input type='text' name='jm' value='$jm' size=5 />
Ilość:        <input type='text' name='ilosc' value='$ilosc' size=5 />
Cena zakupu : <input type='text' name='cena_z' value='$cena_z' size=8 /><br />
PKWiU :       <input type='text' name='pkwiu' value='$pkwiu' szize=10 /><br />
Vat :         <input type='text' name='vat' value='$vat' size=8 /><br />
Kod kreskowy: <input type='text' name='kod_k' value='$kod_k' maxlength='13' size='13' /><br />
    
<input type='submit' value='Dodaj nowy produkt' />    
</section>
<a href='admin_modrecord1.php' target='Powrót' >Powrót : </a>
    </form>";

/* free result set */
$stmt->close();
/* close connection */
$mysqli->close();
?>

</body>
</html>


Natomiast nazwy proste bez tych znaczków wchodzą bez problemu.

Proszę o pomoc.....
Go to the top of the page
+Quote Post
b4rt3kk
post 23.07.2018, 10:48:51
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Akurat sprawa jest prozaiczna.

  1. echo "Indeks : <input type='text' name='indeks' value='$indeks'size='20' /><br />";


Jaki ciąg znaków otrzymasz, jeśli zamiast $indeks wstawisz np. wyraz can't? Otóż taki:

  1. <input type='text' name='indeks' value='can't' size='20' />


co oznacza, że atrybut value zostaje zamknięty po can.

Musisz sobie zmienić ciapki na cudzysłowie.

Czyli np.

  1. echo 'Indeks : <input type='text' name='indeks' value="' . $indeks . '" size='20' /><br />';


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
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: 23.04.2024 - 16:40