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

Mam Problem z błędem w PHP

VPS Starter Arubacloud
0 głosów
195 wizyt
pytanie zadane 31 marca 2019 w PHP przez MarekPL Nowicjusz (120 p.)
edycja 31 marca 2019 przez MarekPL

Otóż mam problem w formularzu nie wyświetla z bazy danych listy z kod kraju  to mój kod Bardzo Bym prosił o pomoc

<html>

<head>
    <title>Dodanie miasta do bazy</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

<body>
    <form method="post">
        <p><b>
                <font size="4">Dodanie miasta:</font>
            </b></p>
        Nazwa miasta:<br />
        <input type="text" name="Name" size="30"><br /><br />
        
        Kod kraju:<br />
        <select name="city">
            <?php
            
            foreach ($city as $value){
                echo '<option value=">' . $value['id'] . '">' . $value['name'] . '</option>';
            }
            
            ?>
        </select>
        <br><br />
        
        Województwo/Dystrykt:<br />
        <input type="text" name="District" size="30"><br><br />
        
        Liczba mieszkańców: <br />
        <input type="text" name="Population" size="10"><br><br />
        <p><input type="submit" value="Wyślij" name="wyslij">
            <input type="reset" value="Wyczyść" name="zeruj"></p>

    </form>
</body>

</html>
<?php
session_start();
if((isset($_POST['Name']) && (isset($_POST['CountryCode'])) && (isset($_POST['District']))&& (isset($_POST['Population'])))) {
$Name = $_POST['Name'];
$CountryCode = $_POST['CountryCode'];
$District = $_POST['District'];
$Population = $_POST['Population'];


    
$baza = mysqli_connect ('localhost', 'root', ''); 
if (!$baza) {
exit ("Błąd połączenia z serwerem MySQL.");
}
 
if(!mysqli_select_db($baza, 'world')) {
mysqli_close();
exit ("Błąd podczas wyboru bazy.");
}
 
$dodaj = "INSERT INTO city VALUES (NULL, '$Name', '$CountryCode', '$District', '$Population')";
 
if(!$zapytanie= mysqli_query($baza, $dodaj)) {
 
mysqli_close($baza);
 
exit("Błąd w zapytaniu");
 
}
 
$ile = mysqli_affected_rows($baza);
 
echo "Liczba dodanych rekordów do tabeli city wynosi: $ile<br/>";
 
mysqli_close($baza);    
   
}

$idGet = isSet( $_GET['id']) ? intval( $_GET['id']) : 0;

if($idGet > 0){
    $sth = ( 'SELECT * FROM city ORDER BY name ASC' );
	$sth->bindParam( ':id', $idGet );
    $sth->execute();
    $city = $sth->fetchAll();
}


    
    
?>

 

1 odpowiedź

0 głosów
odpowiedź 31 marca 2019 przez Chess Szeryf (76,710 p.)

Przenieś kod przed <form..., teraz nie widzi zmiennej $city.

<select>
<?php
$cities = [1, 2, 3];

foreach($cities as $city) {
	echo "<option>{$city}</option>";
}
?>
</select>
komentarz 31 marca 2019 przez Chess Szeryf (76,710 p.)

Przepraszam, mój błąd. Powinno być:

$sth = $dbh->prepare('SELECT `CountryCode` FROM `your_name_table`');

Za $dbh podstaw swoje połączenie z bazą ($baza), a połączenie z bazą na samą górę przenieś, czyli od linii 50. do 58. musisz przenieść przed ten kod powyższy.

komentarz 31 marca 2019 przez MarekPL Nowicjusz (120 p.)
przywrócone 31 marca 2019 przez Arkadiusz Waluk

@Chess, Nie działa

<html>

<head>
    <title>Dodanie miasta do bazy</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

<body>
    <form method="post">
        <p><b>
                <font size="4">Dodanie miasta:</font>
            </b></p>
        Nazwa miasta:<br />
        <input type="text" name="Name" size="30"><br /><br />
        

        Kod kraju:<br />
        <select>
            <?php
$sth = ('SELECT `CountryCode` FROM `city`');
$sth->execute();
$Country_codes = $sth->fetchAll();
 
foreach($country_codes as $CountryCode) {
    echo "<option>{$country_code['CountryCode']}</option>";
}
?>
        </select>
        <br><br />
        
        Województwo/Dystrykt:<br />
        <input type="text" name="District" size="30"><br><br />
        
        Liczba mieszkańców: <br />
        <input type="text" name="Population" size="10"><br><br />
        <p><input type="submit" value="Wyślij" name="wyslij">
            <input type="reset" value="Wyczyść" name="zeruj"></p>

    </form>
</body>

</html>
<?php
session_start();
if((isset($_POST['Name']) && (isset($_POST['CountryCode'])) && (isset($_POST['District']))&& (isset($_POST['Population'])))) {
$Name = $_POST['Name'];
$CountryCode = $_POST['CountryCode'];
$District = $_POST['District'];
$Population = $_POST['Population'];


$sth = $baza->prepare('SELECT `CountryCode` FROM `city`');


    
$baza = mysqli_connect ('localhost', 'root', ''); 
if (!$baza) {
exit ("Błąd połączenia z serwerem MySQL.");
}
 
if(!mysqli_select_db($baza, 'world')) {
mysqli_close();
exit ("Błąd podczas wyboru bazy.");
}
 
$dodaj = "INSERT INTO city VALUES (NULL, '$Name', '$CountryCode', '$District', '$Population')";
 
if(!$zapytanie= mysqli_query($baza, $dodaj)) {
 
mysqli_close($baza);
 
exit("Błąd w zapytaniu");
 
}
 
$ile = mysqli_affected_rows($baza);
 
echo "Liczba dodanych rekordów do tabeli city wynosi: $ile<br/>";
 
mysqli_close($baza);    
   
}
   
?>

 

komentarz 31 marca 2019 przez Chess Szeryf (76,710 p.)
edycja 31 marca 2019 przez Chess
Kod kraju:<br />
<select>
<?php

$dbh = mysqli_connect ('localhost', 'root', ''); 

if (!$dbh) {
	exit ("Błąd połączenia z serwerem MySQL.");
}
  
if(!mysqli_select_db($dbh, 'world')) {
	mysqli_close();
	exit ("Błąd podczas wyboru bazy.");
}

$sth = ('SELECT `CountryCode` FROM `your_name_table`');
$result = $dbh->query($sth);
$country_codes = $result->fetch_all(MYSQLI_ASSOC);

foreach($country_codes as $country_code) {
    echo "<option>{$country_code['CountryCode']}</option>";
}

?>
</select>

Piszę jedno, robisz drugie. Zamień w całym kodzie polskie nazwy na jej odpowiedniki w języku angielskim. Czyli zamień wszystkie $baza na $dbh, $zapytanie na np. $query, itp..

Sorry, myślałem, że piszesz to w PDO - zedytowałem powyższy kod na MySQLi.

komentarz 31 marca 2019 przez MarekPL Nowicjusz (120 p.)
przywrócone 31 marca 2019 przez Arkadiusz Waluk

@Chess, Dalej nie działa

<html>

<head>
    <title>Dodanie miasta do bazy</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

<body>
    <form method="post">
        <p><b>
                <font size="4">Dodanie miasta:</font>
            </b></p>
        Nazwa miasta:<br />
        <input type="text" name="Name" size="30"><br /><br />
        

        Kod kraju:<br />
        <select>
            
<?php
 
$dbh = mysqli_connect ('localhost', 'root', ''); 
 
if (!$dbh) {
    exit ("Błąd połączenia z serwerem MySQL.");
}
   
if(!mysqli_select_db($dbh, 'world')) {
    mysqli_close();
    exit ("Błąd podczas wyboru bazy.");
}
 
$sth = ('SELECT `CountryCode` FROM `city`');
$result = $dbh->query($sth);
$country_codes = $result->fetchAll();
 
foreach($country_codes as $country_code) {
    echo "<option>{$country_code['CountryCode']}</option>";
}
 
?>


        </select>
        <br><br />
        
        Województwo/Dystrykt:<br />
        <input type="text" name="District" size="30"><br><br />
        
        Liczba mieszkańców: <br />
        <input type="text" name="Population" size="10"><br><br />
        <p><input type="submit" value="Wyślij" name="wyslij">
            <input type="reset" value="Wyczyść" name="zeruj"></p>

    </form>
</body>

</html>
<?php
session_start();
if((isset($_POST['Name']) && (isset($_POST['CountryCode'])) && (isset($_POST['District']))&& (isset($_POST['Population'])))) {
$Name = $_POST['Name'];
$CountryCode = $_POST['CountryCode'];
$District = $_POST['District'];
$Population = $_POST['Population'];


$sth = $baza->prepare('SELECT `CountryCode` FROM `city`');


    
$baza = mysqli_connect ('localhost', 'root', ''); 
if (!$baza) {
exit ("Błąd połączenia z serwerem MySQL.");
}
 
if(!mysqli_select_db($baza, 'world')) {
mysqli_close();
exit ("Błąd podczas wyboru bazy.");
}
 
$dodaj = "INSERT INTO city VALUES (NULL, '$Name', '$CountryCode', '$District', '$Population')";
 
if(!$zapytanie= mysqli_query($baza, $dodaj)) {
 
mysqli_close($baza);
 
exit("Błąd w zapytaniu");
 
}
 
$ile = mysqli_affected_rows($baza);
 
echo "Liczba dodanych rekordów do tabeli city wynosi: $ile<br/>";
 
mysqli_close($baza);    
   
}
   
?>

 

komentarz 31 marca 2019 przez Chess Szeryf (76,710 p.)

Zedytowałem powyższy kod, ponieważ był błędny, patrz na dokumentację trochę, a nie ciągle wszystko ode mnie kopiujesz bezmyślnie.

$country_codes = $result->fetch_all(MYSQLI_ASSOC);

Jeśli używasz Notepad++, to naciśnij ctrl+h i dalej na zakładce Replace wpisz $baza na $dbh, $zapytanie na $query, itp.. Naciskaj tam Replace All.

Podobne pytania

0 głosów
2 odpowiedzi 978 wizyt
0 głosów
2 odpowiedzi 268 wizyt
pytanie zadane 26 czerwca 2016 w PHP przez Warzywo Gaming Początkujący (320 p.)
–2 głosów
1 odpowiedź 118 wizyt
pytanie zadane 24 sierpnia 2016 w PHP przez Patryk Rafał Bywalec (2,700 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...