Aide Requete SQL (pourtant Simple, je pense.)

Bleadd -  
MastercroW Messages postés 1259 Statut Membre -
Bonjour,
J'ai un script PHP qui permet d'ajouter une ligne dans une base de données. (un id d'objet) Jusque la tout va bien.

Le seul probleme c'est que si le personnage a deja un objet de ce type sur lui, je ne peut pas rajouter d'autres objets de ce type.
Il faut donc rajouter une condition ..

If count != 0 faire Update ..... Mais je n'y arrive pas :S


Voila le code :


<form action="" method="POST">
<table>
<tr><td>Character Name:</td><td><input type="text" name="name"></td></tr>
<tr><td><input type="submit" value="Insert" name="submit"></td></tr>
</table>
</form>

<?php

$name = $_POST['name'];

$submit = $_POST['submit'];

if ($submit) {

include ('connect.php');



if ($name) {

$row = mysql_fetch_assoc(mysql_query("SELECT * FROM characters WHERE char_name='".$name."'"));
$obj_id = $row[obj_Id];

mysql_query("INSERT INTO 'items' ('owner_id', 'object_id', 'item_id', 'count', 'enchant_level', 'loc', 'loc_data', 'price_sell', 'price_buy', 'time_of_use', 'custom_type1', 'custom_type2', 'mana_left') VALUES
(".$obj_id.", 0, 4037, 1, 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, '-1');");
echo "<b>Your Item Has Been Inserted.</b>";

}
else {
echo "<b>Failed.</b>";
}



}

?>

}

}


Si quelqu'un y arrive..
Cordialement,
Bleadd


A voir également:

10 réponses

.Zoro. Messages postés 285 Statut Membre 33
 
fait plusieurs requetes ...


si une demande est envoyée :

- d'abord une requete pour savoir si un objet de ce type est déja porté.

puis une condition en php

si pas d'objet de ce type :

- requete pour insere l'objet

sinon -> si deja un objet de ce type :

- requete pour modifier l'objet
0
Bleadd
 
Merci pour la réponse
Oui mais je sais pas les écrire, c'est ca le soucis..
Je sais faire que des requetes de base, mais faire des requetes avec des variables, genre recuperer le nombre contenu dans le n-uplets "count" lui rajouter 3, et faire une condition avec ce nombre, je sais pas faire :S
0
Bleadd
 
Up...
0
MastercroW Messages postés 1259 Statut Membre 163
 
Hello,

Moi je trouve ça assez simple. As-tu essayé de relier ton problème à une autre page que tu as faites ? Par exemple comme une page d'inscription, ou le pseudo ne doit pas être égal à celui qui existe déjà en base de donnée. Par exemple je dis bien.

Mais je ne connais pas bien ta base de donnée pour que je t'aide, peux tu m'expliquer en français ce que sa donne (avec les noms des colonnes).

Sinon, si tu veux te débrouiller tout seul il faut que tu fasse un if avant ta mysql_query, et si c'est OK, else fera exécuter ta requête.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bleadd
 
En gros j'ai une data avec obj_id (qui correspond a l'id du player), itemid (l'id de l'objet) et count (qui represente le nombre de l'item).

Mais mon probleme c'est que je sais pas recuperer le nombre qu'il y a dans count.. Pour en faire une condition...
0
MastercroW Messages postés 1259 Statut Membre 163
 
$count= $row['count'];

Voila ton count !
0
Bleadd
 
if ($submit) {

include ('connect.php');

//hardcoding Kill Me

if ($name) {

$row = mysql_fetch_assoc(mysql_query("SELECT * FROM characters WHERE char_name='".$name."'"));
$obj_id = $row['obj_Id'];
$row2 = mysql_fetch_assoc(mysql_query("SELECT * FROM items WHERE obj_id='".$obj_id."'"));
$count= $row2['count'];
if ($count = 0) {

mysql_query("INSERT INTO 'items' ('owner_id', 'object_id', 'item_id', 'count', 'enchant_level', 'loc', 'loc_data', 'price_sell', 'price_buy', 'time_of_use', 'custom_type1', 'custom_type2', 'mana_left') VALUES
(".$obj_id.", 0, 4037, 1, 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, '-1');");
echo "<b>Your Item Has Been Inserted.</b>";
}
else
{
$count = $count + 3;
mysql_query("UPDATE 'frozen'.'items' SET 'count' = '".$count."' WHERE 'items'.'obj_id' =".$obj_id.";");
echo "<b>Your Item Has Been Inserted.</b>";
}
else {
echo "<b>This item does not exist.</b>";
}

}

}

?>

Mais marche pas..
0
MastercroW Messages postés 1259 Statut Membre 163
 
if ($count = 0) { >> if ($count == 0) {
0
Bleadd
 
if ($name) {

$row = mysql_fetch_assoc(mysql_query("SELECT * FROM characters WHERE char_name='".$name."'"));
$obj_id = $row['owner_id'];
$row2 = mysql_fetch_assoc(mysql_query("SELECT * FROM items WHERE owner_id='".$obj_id."'"));
$count= $row2['count'];
if ($count == 0) {

mysql_query("INSERT INTO 'items' ('owner_id', 'object_id', 'item_id', 'count', 'enchant_level', 'loc', 'loc_data', 'price_sell', 'price_buy', 'time_of_use', 'custom_type1', 'custom_type2', 'mana_left') VALUES
(".$obj_id.", 0, 4037, 3, 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, '-1');");
echo "<b>Your Item Has Been Inserted.</b>";
}
else
{
$count = $count + 3;
mysql_query("UPDATE  'frozen'.'items' SET  'count' =  '".$count."' WHERE  'items'.'obj_id' =".$obj_id.";");
echo "<b>Your Item Has Been Inserted.</b>";
}
else {
echo "<b>This item does not exist.</b>";
}

}

}


Ca ne marche pas
0
MastercroW Messages postés 1259 Statut Membre 163
 
Ben écoute tu peux m'envoyer ton email par MP, comme ça on résous ça.
0