Autor Zpráva
roman_an1
Profil
zdravim, mám takovej problem, mám 2 tabukly jedna která obsahuje registraci a podle ní dělám login, pak mám jestě jendnu tabulku kde jsou nějaké udáje které si ten příhlašený navolil, ale vůbec nevím jak to udělat..už to zkouším tak týden a furt nic..poradí někdo?
Bertram
Profil
roman_an1:
Ahoj, co přesně nevíš jak udělat z dotazu to není jasné.


Docvaklo mi, že ti asi půjde o propojení těch tabulek.
users
id  |   jmeno   |   heslo
1   |   Franta  |   tajne
2   |   Pepa    |   nereknu


info
id_uzivatele    |   velikost_bot
1               |   45
2               |   43


$sql = 'SELECT velikost_bot FROM info WHERE id_uzivatele = $userId';
roman_an1
Profil
Bertram, Bertram:
já furt nechápu co s tim userID takovou promennou tam ani nemas
Bertram
Profil
roman_an1:
Z přihlašovacího formuláře získáš data v poli $_POST, poté je ověříš s tabulkou users.
Pokud je vše v pořádku sestavíš si jeho identitu, pomůže ti k tomu zmiňované $userId jakožto id z tabulky users.
Ale já žil v domění, že toto už máš, jen nevíš jak tyto tabulky svázat.
roman_an1
Profil
Bertram:
jj to mam ale mě to vypíše undefined index
Bertram
Profil
roman_an1:
Raději ukaž kód, takto je to věštění.
roman_an1
Profil
Bertram:
tak tady je jak se přihlašuju

<?php
$db_spojeni = @mysql_connect('localhost','root','','3306');
$databaze = @mysql_select_db("azcomp") or die  ("Databáze pravděpodobně neexistuje nebo nemáte dostatečná práva!");
mysql_query("set names utf8");

$login = mysql_real_escape_string($_POST["nick"]);/* nick zadaný ve formuláři pro přihlašování */
$heslo = mysql_real_escape_string($_POST["heslo"]);/* heslo zadané ve formuláři pro přihlašování */
$md5heslo = md5($heslo);/* Pomocí funkce md5() heslo zahashujeme */
/* — DOTAZ K MYSQL PRO OVĚŘENÍ PŘIHLAŠOVACÍCH DAT — */
$dotaz = mysql_query("select * from uzivatele where login = '$login' and heslo = '$md5heslo'");
$overeni = mysql_num_rows($dotaz);
$row = mysql_fetch_array($dotaz);
if($overeni == 1) {
    session_start();
    $_SESSION['login'] = stripslashes($login);
    $_SESSION['id'] = $row["id"];
    header("Location: admin.php");
    die();
} else {
    echo"Zadal jsi špatný login nebo heslo!";
}
?>



Bertram:
no a tady se snažím to spojit a rovnou si to i vypsat :)

<?php
 $db_spojeni = @mysql_connect('localhost','root','','3306');
$databaze = @mysql_select_db("azcomp") or die  ("Databáze pravděpodobně neexistuje nebo nemáte dostatečná práva!");
 

 $mail= $_SESSION['email'] ;


 $query =  "SELECT cislo FROM vyrobky WHERE id2 = '$mail'";
 

 
 
$vysledek = mysql_query($query);



  

echo "<table width=100% border=1 cellspacing=20>";
while($clen = mysql_fetch_object($vysledek)) {
  echo "<tr width='30%'>";  
    echo "<td width='10%'>" . $clen->login . "<td width='10%'> " . $clen->heslo . "<td width='10%'> " . $clen->email . "</td>";
   
  echo "</tr>";
}
echo "</table>";
Bertram
Profil
V tom druhém souboru (zřejmě admin.php) pracuješ se session přitom tam nemáš session_start() a $_SESSION['email'] nikde nenastavuješ.
roman_an1
Profil
Bertram:
táááák už jsem to poupravil ja už zkoušel vše snad..chybu mi to už nevypisuje..ale nevypíše mi to tu tabulku..

<?php
 $db_spojeni = @mysql_connect('localhost','root','','3306');
$databaze = @mysql_select_db("azcomp") or die  ("Databáze pravděpodobně neexistuje nebo nemáte dostatečná práva!");

 
  session_start();
 
  $login = $_SESSION['login'] ;


 $query =  "SELECT cislo FROM vyrobky WHERE id2 = '$login'";
 
 /
 
 

 
 
$vysledek = mysql_query($query);



  

echo "<table width=100% border=1 cellspacing=20>";
while($clen = mysql_fetch_object($vysledek)) {
  echo "<tr width='30%'>";  
    echo "<td width='10%'>" . $clen->login . "<td width='10%'> " . $clen->heslo . "<td width='10%'> " . $clen->email . "</td>";
   
  echo "</tr>";
}
echo "</table>";

/*
  
  while($row = mysql_fetch_row($vysledek)) {

      echo "<tr><td>";       
           echo $row[1]."</td><BR><td>";
      
           
      }     */
      ?>


Bertram
Profil
No, chyb je tam jak maku, ale tobě v této fázi tvého úsilí jde zřejmě o to, ať už se to konečně zobrazí, že ano?
Takže bych ti doporučil naučit se využívat funkce var_dump(), popřípadě echo() a kontrolovat si jeli aplikace ve stavech, jaké očekáváš.
Také není na škodu u databázových funkcí podmíněně (při neúspěchu) používat funkce mysql_error() a mysql_errno().

No a potom si ten kód projdi a pokus se sám sobě odpovědět, co dělá například tento řádek,
$databaze = @mysql_select_db("azcomp") or die  ("Databáze pravděpodobně neexistuje nebo nemáte dostatečná práva!");
nebo je-li id2 opravdu string atd.
To lomítko na patnáctém řádku bude zřejmě chyba kopírování, ale projistotu ho zmiňuji.
A také by jsi mohl začít psát ten kód přehledněji, bude se ti v něm lépe orientovat.
panther
Profil
roman_an1:
chybu mi to už nevypisuje
vyhoď zavináče a třeba ti to něco vypisovat bude. To, že chybu zavináčem schováš, je hezké, ale sama se takto neopraví.

Kromě toho, co píše Bertram, na 11. ř. kódu v [#9] máš ve WHERE nějaké id2, o kterém se nikde nezmiňuješ. Opravdu sloupec s názvem id2 obsahuje e-malovou adresu? Proč si nepojmenuješ sloupce nějak lidsky?

Když dáš na 12. ř. echo $login, co se ti vypíše? Pokud nějaký e-mail (a ten v DB existuje), echuj takhle řádek po řádku dál. Někde pak zjistíš, že je v dané proměnné jiný obsah (nebo žádný), než který očekáváš.

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: