Aide Requete SQL (pourtant Simple, je pense.)

Fermé
Bleadd - 28 oct. 2011 à 17:08
MastercroW Messages postés 1094 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 - 29 oct. 2011 à 14:24
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 263 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 8 mai 2020 33
28 oct. 2011 à 21:52
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
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
Up...
0
MastercroW Messages postés 1094 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
29 oct. 2011 à 12:41
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
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 1094 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
29 oct. 2011 à 13:37
$count= $row['count'];

Voila ton count !
0
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 1094 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
29 oct. 2011 à 13:56
if ($count = 0) { >> if ($count == 0) {
0
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 1094 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
29 oct. 2011 à 14:24
Ben écoute tu peux m'envoyer ton email par MP, comme ça on résous ça.
0