Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

insert date selectate din dropdown menu generat din mysql
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Subiectul anterior :: Subiectul următor  
Autor Mesaj
bogdanb



Data înscrierii: 07/Mai/2008
Mesaje: 5

Trimis: Mie Mai 07, 2008 5:14 pm    Titlul subiectului: insert date selectate din dropdown menu generat din mysql  

salut.
am si eu o problema legata de trimiterea datelor catre baza de date mysql.
eu am o pagina de register unde utilizatorul are de completat mai multe campuri.
cateva dintre aceste campuri au optiuni de selectie (de exemplu: tara, orasul, nationalitatea). Nu am mai stat sa fac pt fiecare <option>valoarea</option> cod html. Am folosit o interogare in baza de date care imi afiseaza tot ce contine un anumit camp.
scriptul arata cam asa
Cod: echo '<p>Will You Care for Elderly People? *  <select name="batrani">
';
 $cerereSQL = 'SELECT valoare FROM batrani_register';
   $rezultat = mysql_query($cerereSQL);

     while($rand = mysql_fetch_row($rezultat))
       {
          print("<option value=\"$rand[0]\">$rand[0]</option>");
       }
echo '</select>';

problema este ca atunci cand apas submit imi spune
Cod: Notice: Undefined index: tara in C:\wamp\www\au pair\autentificare\inregistrare.php on line 605

nu reusesc sa populez baza de date.
scriptul care ar trebui sa bage datele in baza de date arata cam asa
Cod: echo 'Va multumim. <br>
      Datele au fost introduse cu succes in baza de date. <br>
     Pentru a va autentifica apasati <a href="autentificare.php">aici</a>.';

$cerereSQL = "INSERT INTO `utilizatori` (`utilizator`, `parola`, `nume`, `prenume`, `varsta`, `localitate`)
             VALUES ('".addentities($_SESSION['user'])."', '".md5($_SESSION['parola1'])."', '".addentities($_SESSION['nume'])."', '".addentities($_SESSION['prenume'])."', '".addentities($_SESSION['varsta'])."', '".addentities($_SESSION['localitate'])."')";
mysql_query($cerereSQL);
sunt incepator si m-am folosit de tutorialul lui oriceon pana acum cu succes.
aici m-am blocat insa.
Sus  
Xposed



Data înscrierii: 11/Ian/2006
Mesaje: 78

Trimis: Mie Mai 07, 2008 5:17 pm    Titlul subiectului:  

In primul rand in C:\wamp\www\au pair\autentificare\inregistrare.php variabila $tara nu este declarata.

Aratane si noua liniile 603 -> 606 din C:\wamp\www\au pair\autentificare\inregistrare.php.
Sus  
bogdanb



Data înscrierii: 07/Mai/2008
Mesaje: 5

Trimis: Mie Mai 07, 2008 5:19 pm    Titlul subiectului:  

multumesc pt promptitudine.
Cod: $_SESSION['parola2']=$_POST['parola2'];
$_SESSION['locuieste_in_us']=$_POST['locuieste_in_us'];
$_SESSION['tara']=$_POST['tara'];
$_SESSION['provincia']=$_POST['provincia'];
astea sunt
am cautat pe net solutii cum se trimit catre baza de date selectiile din <option></option> dar nu am gasit decat in HTML, nu si pt cele populate direct din mysql.
cred ca rand[0] ala e problema dar nu reusesc sa inteleg cum vine.
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1421
Locație: Sibiu

Trimis: Joi Mai 08, 2008 8:39 am    Titlul subiectului:  

Notice-ul il primesti pentru ca $_POST['tara'] nu exista, adica in form-ul la care ii dai submit nu exista nici un control (input/select/textarea) care sa aiba name='tara'.

'Selectiile din <option></option>' e un pic impropriu spus. Eventual selectia din <select></select>. Asta se transmite foarte usor: daca ai Cod: <select name='tara'>
  <option value='ro'>Romania</option>
  <option value='md'>Moldova</option>
</select> si dai submit la form-ul ce il contine, in script-ul de action vei primi $_POST['tara'] = 'ro' daca ai selectat Romania, respectiv 'md' pentru Moldova.

Sporuri.
Sus  
bogdanb



Data înscrierii: 07/Mai/2008
Mesaje: 5

Trimis: Joi Mai 08, 2008 9:43 am    Titlul subiectului:  

scuze tot nu inteleg.
uite pun tot codul poate iti vine mai usor sa imi explici unde trebuie sa modific (te rog)
Cod: <?php
require_once('config.php');


