Změna dat v MySQL databázi a následné zobrazení na stránce. – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Změna dat v MySQL  databázi a následné zobrazení na stránce. – PHP – Fórum – Programujte.comZměna dat v MySQL databázi a následné zobrazení na stránce. – PHP – Fórum – Programujte.com

 

Michael
~ Anonymní uživatel
30 příspěvků
2. 12. 2016   #1
-
0
-

Ahoj lidi prosím vás mohl by mi někdo helpnout potřebuji vyřešit jen jednu část kódu ,ostatní mi fungují a to (smazaní,odeslání do databáze a zobrazení na stránce), ale nejde mi ta změna,data se sice načtou do formu ale neodešlou se do databáze po kliknutí na tlačítko s funkcí submit. 

Kód :

<?php 
    include('pripojeni.php');
    $link = mysqli_connect('localhost','root','');
    mysqli_set_charset($link, "utf8");

    $op='';
    $msg='';
    if (isset($_POST['op']))
    {        
        $op=$_POST['op'];
    }
    if (isset($_GET['op']))
    {        
        $op=$_GET['op'];
    }
        if($op=='send') 
        {
                     $day=$_POST['txtday'];
                    $date=$_POST['txtdate'];
                    $break=$_POST['txtbreak'];
                    $main_food=$_POST['txtmain_food'];
                    $soup=$_POST['txtsoup'];

                    $a_sql=mysqli_query($conn,"INSERT INTO days_tbl VALUES('','$day','$date','$break','$main_food','$soup')");
                    
        }
        if ($op=='delete') 
        {
                $id=$_GET['id'];
                $delete=mysqli_query($conn,"DELETE FROM days_tbl WHERE day_id =$id ");

        }
        if ($op=='saveup') 
        {
                    $day=$_POST['txtday'];
                    $date=$_POST['txtdate'];
                    $break=$_POST['txtbreak'];
                    $main_food=$_POST['txtmain_food'];
                    $soup=$_POST['txtsoup'];
            $a_sql=mysqli_query($conn,"UPDATE  days_tbl SET day='$day',date='$date',break='$break',main_food='$main_food',soup='$soup' WHERE day_id =$id");
            
        }
?>

<html>
<head>
<style>
.prcka{
    color:red;
    
}
.week{
        color:red;
        position:relative;
        float:left;
    }
</style>
</head>
<body>
<?php

if ($op=='saveup') {
                    $id=$_GET['id'];
                    $row=mysqli_query($conn,"SELECT * FROM days_tbl WHERE day_id='$id'");
                    $st_row=mysqli_fetch_array($row);
                    ?>
<h2>Změna</h2>
<form method="POST" action='index.php?op=update'>
<table align="center" >

<tr>
<td>Den</td>
<td><input type='text' name='txtday' value='<?PHP echo $st_row['day'] ?>'/></td>
<tr>

<tr>
<td>Datum</td>
<td><input type='text' name='datename' value='<?PHP echo $st_row['date'] ?>'/></td>
<tr>

<tr>
<td>Svačina</td>
<td><input type='text' name='breakname' value='<?PHP echo $st_row['break'] ?>'/></td>
<tr>

<tr>
<td>Hlavní Jídlo</td>
<td><input type='text' name='main_foodname' value='<?PHP echo $st_row['main_food'] ?>'/></td>
<tr>

<tr>
<td>Polévka</td>
<td><input type='text' name='soupname' value='<?PHP echo $st_row['soup'] ?>'/></td>
<tr>

<tr>
<td></td>
<td><input type='submit' name='button'/></td>
<tr>

</table>
</form>
    
<?php }else{
    ?>
    <h2>Přidání</h2>
<form method="POST" action='index.php?op=send' >
<table align="center" >

<tr>
<td class=prcka>Den</td>
<td><input type='text' name='txtday'/></td>
<tr>

<tr>
<td>Datum</td>
<td><input type='text' name='txtdate'/></td>
<tr>

<tr>
<td>Svačina</td>
<td><input type='text' name='txtbreak'/></td>
<tr>

<tr>
<td>Hlavní Jídlo</td>
<td><input type='text' name='txtmain_food'/></td>
<tr>

<tr>
<td>Polévka</td>
<td><input type='text' name='txtsoup'/></td>
<tr>

<tr>
<td></td>
<td><input type='submit' name='button'/></td>
<tr>

</table>
</form>
<?php } ?>
<?php
$sql=mysqli_query($conn,"SELECT * FROM days_tbl");
while($row=mysqli_fetch_array($sql))
{
    echo"
    <div class=week>
    <p>Den: ".$row['day']."</p>
    <p>Datum: ".$row['date']."</p>
    <p>Svačina: ".$row['break']."</p>
    <p>Hlavní jídlo: ".$row['main_food']."</p>
    <p>Polévka: ".$row['soup']."</p>
    <a rel="nofollow" href='index.php/?op=saveup&id=".$row['day_id']."'>změnit<a>
    <a rel="nofollow" href='index.php/?op=delete&id=".$row['day_id']."'>smazat<a>
    </div>
    ";
}
?>
</body>
</html>

