IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Requete dans plusieurs tables a partir d'une variable


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Requete dans plusieurs tables a partir d'une variable
    Bonjour à tous,

    Nous devons effectuer une requete SQL simultanément dans plusieurs tables contenant une recherche dans le meme critère (colonne). Cette recherche s'effectue à partir d'une variable "colname" ( via form).

    Le FROM table1, table2 ou REQUEST UNION ... fonctionnent mais avons un soucis de code au niveau du WHERE qui ne fonctionne que pour 1 seule table .. la dernière encodée dans le code.

    Ce qui nous manque donc .. c'est la partie (??????) ci-dessous : Nous n'arrivons pas à faire comprendre à la demande d'effectuer un WHERE sur un critère = variable "colname" POUR TOUTES LES TABLES.
    $query_r = sprintf("SELECT * FROM test, test2 WHERE (???????) = %s ORDER BY t1 ASC", GetSQLValueString($colname_r, "text"));


    Merci à tous ceux qui pourraient nous éclairer ...

    Bav à tous
    The Fx's Age

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Pourrais tu donner un peu plus de précisions... détailler ton problème

    Tes tables sont identiques ?

    Pourrais tu donner ta requête sur une table?

    Décris ce que tu souhaites obtenir..

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Cher bacchus41,

    Merci pour ta réponse rapide.
    Nous avons entretemps résolu notre soucis avec code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query_r = sprintf("SELECT * FROM test WHERE t1 LIKE %s UNION SELECT * FROM test2 WHERE t1 LIKE %s UNION SELECT * FROM test3 WHERE t1 LIKE %s ORDER BY t1 ASC", GetSQLValueString($colname_r, "text"),GetSQLValueString($colname_r, "text"),GetSQLValueString($colname_r, "text"));
    Il fallait effectuer un request sur plusieurs tables mais placions mal nos "UNION" !

    cependant, nous devons encore résoudre un problème :
    ( tout notre code est ci-dessous)
    Les mots encodés dans la variable "colname" (ou search) de notre FORM doivent pouvoir etre reconnus séparément (fonction : explode). (genre moteur)
    Nous ne savons pas comment insérer cette fonction dans notre code sans boulverser tout.

    D'avance merci pour l'aide éventuelle ...

    Bat
    Marc


    _________________________________
    notre code actuel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <?php require_once('../Connections/x7562.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
     
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
     
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    }
     
    $colname_r = "-1";
    if (isset($_POST['search'])) {
      $colname_r = (get_magic_quotes_gpc()) ? $_POST['search'] : addslashes($_POST['search']);
    }
    mysql_select_db($database_x7562, $x7562);
    $query_r = sprintf("SELECT * FROM test WHERE t1 LIKE %s UNION SELECT * FROM test2 WHERE t1 LIKE %s UNION SELECT * FROM test3 WHERE t1 LIKE %s ORDER BY t1 ASC", GetSQLValueString($colname_r, "text"),GetSQLValueString($colname_r, "text"),GetSQLValueString($colname_r, "text"));
    $r = mysql_query($query_r, $x7562) or die(mysql_error());
    $row_r = mysql_fetch_assoc($r);
    $totalRows_r = mysql_num_rows($r);
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
     
    <body>
    <form id="form1" name="form1" method="post" action="az.php">
      <table width="609" border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td width="298"><label>
            <input name="search" type="text" id="search" size="30" />
          </label></td>
          <td width="311"><label>
            <input type="submit" name="Submit" value="Submit" />
          </label></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </table>
    </form>
    <?php do { ?>
      <table width="478" border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td><?php echo $row_r['id']; ?></td>
          <td><?php echo $row_r['t1']; ?></td>
          <td><?php echo $row_r['t2']; ?></td>
          <td><?php echo $row_r['t3']; ?></td>
          <td><?php echo $row_r['t4']; ?></td>
        </tr>
      </table>
      <?php } while ($row_r = mysql_fetch_assoc($r)); ?></body>
    </html>
    <?php
    mysql_free_result($r);
    ?>

Discussions similaires

  1. Aide pour requete dans plusieurs table
    Par rip2k dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/05/2012, 16h13
  2. Réponses: 21
    Dernier message: 11/04/2012, 09h32
  3. Requete dans plusieurs tables a partir d'1 variable (SQL-PHP)
    Par thefxage dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 06/04/2009, 09h01
  4. Réponses: 6
    Dernier message: 05/02/2008, 15h46
  5. Réponses: 4
    Dernier message: 08/06/2006, 20h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo