ugrás a tartalomhoz

Egy változó két elágazásban

aky22 · 2011. Jún. 5. (V), 10.06
Lécci segítsetek! Nem jövök rá hogy hogy tudnám megoldani azt hogy egy változót két elágazásban használjak. Az lenne a lényeg hogy megkapja a getelt adatot és azt letárolom egy változóban, de nekem ez két helyre kellene és mivel le van ellenőrizve, hogy van e ilyen ezért csak az egyik helyen jelenik meg és ezért az update utasítás nem tud lefutni itt a kód:
  1. include("../dbconnect2.php");  
  2.         mysql_set_charset("latin2");  
  3.         $tabla2=$_GET['tabla'];  
  4.         if (isset($_GET['id']) && isset($_GET['tabla']))  
  5.         {  
  6.         $id=$_GET['id'];  
  7.         $tabla=$_GET['tabla'];  
  8.         $p="SELECT * FROM `$tabla` WHERE `id`='$id'";  
  9.         if ($e=mysql_query($p))  
  10.         {  
  11.             $sor=mysql_fetch_array($e);  
  12.             echo '<form class="iform" action="'.$_SERVER['PHP_SELF'].'" method="post">  
  13.                     Verseny:<br/>  
  14.                     <input type="text" name="title" value="'.$sor['verseny'].'" size="40"/><br/>  
  15.                     Név:<br/>  
  16.                     <input type="text" name="user" value="'.$sor['user'].'" size="50"><br/>  
  17.                     Eredmény:<br/>  
  18.                     <textarea name="message" rows="15" cols="67">'.$sor['eredmeny'].'</textarea><br/>  
  19.                     Dátum:<br/>  
  20.                     <input type="text" id="datepicker" name="date" value="'.$sor['date'].'" size="50"><br/>  
  21.                     <center><input type="submit" name="submit" value="Módosít" /></center>  
  22.                     <input type="hidden" value="'.$sor['id'].'" name="id" />  
  23.                   </form>';  
  24.         }  
  25.         }         
  26.             if (isset($_POST['submit']))  
  27.                 {  
  28.                 $_verseny=$_POST['title'];  
  29.                 $_verseny=mysql_real_escape_string(stripslashes($_verseny));  
  30.                 $_user=$_POST['user'];  
  31.                 $_eredmeny=$_POST['message'];  
  32.                 $_date=$_POST['date'];  
  33.                 $id=$_POST['id'];  
  34.                               
  35.                 include("../dbconnect2.php");  
  36.                 mysql_set_charset("latin2");  
  37.                 $parancs = "UPDATE `$tabla2` SET `verseny` = '$_verseny', `user` = '$_user', `eredmeny` = '$_eredmeny', `date` = '$_date', WHERE `id` =  '$id'";  
  38.                     if (mysql_query($parancs))  
  39.                     {  
  40.                         header("location:../eredmenyeink.php");  
  41.                     }  
  42.                     else  
  43.                     {  
  44.                         print "Sikertelen módosítás";  
  45.                         echo $parancs;  
  46.                     }  
  47.                         mysql_close($kapcs);  
  48.                 }  
 
1

Továbbítani kell a get paramétert

stan · 2011. Jún. 5. (V), 12.04
  1. <form class="iform" action="'.$_SERVER['PHP_SELF'].'" method="post">  
helyett ezt írd:
  1. <form class="iform" action="'.$_SERVER['PHP_SELF'].'"?tabla="'.$tabla.'" method="post">  
valamint ezt a részt egészítsd ki:
  1. if (isset($_POST['submit']))    
  2.                {    
  3.                $_verseny=$_POST['title'];  
  4.     $_verseny=mysql_real_escape_string(stripslashes($_verseny));    
  5.                $_user=$_POST['user'];    
  6.                $_eredmeny=$_POST['message'];    
  7.                $_date=$_POST['date'];    
  8.                $id=$_POST['id'];    
így:
  1.  if (isset($_POST['submit']))    
  2.                 {    
  3.   
  4. include("../dbconnect2.php");  
  5. $tabla = mysql_real_escape_string($_GET["tabla"]);  
  6.   
  7.                 $_verseny=$_POST['title'];  
  8.      $_verseny=mysql_real_escape_string(stripslashes($_verseny));    
  9.                 $_user=$_POST['user'];    
  10.                 $_eredmeny=$_POST['message'];    
  11.                 $_date=$_POST['date'];    
  12.                 $id=$_POST['id'];    
Tehát a form elküldésekor továbbítod a get paramétert, a fogadáskor pedig eltárolod egy változóban.

Ne felejtsd el ezen kívül, hogy a mysql_real_escape_string előtt csatlakozni kell az adatbázishoz, mert ez a funkció csak így működik. (Legalábbis nálam.)
2

Köszi ez magamtól eszembe se

aky22 · 2011. Jún. 5. (V), 13.36
Köszi ez magamtól eszembe se jutott volna thx
3

Nem teljesen tiszta, hogy mi

H.Z. v2 · 2011. Jún. 5. (V), 15.38
Nem teljesen tiszta, hogy mi volt az eredeti problémád, de egy apró kiegészítés az egyebekhez: az include helyett javasolnám a require_once használatát. Az include dob egy warningot, ha nem találja a betöltendő file-t, a require megállítja a programot. A _once a végén meg arra való, hogy ha egyszer már betöltődött, akkor ne töltse újra. Pl.: a dbconnect2.php nevéből ítélve teljesen felesleges egy lapon kétszer meghívni, hiszen ha először lefutott, akkor már megvan a kapcsolat.