Připojen obrázek.

Připojen obrázek.

Připojen obrázek.

Nahlásit jako SPAM
IP: 194.228.32.–
peter
~ Anonymní uživatel
3714 příspěvků
2. 12. 2016   #2
-
0
-

1.  (zruseno)2. php kod zpracovavej nad html, do html ho jen vypisuj pres echo. Tohle tam proste uz nema, co delat. Podobne dole kod '...<div class=week>...'

<body>
<?php

if ($op=='saveup') {
                    $id=$_GET['id'];
                    $row=mysqli_query($conn,"SELECT * FROM days_tbl WHERE day_id='$id'");
                    $st_row=mysqli_fetch_array($row);
                    ?>

3. kdyz pouzivas $op s jedinu moznou hodnotou, tak zkus pouzivat elseif nebo switch

if ($op=='saveup') {...}
elseif ($op=='delete') {...}
elseif (...) {...}

4. pro sql prikazy pouzivej vlastni funkci. To se sikne treba pro ladeni. Pridej tam funkci, ktera ti vypise i sql error. Pripadne exho, ktere ti vypise i query, abys videl, ze je dotaz fakt spravne. Pokud pouzivas jedine pripojeni k db, neni potreba jej uvadet.

function sql($query) {return mysqli_query($query) or die(mysqli_error());}

Navic, ty mas na jednom radku pripojeni ulozene v promenne $link, ale pro ostatni funkce pouzivas pripojeni z promenne $conn, kde ale nemas nic!

 $link = mysqli_connect('localhost','root',''); // pripojeni k db
    mysqli_set_charset($link, "utf8"); //sql_funkce1(pripojeni, dotaz)
$a_sql=mysqli_query($conn,"INSERT INTO days_tbl VALUES('','$day','$date','$break','$main_food','$soup')"); // sql_funkce2(pripojeni, dotaz)

5. Kdyby te zajimalo, co je v post nebo get, vypisuje se to pres  

var_dump($_POST);
var_dump($_GET);

6. Kde mas error_reposting? Bez toho preci nemuzes seriozne ladit! 

@ini_set("error_reporting", E_ALL); // varianta 2
@ini_set("display_errors", "on");  // varianta 3
error_reporting(E_ALL);		//chyby = on, varianta 1
ob_start();

2b. Jeste by se dalo pouzit sablonovani. Ze pouzijes treba
$arr = array();
$arr['aaa'] = 'bbb';
// $str = '<div>aaa</div>';
// $out = str_replace(array_keys($arr), $arr, $str);
function fn_cb(&$value, $key){$value = '{'.$value.'}';}
$str = '<div>{aaa}</div>';
$out = str_replace(array_walk(array_keys($arr),'fn_cb'), array_values($arr), $str); // netestovano, lze resit i pres foreach+str_replace
echo $out;

Nahlásit jako SPAM
IP: 2001:718:2601:26c:b408:1c...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý