Script php

Fermé
Warrius78 Messages postés 4 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 9 mai 2009 - 6 févr. 2009 à 22:45
Revan26914 Messages postés 1778 Date d'inscription dimanche 14 octobre 2007 Statut Contributeur Dernière intervention 15 octobre 2019 - 8 févr. 2009 à 20:43
Bonjour,

Voila je vous explique mon problème :

Etant novice en php (et donc en ne connaissant pas parfaitement le vocabulaire php), mais ayant la volonté, je me suis lancé dans la création d'un script php. Le script que je veux faire consiste à, lorsque la personne remplit un formulaire, insérer les données récoltées dans une table mysql. Pour cela je n'ai pas trop de problème il y a la fonction INSERT INTO `table` etc. Mon problème (que je vais essayer d'exprimer le plus clairement possible) est que l'une des données du formulaire que la personne entre ne peux pas directement être insérée dans la table, mais qu'elle doit être cherchée dans une autre table de la bbd. Pour cela il y a la fonction INSERT INTO ... SELECT mais je ne sais pas comment rajouter directement les autres données prises du formulaire ...

Pour résumer :
- mes tables concernées : 'char' et 'inventory'
- mon formulaire récolte les données 'name' et 'id'
- je veux insérer les données 'char_id' et 'id' dans la table 'inventory' (d'autres aussi mais pas utile ici). Le problème : la donnée 'char_id' est présente dans la table 'char' où il y a le 'name' du formulaire.

--> Je voudrait que les données 'char_id' et 'id' soient implantées dans la table 'inventory', et la seul chose que j'arrive à faire c'est soit de mettre seulement le 'char_id' soit de mettre le -id'

Quelqu'un pourrait me dire comment mettre les deux données en même temps SVP ?


Merci d'avance.
A voir également:

3 réponses

Revan26914 Messages postés 1778 Date d'inscription dimanche 14 octobre 2007 Statut Contributeur Dernière intervention 15 octobre 2019 320
6 févr. 2009 à 22:59
Bonsoir,

Je ne vois pas trop ce que tu veux faire. Tu veux mettre char_id et id dans le même champs de la table inventory ?

Tu arriverais à nous mettre ton code stp ?




Cordialement

Revan
0
Utilisateur anonyme
7 févr. 2009 à 01:08
essaye de faire :

$req="insert into char (name) values ('".$_POST["name"]."');
mysql_query($req,$link_bdd);
$char_id = mysql_insert_id($link_bdd);

$req="insert into inventory (char_id, id) values (".$char_id.",".$_POST["id"].")";
mysql_query($req,$link_bdd);

Bien sur tu verifie les data de $_POST["name"] et $_POST["id"]

@+
0
Warrius78 Messages postés 4 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 9 mai 2009
7 févr. 2009 à 19:10
Re,

Je vais essayer d'être un peu plus précis sur mon problème, je n'avais pas trop le temps d'approfondir hier...

En fait je dispose des table 'char' et 'inventory'. Dans la table 'char' il y a deux colonnes qui m'intéressent : 'char_id' et 'name'. Dans la table 'inventory' il y a aussi deux colonnes qui m'intéressent : 'char_id' et 'id'.
Le 'char_id' est le même dans les deux tables.

J'ai fait mon formulaire qui recueillit les données 'name' et 'id'. Le problème est que le dans ma table 'inventory' j'ai besoin de 'char_id' et pas de 'name'. C'est pour cela que je fais une requête pour aller le chercher dans la table 'char' et de le mettre dans la table 'inventory'

Cela donne : INSERT INTO `inventory` (`char_id`) SELECT `char_id` FROM `char` WHERE `name` = '$name'
Avec $name = ($_POST['name'])

Mais je voudrais en même temps que cette requête, que celle-ci se fasse :
INSERT INTO `inventory` ( `id` ) VALUES ( '$id' )
Avec $id = ($_POST['id'])

En gros je voudrais que cela se fasse une requête de ce genre (syntaxe totalement fausse) :
INSERT INTO `inventory` ( `char_id`, `id` ) VALUES ( 'SELECT `char_id` FROM `char` WHERE `name` = '$name' ', '$id' )

Voila j'espère que cela est plus clair je vous met mon script (qui ne marche pas totalement comme je voudrais)

<?php $root = "****"; $login = "****"; $pass="****";
$db="****";
if(isset($_POST['name']) && isset($_POST['id'])) {

$mysql = mysql_connect( $root, $login, $pass ) or die( "Impossible de se connecter au serveur MySQL [1]" );
mysql_select_db( $db, $mysql) or die( "Impossible de se connecter au serveur MySQL [2]" );

$name = ($_POST['name']);
$resultname = mysql_query("SELECT `char_id` FROM `char` WHERE `name` = '$name'", $mysql);
if ( !mysql_num_rows($resultname) ) die ('<center>Ce pseudo n\'existe pas.</center>');

$id = ($_POST['id']);

$query = INSERT INTO `inventory` ( `char_id`, `id` ) VALUES ( 'SELECT `char_id` FROM `char` WHERE `name` = '$name' ', '$id' )

$result = mysql_query($query, $mysql) or die ("<center>Erreur dans la syntaxe</center>");
if ($result) die("<center>Votre item a bien été implanté.</center>");
}
?>
<style type="text/css">
<!--
body {
}
-->
</style>
<center>
<table style="width: 495px; height: 143px;" border="0"
cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<form id="account" action="" method="post">
<table>
<tbody>
<tr>
<td class="news" align="right"><small><small>Votre
pseudo:</small></small></td>
<td align="left"><input name="name"
maxlength="23" size="23" type="text"></td>
</tr>
<tr>
<td class="news" align="right"><small><small>Id
de l'item désiré:</small></small></td>
<td align="left"><input name="id"
maxlength="23" size="23" type="text"></td>
</tr>
<tr>
<td> </td>
<td><input name="create" value="Ok"
type="submit"></td>
</tr>
</tbody>
</table>
</form>
</td>
</tr>
</tbody>
</table>
</center>

Voila j'espère avoir été un peu plus précis, je vous remercie pour votre aide.
0
Revan26914 Messages postés 1778 Date d'inscription dimanche 14 octobre 2007 Statut Contributeur Dernière intervention 15 octobre 2019 320
8 févr. 2009 à 20:21
Tu peux utiliser deux requêtes.

Dans la première tu récupères le char_id de la table char et tu l'enregistres dans une variable $char_id.

Dans la deuxième tu insères la variable $char_id et le $_POST['id'] dans la table inventory.


Et au passage, tu devrais protéger les $_POST que tu récupères:

$name = mysql_real_escape_string($_POST['name']); 
$id = intval($_POST['id']);


0
Warrius78 Messages postés 4 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 9 mai 2009 > Revan26914 Messages postés 1778 Date d'inscription dimanche 14 octobre 2007 Statut Contributeur Dernière intervention 15 octobre 2019
8 févr. 2009 à 20:34
Merci beaucoup de ton aide je vais tout de suite m'y mettre.
0
Revan26914 Messages postés 1778 Date d'inscription dimanche 14 octobre 2007 Statut Contributeur Dernière intervention 15 octobre 2019 320 > Warrius78 Messages postés 4 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 9 mai 2009
8 févr. 2009 à 20:43
De rien ^^

Tiens moi au courant ;-)

0