Anonymní profil David – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil David – Programujte.comAnonymní profil David – Programujte.com

 

Příspěvky odeslané z IP adresy 188.116.67.–

PHP › Aktualizace tabulky s relací…
28. 5. 2018   #221160

Velice vám děkuji za veškerou vaši pomoc. Speciál dík pro gna, díky Tvým posledním radám jsem to spatlal dohromady a vše funguje, jak má    Pár věcí mě ještě potrápilo, práce do školy je hotová, ale budu na tom dělat dál   . Až budu v koncích, přijdu zas pro radu. Mějte se   

PHP › Aktualizace tabulky s relací…
25. 5. 2018   #221139

Předně děkuji za pomoc, jsem začátečník v PHP. Aktuálně pracuji na hlavní tabulce (ZELEZNICNI_PREJEZDY) a aktualizačním formuláři.

http://projekt.vsps-su.cz/ita15/ita15krnavekd/ASW/zaverecna_prace/databaze.php?id=default

Dělám to částečně jako středoškolský projekt, ale dále to chci využít v rámci svého koníčku. Zadání ze školy bylo dost osekané a to by mě moc nebavilo...

Zde je PHP kód:

<?php

$id = $_POST["id"];
$cislo = $_POST["cislo"];
$sirka = $_POST["sirka"];
$delka = $_POST["delka"];
$rok_rekonstrukce = $_POST["rok_rekonstrukce"];
$foto = $_POST["foto"];
$PZZ = $_POST["PZZ"];
$obec = $_POST["obec"];
$silnice = $_POST["silnice"];
if(IsSet($_POST["vystrazniky"])) {
    $vystrazniky_vyber = implode(', ', $_POST["vystrazniky"]);
}

include("pripojeni.php");

if($rok_rekonstrukce != '' or $rok_rekonstrukce != null) {
$sql = "UPDATE ZELEZNICNI_PREJEZDY SET cislo_prejezdu='$cislo', zemepisna_sirka='$sirka', zemepisna_delka='$delka', rok_rekonstrukce='$rok_rekonstrukce', foto='$foto', ZELEZNICNI_PREJEZDY.id_PZZ='$PZZ', ZELEZNICNI_PREJEZDY.id_obce='$obec', ZELEZNICNI_PREJEZDY.id_silnice='$silnice' WHERE ZELEZNICNI_PREJEZDY.id_prejezdu='$id'"; 
}
else {
$sql = "UPDATE ZELEZNICNI_PREJEZDY SET cislo_prejezdu='$cislo', zemepisna_sirka='$sirka', zemepisna_delka='$delka', rok_rekonstrukce=null, foto='$foto', ZELEZNICNI_PREJEZDY.id_PZZ='$PZZ', ZELEZNICNI_PREJEZDY.id_obce='$obec', ZELEZNICNI_PREJEZDY.id_silnice='$silnice' WHERE ZELEZNICNI_PREJEZDY.id_prejezdu='$id'"; 
}

$sql = "UPDATE ZELEZNICNI_PREJEZDY, PREJEZDY_VYSTRAZNIKY SET cislo_prejezdu='$cislo', zemepisna_sirka='$sirka', zemepisna_delka='$delka', foto='$foto', ZELEZNICNI_PREJEZDY.id_PZZ='$PZZ', ZELEZNICNI_PREJEZDY.id_obce='$obec', ZELEZNICNI_PREJEZDY.id_silnice='$silnice' WHERE ZELEZNICNI_PREJEZDY.id_prejezdu='$id'"; 

if($rok_rekonstrukce != '' or $rok_rekonstrukce != null) {
$sql_rok = "UPDATE ZELEZNICNI_PREJEZDY SET rok_rekonstrukce='$rok_rekonstrukce' WHERE ZELEZNICNI_PREJEZDY.id_prejezdu='$id'";
}
else {
$sql_rok = "UPDATE ZELEZNICNI_PREJEZDY SET rok_rekonstrukce=null WHERE ZELEZNICNI_PREJEZDY.id_prejezdu='$id'";
}
if(IsSet($vystrazniky_vyber)) {
    $vystrazniky[] = explode(', ', $vystrazniky_vyber);
}
$sql_prejezdy_vystrazniky_smazat = "DELETE FROM PREJEZDY_VYSTRAZNIKY WHERE id_prejezdu='$id'";

if (IsSet($vystrazniky))
 {
    foreach($vystrazniky AS $id_vystrazniku) {
        $sql_prejezdy_vystrazniky = "INSERT INTO PREJEZDY_VYSTRAZNIKY (id_prejezdu, id_vystrazniku) VALUES ('$id', '$id_vystrazniku'[\"id_vystrazniku\"])";
        mysql_query($sql_prejezdy_vystrazniky);
    }
    if (mysql_query($sql) && mysql_query($sql_rok) && mysql_query($sql_prejezdy_vystrazniky_smazat)) {
    echo "<br>Aktualizace proběhla úspěšně."; }
    else {
    echo "<br>Aktualizace neproběhla úspěšně."; }
}
else {
    if (mysql_query($sql) && mysql_query($sql_rok)) {
    echo "<br>Aktualizace proběhla úspěšně."; }
    else {
    echo "<br>Aktualizace neproběhla úspěšně.";
    echo $id . "\r\n";
    echo $cislo . "\r\n";
    echo $sirka . "\r\n";
    echo $delka . "\r\n";
    echo $rok_rekonstrukce . "\r\n";
    echo $foto . "\r\n";
    echo $PZZ . "\r\n";
    echo $obec . "\r\n";
    echo $silnice . "\r\n";
     }
}


