Autor Zpráva
TomasRe
Profil
Můžete prosím někdo poradit? V tabulce mám výpis z databáze, kde se dá měnit proměnná, tu bych chtěl uložit do session, ale bohužel se mi to nějak nedaří... Kód ve zkratce:

<?php
session_start();
foreach($_POST['abc'] as $id => $abcde)
    {$vysledek = mysql_query("SELECT * FROM table WHERE id=$id");
    while ($zaznam = mysql_fetch_array($vysledek))
        {$_SESSION['abcde'][$zaznam['$id']]==$abcde['id'];}
    }

echo "<select name='abc[".$zaznam['id']."]'>";
?>



TomasRe:
Aha, tak už jsem na to přišel :-)

$_SESSION['abc'][$zaznam['id']]=$_POST['abc'][$zaznam['id']]
lionel messi
Profil
TomasRe:
Na riadku 6 vidím 1 chybu:

Operátor == znamená porovnanie, v tomto kontexte je však potrebné priradenie, čiže operátor =.

Správne má teda cyklus vyzerať takto:
while ($zaznam = mysql_fetch_array($vysledek))
        {$_SESSION['abcde'][$zaznam['$id']] = $abcde['id'];}
petr 6
Profil
lionel messi:
Prebytočná zátvorka na vyznačenom mieste
Žádná přebytečná závorka tam není.

TomasRe:
Nějak nechápu, čeho chceš docílit.
Proměnná $zaznam['$id'] je rovna klíči z pole $_POST['abc'], takže do session přiřazuješ hodnoty z post, tudíž dotaz na databázi tam nepotřebuješ, resp. dotaz na databázi ti tam slouží jen k tomu, abys zjistil, zda existuje řádek s daným id, což se dá samozřejmě udělat lépe.
Navíc si nejsem jistý, jestli nemáš řádek s echo vně cyklu foreach omylem, nebo je to úmysl.
lionel messi
Profil
petr 6:
lionel messi:
„Prebytočná zátvorka na vyznačenom mieste“
Žádná přebytečná závorka tam není.
Pardon, opravené.
Kubo2
Profil
lionel messi:
Správne má teda cyklus vyzerať takto:
Ja tam vidím ešte jednu chybu, a to je $zaznam['$id']; pravdepodobne má byť $zaznam[$id].
snazimse
Profil
Kubo2:

Tuším, že se to dá zapsat i takto $zaznam["$id"];, ale nelíbí se mi to.
Kubo2
Profil
snazimse:
Tuším, že se to dá zapsat i takto $zaznam["$id"];, ale nelíbí se mi to.
Áno, ale substitúcia funguje iba v zložených úvodzovkách ("), v jednoduchých (') nie. Pokiaľ však ide iba o dosadenie hodnoty premennej $id ako reťazcového kľúča, použitie substitúcie je celkom zbytočné.
Mimochodom, ten prístup do poľa sa dá zapísať naozaj viacerými rozmanitými či divnými spôsobmi, jeden z nich, čo si teraz spomeniem, je napríklad $zaznam{$id}.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: