← PHP

inserir id do user numa form

Lida 4349 vezes

Offline

Nuno 
Administrador
Mensagens 7780 Gostos 216
Feedback +2

Troféus totais: 42
Trófeus: (Ver todos)
100 Poll Votes Level 7 Search Mobile User Level 6 Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Pessoal tenho duas tabelas:

users:
id,nome,mail
Links:
id,url,nome,tag,descrição

Esta form vai me enviar os links para a tabela links, eu queria era ficar com uma ideia de como posso fazer para este codigo ir buscar também o id do user que está logado neste momento...

Código: [Seleccione]

<?php 

// This page is for editing a user record.
// This page is accessed through view_users.php.

$page_title 'insert link';
require_once (
'includes/config.inc.php'); 
include (
'includes/header.html');

$usr "xxxx";
$pwd "xxxx";
$db "xxxx";
$host "localhost";

# connect to database
$cid mysql_connect($host,$usr,$pwd);
if (!$cid) { echo("ERROR: " mysql_error() . "\n"); }

?>

<HTML>
<HEAD>


</HEAD>
<BODY BGCOLOR="#FFFFFF">

<h1>Insert Link</h1>

<?
# this is processed when the form is submitted
# back on to this page (POST METHOD)
if ($REQUEST_METHOD=="POST") {

# double-up apostrophes
$description = str_replace("'","''",$description);
$sitename = str_replace("'","''",$sitename);

# setup SQL statement
$SQL = " INSERT INTO links ";
$SQL = $SQL . " (category, sitename, siteurl, description) VALUES ";
$SQL = $SQL . " ('$category', '$sitename','$siteurl','$description') ";

#execute SQL statement
$result = mysql_db_query($db,"$SQL",$cid);

# check for error
if (!$result) { echo("ERROR: " . mysql_error() . "\n$SQL\n"); }

echo ("<P><B>New Link Added</B></P>\n");

}

?>

<FORM NAME="fa" ACTION="insert_link.php" METHOD="POST">
<TABLE>
<TR><TD><B>Tag: </B> </TD><TD><INPUT TYPE="text" NAME="category" SIZE=40></TD></TR>
<TR><TD><B>Site Name:</B> </TD><TD><INPUT TYPE="text" NAME="sitename" SIZE=40></TD></TR>
<TR><TD><B>Site URL: </B> </TD><TD><INPUT TYPE="text" NAME="siteurl" VALUE="http://" SIZE=40></TD></TR>
<TR><TD VALIGN=TOP><B>Description: </B> </TD><TD> <TEXTAREA NAME="description" ROWS=5 COLS=40></TEXTAREA></TD></TR>
<TR><TH COLSPAN=2><P><INPUT TYPE="submit" VALUE="Add Link"></P></TH></TR>
</TABLE>
</FORM>


<? mysql_close($cid); ?>
</BODY>
</HTML>







PS: Sou muito nood a fazer coisas de raiz, é o mal dos cms! :/
Offline

cenourinha 
Elite
Mensagens 4094 Gostos 21
Troféus totais: 34
Trófeus: (Ver todos)
Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4

Verificas o user pela sessão.
Offline

Nuno 
Administrador
Mensagens 7780 Gostos 216
Feedback +2

Troféus totais: 42
Trófeus: (Ver todos)
100 Poll Votes Level 7 Search Mobile User Level 6 Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Verificas o user pela sessão.

Eu verifico o user pela sessão para ele poder aceder a essa página, mas não faço ideia de como associo na bd o id do user da informação inserida na form...
Offline

Emanuel Santos 
Elite
Mensagens 848 Gostos 2
Feedback +25

Troféus totais: 25
Trófeus: (Ver todos)
Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 4 Level 3 Level 2 Level 1

Uma solução simples é guardares o id no array $_SESSION, antes fazer session_start();

Isto fazes qdo o user é autenticado, por isso precisas de uma password.
Offline

Nuno 
Administrador
Mensagens 7780 Gostos 216
Feedback +2

Troféus totais: 42
Trófeus: (Ver todos)
100 Poll Votes Level 7 Search Mobile User Level 6 Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Um exemplo é que dava jeito... Não encontram por ai nada na net?
Offline

Júnio Branco 
Membro
Mensagens 563 Gostos 0
Feedback +2

Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

Mas eu acho que ele se refere ao ID que é atribuido na tabela pelo menos foi o que eu percebi... Mas o ID que é atribuido na tabela é normalmente automático, isto é a cada registo corresponde 1 ID
Offline

Nuno 
Administrador
Mensagens 7780 Gostos 216
Feedback +2

Troféus totais: 42
Trófeus: (Ver todos)
100 Poll Votes Level 7 Search Mobile User Level 6 Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Mas eu acho que ele se refere ao ID que é atribuido na tabela pelo menos foi o que eu percebi... Mas o ID que é atribuido na tabela é normalmente automático, isto é a cada registo corresponde 1 ID

Mas eu tenho duas tabelas...

Dos users e dos links, cada informação inserida fica com o seu respectivo ID
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

também não percebi, mas porque não fazes um uid e um lid e colocas o uid dentro dos links como chave estrangeira e depois fazer um natural join para juntares tudo.

Tens que explicar melhor o que queres, um exemplo das coisas.
Offline

Nuno 
Administrador
Mensagens 7780 Gostos 216
Feedback +2

Troféus totais: 42
Trófeus: (Ver todos)
100 Poll Votes Level 7 Search Mobile User Level 6 Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Anjo2, eu até explicava se soubesse... Eu estou a aprender, não tenho a culpa de ser burro e ter começado logo por fazer um cms!

Ok, como é que eu defino no SQL que o user_id da tabela links, está relacionado com o id da tabela user?
Offline

goodsound 
Membro
Mensagens 2485 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3

Exit, não te esqueças dos campos das tabelas.
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Como por texto é mais difícil explicar vou deixar aqui um link para veres já com tabelas feitas (chaves estrangeiras):
http://www.1keydata.com/sql/sql-foreign-key.html

Existe muitas formas de o fazer, mas por exemplo nesse para obter as encomendas com valor superior a 100 do cliente manuel seria:
Código: [Seleccione]
SELECT order_id, order_date from orders natural join customer where First_Name = 'Manuel' AND Amount > 100
Sem a chave estrangeira, isto deve funcionar de modo semelhante:
Código: [Seleccione]
SELECT s1.order_id, s1.order_date from orders as s1, custumer as s2 where s2.First_Name = 'Manuel' AND s1.Amount > 100 AND s1.Customer_SID = s2.SID
Dificil explicar sem saber bem o que pretendes.
Offline

Nuno 
Administrador
Mensagens 7780 Gostos 216
Feedback +2

Troféus totais: 42
Trófeus: (Ver todos)
100 Poll Votes Level 7 Search Mobile User Level 6 Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Consegui resolver era mais fácil do que eu pensava!

Bastou-me verificar a sessão do utilizador para aceder a essa página e inserir os id do utilizador num campo da tabela links, simples!
Offline

narg 
Membro
Mensagens 265 Gostos 0
Feedback +2

Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Sim dessa forma fica com o id do cliente na tabela desnecessáriamente !! vê se nao era isto que querias

http://pt2.php.net/mysql_insert_id

mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());

e depois metias esse id numa sessão
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Sim dessa forma fica com o id do cliente na tabela desnecessáriamente !! vê se nao era isto que querias

http://pt2.php.net/mysql_insert_id

mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());

e depois metias esse id numa sessão
Ou estou totalmente errado do que ele quer fazer, ou isso não faz sentido nenhum.