我一直在处理我网站的数据库,最近遇到了这个问题: 我希望用户在提交同一行的另一个字段时读取一行的字段。 即:
user_id=1 user_name=Fran user_pass=Potato referedby_id=0 referedby_name=empty
When going inside www.website.com/form.php?referedby_id=1
I want the user to see "So, Fran refered you?"
我一直在学习 php,我决定尝试一下:
$referedbyid = mysqli_real_escape_string($con,$_POST["referedby_id"]); //In this case it's 1 because of the url
$sel_referedbyname = "select user_name from users where user_id='$referedbyid'"; //Then this should be the select of the user_name "Fran"
$run_referedbyname = mysqli_query($con, $sel_referedbyname); //Then a query for that select
$check_referedbyname = mysqli_fetch_field($run_referedbyname); //And this one the content of the query's result
$refername = $check_refername->user_name; //As the query result is an object I want to convert it to text
if(isset($_POST["register"]) && $check_user == 0 && $check_email == 0 && $pass == $pass2){ //If everything is right and the user/email does not already exist
mysqli_query($con,"INSERT INTO users (user_name, user_email, user_pass, refer_id, refer_name) VALUES ('$user', '$email', '$pass', '$referid', '$refername')"); //It's submitted to the database with the other values.
mysqli_close($con); //And we finish the connection with the db.
问题是,当我尝试执行此操作并检查数据库时,referedby_name 字段为空。是语法错误吗?或者这是因为它没有正确转换为文本?
如果 $referedbyname 不是文本,如何正确转换它?这是因为我使用了 fetch_field 函数错误吗?
其他信息: $referedbyid 正在使用此 html 以 POST 形式正确调用(我认为)
<form action="register.php" method="post" onsubmit="validate();">
<table width="500" align="center" bgcolor="skyblue">
<tr align="center">
<td colspan="3"><h2>Registrarse</h2></td>
</tr>
<tr>
<td align="right"><b>Nombre de usuario:</b></td>
<td><input type="text" name="user" required="required"/></td>
</tr>
<tr>
<td align="right"><b>Email:</b></td>
<td><input type="email" name="email" required="required"/></td>
</tr>
<tr>
<tr>
<td align="right"><b>Contraseña:</b></td>
<td><input type="password" id="pass" name="pass" required="required"/></td>
</tr>
<tr>
<td align="right"><b>Verificar contraseña:</b></td>
<td><input type="password" id="pass2" name="pass2" required="required"/></td>
</tr>
<tr align="center">
<td colspan="3">
<input type="hidden" name="referedby_id" value="<?php echo $_GET["referedby_id"]; ?>"/>
<input type="submit" name="register" value="Registrarse"/></td>
</tr>
</table>
</form>
最佳答案
我不知道为什么投反对票,我试图尽可能清晰和具体......
无论如何,如果其他人在查找特定字段的值时遇到任何问题,只需使用mysqli_fetch_assoc(mysqli_query($conect, $select))['name of the sql field']
mysqli_fetch_field($result)
只会显示有关字段的信息,例如输入类型、表名称、列名称等。
希望这对遇到同样问题的人有用。再见。
关于php - 如何使用 PHP 获取 MySQL 字段的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30564038/