Script php
Warrius78
Messages postés
5
Statut
Membre
-
Revan26914 Messages postés 1821 Statut Contributeur -
Revan26914 Messages postés 1821 Statut Contributeur -
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.
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:
- Script php
- Script vidéo youtube - Guide
- Easy php - Télécharger - Divers Web & Internet
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
- Expert php pinterest - Télécharger - Langages
3 réponses
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
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
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"]
@+
$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"]
@+
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.
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.
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:
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']);