Autor Zpráva
Brutuska
Profil
Zdravím,

V php jsem trochu lepší začátečník a potřeboval bych pomoci s následujícím kódem. Kód jsem stáhnul a učím se na něm. Už se nějakou dobu mučím s kompletním výpisem objednávek dle uživatele. Bez problémů jsem udělal výpis jednoho řádku, ale s výpisem všech položek mám problém.


<?php
    //Start session
    session_start();
    
    //Include database connection details
    require_once('config.php');
    
    //Array to store validation errors
    $errmsg_arr = array();
    
    //Validation error flag
    $errflag = false;
    
    //Connect to mysql server
    $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
    if(!$link) {
        die('Nepodařilose připojit k databázi ' . mysql_error());
    }
    
    //Select database
    $db = mysql_select_db(DB_DATABASE);
    if(!$db) {
        die("Unable to select database");
    }
    
    //Function to sanitize values received from the form. Prevents SQL injection
    function clean($str) {
        $str = @trim($str);
        if(get_magic_quotes_gpc()) {
            $str = stripslashes($str);
        }
        return mysql_real_escape_string($str);
    }
    
    //Sanitize the POST values
    $login = clean($_POST['login']);
    $password = clean($_POST['password']);
    
    //Input Validations
    if($login == '') {
        $errmsg_arr[] = 'Login ID missing';
        $errflag = true;
    }
    if($password == '') {
        $errmsg_arr[] = 'Password missing';
        $errflag = true;
    }
    
    //If there are input validations, redirect back to the login form
    if($errflag) {
        $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
        session_write_close();
        header("location: login-form.php");
        exit();
    }
    
    //Create query
    $qry="SELECT * FROM members WHERE login='$login' AND passwd='".md5($_POST['password'])."'";
    $qry_vypis = "SELECT * FROM orders WHERE login='$login'";
    $result=mysql_query($qry);
    $vypis=mysql_query($qry_vypis);    
    


    //Check whether the query was successful or not
    if($result) {
        if(mysql_num_rows($result) == 1) {
            //Login Successful
            session_regenerate_id();
            $orders = mysql_fetch_assoc($vypis);
            $member = mysql_fetch_assoc($result);
            $_SESSION['SESS_MEMBER_ID'] = $member['member_id'];
            $_SESSION['SESS_FIRST_NAME'] = $member['firstname'];
            $_SESSION['SESS_LAST_NAME'] = $member['lastname'];
            $_SESSION['SESS_TELEPHONE'] = $member['telephone'];
            $_SESSION['SESS_E-MAIL'] = $member['e-mail'];
            $_SESSION['SESS_WWW'] = $member['www'];
            $_SESSION['SESS_MEMBER_PRICE'] = $member['member_price'];
            $_SESSION['SESS_MEMBER_PROSPECTS'] = $member['member_prospects'];
            $_SESSION['SESS_ORDER_DATUM_PRIJETI'] = $orders['datum_prijeti'];
            $_SESSION['SESS_ORDER_DATUM_ODESLANI'] = $orders['datum_odeslani'];
            $_SESSION['SESS_ORDER_STAV'] = $orders['stav'];
            $_SESSION['SESS_ORDER_SPEDICE'] = $orders['spedice'];
            $_SESSION['SESS_ORDER_CISLO_ZASILKY'] = $orders['cislo_zasilky'];
            $_SESSION['SESS_ORDER_OBJEDNAVKA_CISLO'] = $orders['objednavka_cislo'];
            $_SESSION['SESS_ORDER_CELKOVA_CASTKA'] = $orders['celkova_castka'];
            session_write_close();
            header("location: member-index.php");
            exit();
        }else {
            //Login failed
            header("location: login-failed.php");
            exit();
        }
    }else {
        die("Query failed");
    }
?>

skákal bych dva metry vysoko, kdyby se našel někdo, kdo by mi poradil. Dík

Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Tori
Profil
Třeba takhle:
$qry_vypis = "SELECT * FROM orders WHERE login='$login'"; 
$vypis=mysql_query($qry_vypis);	
// projdi všechny objednávky a vypiš je jednu za druhou.
while ($orders = mysql_fetch_assoc($vypis))  {
  echo '<h4>objednávka č.'.$orders['objednavka_cislo'].'</h4>';
  echo 'datum přijetí: '.$orders['datum_prijeti']; 
  echo 'datum odeslání: '.$orders['datum_odeslani']; 
  // ... atd.  
} 

Jen nerozumím tomu, proč by se měl výpis objednávek ukládat do session. Taky přihlašování / ověření uživatele bych nechala samotné v tomto skriptu, a výpis objednávek dala do jiného - takhle je to už dost nepřehledné.
Lamicz
Profil
Brutuska:
Z tohoto kódu bych se opravdu neučil ;)
Brutuska
Profil
Děkuji za pomoc. Vyřešeno a upraveno podle rad.
pcmanik
Profil
Brutuska:
Urcite nieje dobre vyuzivat tolko session, a ked uz musi byt tak radsej menej ale ako pole

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: