I have two problems here:
1. I have a problem with the value of the checkbox
2. I have a problem with the mysql_fetch_array($variable, ASSOC); method –> all the data from my database are VARCHAR type
1. All the variable with, at the end ‘Cb’, signified that this value is from a checkbox of a FORM. If a checkbox is checked, it means that the row (ex: Username) will be in the Select method for my Database (ex: SELECT Username FROM…)
I receive this Error
1. Undefined index: fonctionCb in C:\wamp\www\Projet Compte Utilisateur\manip_liste.php on line 7
2. Undefined variable: tab in C:\wamp\www\Projet Compte Utilisateur\manip_liste.php on line 14
…etc from all the checkbox if they are not checked .. here is my PHP code
<?php
$prep = "";
if(!$_POST['username'])
echo 'Nom d\'utilisateur manquant';
if(($_POST["userCb"]) && ($_POST["suffixeCb"]) && ($_POST["fonctionCb"]) && ($_POST["passwordCb"])){
$prep = " * ";
$tab = "User SUFFIXE SITE FONCTION PASSWD";
}
else{
if($_POST["userCb"]){
$prep += "username ,";
$tab += "USER ";
}
if($_POST["suffixeCb"]){
$prep += "suffixe ,";
$tab += "SUFFIXE ";
}
if($_POST["passwordCb"]){
$prep += "password ,";
$tab += "PASSWD ";
}
if($_POST["siteCb"]){
$prep += "siteWeb ,";
$tab += "SITE ";
}
if($_POST["fonctionCb"]){
$prep += "fonction ";
$tab += "Fx ";
}
}//ELSE
require("db_action.php"); //Require in the database connection.
$bd = db_open();
$data = db_select($prep, $_POST["username"]); //Envoie des variables à afficher et du Username pour le SELECT
echo "'$tab'";
echo "'$data'"; ?>
2. The second ERROR
and also I got this error from the fetch_array method
Error: Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:\wamp\www\Projet Compte Utilisateur\db_action.php on line 68
Here is the code from my method
function db_select($prep, $username){
$querycon = "SELECT '$prep' FROM info_compte WHERE username = '$username'";
if(!mysql_query($querycon)){
echo "Il n\'y a aucun '$username' dans la base de données";
$response = "";
}
else{
while ($row = mysql_fetch_array(mysql_query($querycon), MYSQL_ASSOC))
printf("%s %s %s %s %s", $row["username"], $row["suffixe"], $row["password"], $row["siteWeb"], $row["fonction"]); //The PRINTF dont work
}
return $response;
}//db_select
Thank you all to answer and i specify that i’m a beginner in practice who wants to learn ..
For part 1, one problem is that you may have a trailing comma on the end of $prep depending on what columns you end up selecting. To solve this try the below code (note I’ve added backticks around your column names, it’s good practice but not required). The
isset()function checks if a variable actually exists. Currently you are trying to access variables that may not exist, hence the errors.For your part 2 error, you have to assign the return of the
mysql_queryinto a variable and pass that tomysql_fetch_array. You don’t just pass it the query string. Try this:UPDATE:
Note as well as the large addition for part 1, I’ve removed the single quotes around $prep in you SQL statement in part 2.
Read up on
isset()but also, you can consider usingarray_key_exists(). I’m not sure on the relative performance comparison of the two.