if(!isset($_GET['actiune'])) $_GET['actiune'] = '';
if(!isset($_SESSION['user'])) $_SESSION['user'] = '';
if(!isset($_SESSION['localitate'])) $_SESSION['localitate'] = '';
switch($_GET['actiune'])
{
case '':

echo '<table width="309" border="0" cellpadding="0" cellspacing="0">
<form name="formular" action="inregistrare.php?actiune=validare" method="post">
  <tr>
    <td height="36" colspan="4" valign="top"><h1>Formular inregistrare </h1></td>
    </tr>
  <tr>
    <td width="80" height="19" valign="top">&nbsp;</td>
    <td width="15" rowspan="5" valign="top"></td>
    <td width="144" valign="top">&nbsp;</td>
    <td width="70" valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td height="22" align="right" valign="top">Utilizator:</td>
    <td colspan="2" valign="top">
      <input type="text" name="user" value="'.$_SESSION['user'].'">    </td>
    </tr>
<tr>
    <td colspan="2" valign="top">';
   echo '<p>Localitate <select name="localitate">';
   
 $cerereSQL = 'SELECT valoare FROM localitate_register';
   $rezultat = mysql_query($cerereSQL);

     while($rand = mysql_fetch_row($rezultat))
       {
          print("<option value=\"$rand[0]\">$rand[0]</option>");
       }
echo '</select>';
echo' </td>
    </tr>
  <tr>
    <td height="19">&nbsp;</td>
    <td valign="top"></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="24">&nbsp;</td>
    <td valign="top"></td>
    <td colspan="2" valign="top"><input name="Trimite" type="submit" id="Trimite" value="Trimite">
      <input name="Reseteaza" type="reset" id="Reseteaza" value="Reseteaza"> </td>
    </tr>
  <tr>
    <td height="24">&nbsp;</td>
    <td valign="top"></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  </form>
</table>';
break;

case 'validare':

$_SESSION['user'] = $_POST['user'];
$_SESSION['localitate']= $_POST['localitate'];
if(($_SESSION['user'] == '')  || ($_SESSION['localitate'] == ''))
{
echo 'Nu ai introdus date in formular sau cele introduse nu sunt corecte. <br>
      Apasa <a href="inregistrare.php">aici</a> pentru a te intoarce la pagina anterioara.';
}
else
{
echo 'Va multumim. <br>
      Datele au fost introduse cu succes in baza de date. <br>
     Pentru a va autentifica apasati <a href="autentificare.php">aici</a>.';

$cerereSQL = "INSERT INTO `utilizatori` (`utilizator`, `localitate`)
             VALUES ('".addentities($_SESSION['user'])."', '".addentities($_SESSION['localitate'])."’)";
mysql_query($cerereSQL);
$_SESSION['user'] = '';
$_SESSION['localitate'] = '';
}

break;

}

?>

daca scot localitatea functioneaza perfect.
localitatile le aduc dintr-o baza de date (sunt destul de multe si ar dura ceva timp sa pun htm, plus ca daca sunt modificari...)
scriptul asa cum e acum nu da nicio eroare.
cand apas submit imi spune
Va multumim.
Datele au fost introduse cu succes in baza de date.
Pentru a va autentifica apasati <a href="autentificare.php">aici</a>. (ca si cum ar fi totul ok))
Problema este ca daca vreau sa ma loghez nu pot pt ca in baza de date nu exista nicio informatie trimisa.
Sus  
bogdanb



Data înscrierii: 07/Mai/2008
Mesaje: 5

Trimis: Joi Mai 08, 2008 11:04 am    Titlul subiectului:  

am mai incercat asa
Cod: echo '<p>Localitate <select name="'.$_SESSION['localitate'].'">';
   
 $cerereSQL = 'SELECT valoare FROM localitate_register';
   $rezultat = mysql_query($cerereSQL);

     while($rand = mysql_fetch_row($rezultat))
       {
          print("<option value=\"$rand[0]\">$rand[0]</option>");
       }
echo '</select>';
totusi cand apas submit imi spune Citat: Notice: Undefined index: localitate in C:\wamp\www\test\autentificare\inregistrare.php on line 138
Nu ai introdus date in formular sau cele introduse nu sunt corecte.
Apasa aici pentru a te intoarce la pagina anterioara.
si eu pe linia 138 am codul asta Cod: $_SESSION['localitate']= $_POST['localitate'];
restul de cod e exact ca mai sus.
oriceon spune in tutorialul lui Citat: Intorcandu-ne la formularul nostru de inregistrare, ati vazut ca valoarea campurilor .. este o sesiune.
Vom seta cate o sesiune pentru fiecare camp, astfel incat sa pastram datele scrise de el, iar daca utilizatorul
completeaza gresit campurile si este redirectionat la pagina cu formularul.. datele introduse de el vor aparea
din nou in formular, astfel incat el va putea sa corecteze campurile in care a gresit.
ma gandesc ca ar trebui ca ceea ce selecteaza userul din dropdown list sa fie o sesiune. dar cum ar arata sintaxa?
Sus  
bogdanb



Data înscrierii: 07/Mai/2008
Mesaje: 5

Trimis: Joi Mai 08, 2008 4:23 pm    Titlul subiectului:  

salut
am rezolvat
problema era aici
Cod: $cerereSQL = "INSERT INTO `utilizatori` (`utilizator`, `localitate`)
             VALUES ('".addentities($_SESSION['user'])."', '".addentities($_SESSION['localitate'])."’)";
trebuia la '".addentities($_SESSION['localitate'])."’)"; pus asa '".addentities($_SESSION['localitate'])."')";....
in fine am modificat scriptul ca cerereSQl sa imi afiseze erorile si i-am dat de cap :)
Cod: $cerereSQL = "INSERT INTO `utilizatori` (`utilizator`, `parola`, `nume`, `prenume`, `varsta`, `localitate`)
             VALUES ('".addentities($_SESSION['user'])."', '".md5($_SESSION['parola1'])."', '".addentities($_SESSION['nume'])."', '".addentities($_SESSION['prenume'])."', '".addentities($_SESSION['varsta'])."', '".addentities($_SESSION['localitate'])."' )";
mysql_query($cerereSQL) or die (mysql_error());
multumesc celor care m-au indrumat.
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community