Is_resource()

Signaler
Messages postés
46
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
13 septembre 2010
-
Messages postés
46
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
13 septembre 2010
-
bonjour,

quelqu'un peut il m'expliquer succintement l'usage de is_resource(), je
sais que cela peut être utilisé pour tester si une connection est
valide, mais peut on s'en servir également pour tester une requête.

D'autre part est ce que "delete" permet de seulement une ligne
compléte, ou seulement certains champs, et une requête "delete" permet
elle de supprimer des lignes dans plusieurs tables à la fois ou
seulement une.

Merci

6 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
is_resource te permet de savoir si une variable est ujne ressource ou non.
Typiquement, sur php.net, quand tu regardes une fonction, tu vois ce qu'elle retourne :
resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] )

par exemple.

donc $link = mysql_connect (...);

if (is_resource ($link)) { // code si c'estr une ressource}

DELETE : je te renvoie à la doc mysql :
http://dev.mysql.com/doc/refman/5.0/en/delete.html

Tu ne peux pas effacer un champ, mais tu peux effacer plusieurs lignes, oui, et sur plusieurs tables aussi, en même temps.
Messages postés
46
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
13 septembre 2010

je te remercie de tes explications, mais pour delete en fait mon problème est le suivant,

je fais" delete quick requetes, projets, assoc_tb_req [c'est le nom des tables]

where .................

le problème vient de la condition je supprime les lignes dans les
tables si elle correspondent aux données extraites des trois tables
ci-dessus et affichées dans un journal au moyen d'une requête select,
le tableau affiche en même temps en face de chaque ligne un bouton
supprimer et un bouton modifier(avec une form, un bouton submit et
method post, et tout cela est effectué dans une page précédente ) je ne
sais donc pas récupérer ma variable post qui me sert à ma conditions
where de ma requete delete,

cette variable post est elle une chaine ou bien chaque élément de ma ligne du tableau est elle une variable post en elle même ?

c'est assez difficile a expliquer, je ne suis pas sur de m'être fait comprendre ???
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Une clause where se fait sur un ou plusieurs champs. Je ne pige pas ton problème...
Imaginons que je veux trouver la fonction de qqu'un en fonction de son id dans ma bdd.
J'ai un formulaire listant tous les noms des gens dans ma bdd du genre :

<select name="user">
<?php
mysql_connect (...);
$sQuery = 'SELECT user_nom, user_prenom, user_id FROM users';
$rRequete = mysql_query ($sQuery);
mysql_close ();
while ($res ) mysql_fetch_assoc ($rRequete)) {
echo '<option value="',$res['user_id'],'">',$res['user_nom'], ' ', $res['user_prenom'],'</option>';
}
?>
</select>

Dans ma page de récupération, je récupère cet id dans $_POST['user']
Je veux l'effacer tien, plutôt que de récupérer sa fonction. Dans ma page, ma requête sera :$sQuery 'DELETE FROM users WHERE user_id '.$_POST['user'];

Si je veux l'effacer de 2 tables, users et...lnk_fonctions_users :$sQuery 'DELETE FROM users usr, lnk_fonctions_users lnkfctusr WHERE usr.user_id lnkfctusr.user_id AND usr.user_id ='.$_POST['user'];
Messages postés
46
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
13 septembre 2010

je vais essayer de comprendre ce que tu m'expliques :

1) première question : je croyais qu'il fallait transformer la
variable$_Post, en variable $_Session, pour la passer de page en page
......

2) si ce n'est pas trop demander : voila les bouts de code :



page 1 :

$conn_journ =
faitConnect($_SESSION['server'],$_SESSION['user'],$_SESSION['pw'],selectys,$erreur[5][$_SESSION['lg']],$erreur[0][$_SESSION['lg']]);


if(is_resource($conn_journ)){

$result = mysql_query($query,$conn_journ);



if (mysql_num_rows($result) > 0)

{

echo '';

echo '----
<caption> JOURNAL DES REQUETES </caption>';

echo '----
Texte, Nbre de Boucles, Nbre de Résultats, Temps d\'éxécution, Date, Nom de la Base, Nom du projet, N° de ligne, Adresse du projet, MODIFIER, SUPPRIMER, ';

//affichage du tableau

//

while ($row = mysql_fetch_row($result))

{

echo '----
';

echo '' . $row[0] . ', ';

echo '' . $row[1] . ', ';

echo '' . $row[2] . ', ';

echo '' . $row[3] . ', ';

echo '' . $row[4] . ', ';

echo '' . $row[5] . ', ';

echo '' . $row[6] . ', ';

echo '' . $row[7] . ', ';

echo '' . $row[8] . ', ';

// affichage des bouton M-modifier et S-supprimer dans chaque ligne du tableau

//

echo '' .
$row[9] . '<form name="modifier" method="post"
action="trait_modif.php"></form>'.', ';

echo '' .
$row[10] . '<form name="supprimer" method="post"
action="trait_suppr.php"></form>'.', ';

}

echo '
';



et voilà la page deux qui se nomme trait_suppr.php :



if(!empty($_POST['supprimer']) && $_POST['supprimer'] == 'S'){

$supprim =
faitConnect($_SESSION['server'],$_SESSION['user'],$_SESSION['pw'],selectys,$erreur[5][$_SESSION['lg']],$erreur[0][$_SESSION['lg']]);


if(is_resource($supprim)){

$_SESSION['supprimer'] = $_POST['supprimer'];

// requête de suppresion



$query =

"DELETE quick from requetes,projets,assoc_tb_req

//where ...................= $_SESSION[' ']";



$requete = mysql_query ("$query",$supprim);



je ne suis pas sur que ça va être possible comme ça, peux tu me dire ce que tu en penses ?

Merci
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Mais là, tu ne mets rien dans ton formulaire...t'as juste un submit, dans chacun des formulaires.
Tu récupères rien de ta liste ? Comment tu sais où tu es ?

C'est compliqué ton bin's, lol, pour pas gd chose...
Bon heu...si tu gardes ton bin's là, tu dois ajouter un input hidden, avec l'id de la référence à supprimer ou à modifier, dans tes formulaires.
Et là tu l'as dans ton post.

Les sessions, tu n'as à les utiliser QUE SI tu veux garder les valeurs sur plein de pages, pas uniquement sur les pages vers lesquelles sont redirigés les traitements de tes formulaires (les pages qu'il y a dans ton action="...").
Messages postés
46
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
13 septembre 2010

ok, je refléchis à ça,

mais je sais bienque c'est un truc pas possible, mais le projet que je
dois rendre est fait à partir d'un cahier des charges qui m'impose de
faire comme ça, ensuite je devrais recommencer en utilisant des classes
(ce sera un autre sport.............)

Merci encore, et il n'est pas dit que je n'aurais pas d'autres questions à poser.