?>
David
PHP › Aktualizace tabulky s relací…
24. 5. 2018   #221123

#9 Kit
Děkuji za radu, zkusím to upravit.

David
PHP › Aktualizace tabulky s relací…
24. 5. 2018   #221122

Dáváš do value id záznamu?

Ano, dávám, ale stále to píše chybu (Array to string conversion)

Select ve formuláři vypadá takto:

echo "Typ výstražníku: <select name=\"vystrazniky[]\" method=\"get\"" . $radek['id_vystrazniku']."\" multiple />";
if($vysledek_vystrazniky = mysql_query($sql_vystrazniky)) {
while ($radek_vystrazniky = mysql_fetch_array($vysledek_vystrazniky)) {
    echo "<option value='" . $radek_vystrazniky['id_vystrazniku'] . "'>" . $radek_vystrazniky['oznaceni_vystrazniku'] . "</option>";
}
}
echo "</select><br />";
David
PHP › Aktualizace tabulky s relací…
24. 5. 2018   #221114

#5 MilanL
Opakovanému doplňování jsem se pokusil zabránit tak, že při aktualizaci záznamu budou smazány původní vazby - do kódu jsem doplnil SQL dotaz: DELETE FROM PREJEZDY_VYSTRAZNIKY WHERE id_prejezdu='$id'.

Zda je $id_vystrazniku nějaká hodnota, jsem se pokusil vyřešit podmínkou - IsSet.

David
PHP › Aktualizace tabulky s relací…
24. 5. 2018   #221113

Je to tak, jak píše MilanL, jde mi opravdu o to spárování. Mám vytvořené tabulky:

  • ZELEZNICNI_PREJEZDY
  • PREJEZDY_VYSTRAZNIKY (vazební tabulka)
  • TYP_VYSTRAZNIKU

Chyby v kódu jsem se pokusil opravit. Neumím si poradit s tím, jak dostat typy výstražníků z formuláře (z prvku multiple select) do vazební tabulky - aby byly vloženy jednotlivé položky, nikoliv řetězec - např. 1 přejezd, 2 typy výstražníků. Vstupní formulář vypadá následovně:

Připojen obrázek.


Ještě jednou moc děkuji za váš čas a vaši pomoc.

David

David
PHP › Aktualizace tabulky s relací…
23. 5. 2018   #221094

Zdravím,

prosím o pomoc, mám následující problém:

Tvořím databázi železničních přejezdů. Databáze obsahuje relaci M:N pro přejezdy a výstražníky (jeden železniční přejezd může mít více typů výstražníků).

Zde je PHP skript, který předává data z formuláře do MySQL:

Připojen obrázek.

<?php

$id = $_GET["id"];
$cislo = $_GET["cislo"];
$sirka = $_GET["sirka"];
$delka = $_GET["delka"];
$rok_rekonstrukce = $_GET["rok_rekonstrukce"];
$foto = $_GET["foto"];
$PZZ = $_GET["PZZ"];
$obec = $_GET["obec"];
$silnice = $_GET["silnice"];
$vystrazniky_vyber = implode(', ', $_GET["vystrazniky"]);






include("pripojeni.php");

$sql = "UPDATE ZELEZNICNI_PREJEZDY, PREJEZDY_VYSTRAZNIKY SET cislo_prejezdu='$cislo', zemepisna_sirka='$sirka', zemepisna_delka='$delka', foto='$foto', ZELEZNICNI_PREJEZDY.id_PZZ='$PZZ', ZELEZNICNI_PREJEZDY.id_obce='$obec', ZELEZNICNI_PREJEZDY.id_silnice='$silnice', WHERE ZELEZNICNI_PREJEZDY.id_prejezdu='$id'"; 

if($rok_rekonstrukce != '' or $rok_rekonstrukce != null) {
$sql_rok = "UPDATE ZELEZNICNI_PREJEZDY SET rok_rekonstrukce='$rok_rekonstrukce' WHERE ZELEZNICNI_PREJEZDY.id_prejezdu='$id'";
}
else {
$sql_rok = "UPDATE ZELEZNICNI_PREJEZDY SET rok_rekonstrukce=null WHERE ZELEZNICNI_PREJEZDY.id_prejezdu='$id'";
}
$vystrazniky[] = explode(', ', $vystrazniky_vyber);
foreach($vystrazniky AS $id_vystrazniku) {
$sql_prejezdy_vystrazniky = "INSERT INTO PREJEZDY_VYSTRAZNIKY (id_prejezdu, id_vystrazniku) VALUES ('$id', '$id_vystrazniku'[\"id_vystrazniku]\")";
}

if (mysql_query($sql) && mysql_query($sql_rok) && mysql_query($sql_prejezdy_vystrazniky)) {
echo "<br>Aktualizace proběhla úspěšně."; }
else {
echo "<br>Aktualizace neproběhla úspěšně."; }

?>

Nedaří se mi aktualizovat pole pro typy výstražníků - skript pro aktualizaci vyhazuje tuto hlášku:

Připojen obrázek

Děkuji za případnou pomoc

David

 

 

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