Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: non funziona la query

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    non funziona la query

    ciao,
    ho scritto una query dove vorrei che la tecnica veda solo le comunicazioni che l'admin ha scritto solo a lei e quelle che l'admin ha scritto ha scritto a tutte le tecniche.

    Ho fatto così ma mi duplica la stessa comunicazione tante volte quante sono le tecniche nella tabella tecniche.
    (comunicazioni.id_tecniche = 0 significa visibile a TUTTE le tecniche)

    Codice PHP:
    <?
    $query
    ="SELECT comunicazioni.*, a_tecniche.*,
    DATE_FORMAT(comunicazioni.data_ins_comunicazione, '%d-%m-%Y') AS data_ins_comunicazione
    FROM comunicazioni, a_tecniche
    WHERE comunicazioni.id_tecniche = 
    $_SESSION[idtecniche]
    OR comunicazioni.id_tecniche = 0
    ORDER BY comunicazioni.data_ins_comunicazione DESC, comunicazioni.ora_ins_comunicazione DESC"

    $ris_query=mysql_query($query$conn);
    while(
    $row=mysql_fetch_array($ris_query)){?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    up

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    up

  4. #4
    Non so se ho capito bene il tuo problema... se consiste nell'estrazione di record doppi riscrivi la query così:

    Codice PHP:
    <?
    $query
    ="SELECT [B]DISTINCT[/B] comunicazioni.*, a_tecniche.*,
    DATE_FORMAT(comunicazioni.data_ins_comunicazione, '%d-%m-%Y') AS data_ins_comunicazione
    FROM comunicazioni, a_tecniche
    WHERE comunicazioni.id_tecniche = 
    $_SESSION[idtecniche]
    OR comunicazioni.id_tecniche = 0
    ORDER BY comunicazioni.data_ins_comunicazione DESC, comunicazioni.ora_ins_comunicazione DESC"
    ;
    $ris_query=mysql_query($query$conn);
    while(
    $row=mysql_fetch_array($ris_query)){?>
    Disegnatori e romanzieri d'Italia, visitate il mio sito, cerchiamo favolieri dark ed illustratori dark fantasy... http://www.neilgaimania.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    grazie della risposta, ma non'è cambiato niente.

    la tabella delle comunicazioni è così:
    id_comunicazioni
    id_agenti
    id_operatori
    id_tecniche
    testo_comunicazione
    data_ins_comunicazione
    ora_ins_comunicazione
    quello che succede ora è che quando l'admin scrive un avviso e poi lo vuole comunicare a tutte le tecniche e non solo ad una di loro, seleziona TUTTE dalla select e quando clicca su invio nel campo id_tecniche viene popolato con il numero 0

    nella pagina della tecnica ho fatto in modo che possa visualizzare solo gli avvisi che la riguardano e quelli rivolti a tutte le tecniche, così ho scritto questa query:

    Codice PHP:
    <?
        $query
    ="SELECT comunicazioni.*, a_tecniche.*, DATE_FORMAT(comunicazioni.data_ins_comunicazione, '%d-%m-%Y')AS data_ins_comunicazione
                FROM comunicazioni, a_tecniche
                WHERE comunicazioni.id_tecniche = 
    $_SESSION[idtecniche] AND comunicazioni.id_tecniche = a_tecniche.id_tecniche OR comunicazioni.id_tecniche = 0  ORDER BY comunicazioni.data_ins_comunicazione DESC, comunicazioni.ora_ins_comunicazione DESC"
        
    $ris_query=mysql_query($query$conn);
    while(
    $row=mysql_fetch_array($ris_query)){?>
    le comunicazioni personali me le visualizza correttamente, ma quelle per tutti me le visualizza 8 volte ripetute e non una volta sola.

  6. #6
    posta anche il resto del codice?

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    questa è la pagina della tecnica:

    Codice PHP:
    <table width="650" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td width="275" height="34"><span class="testo_rosso_bold">destinatario comunicazione</span></td>
        <td width="100"></td>
        <td width="143"><span class="testo_rosso_bold">data inserimento</span></td>
          <td width="132" align="right"><span class="testo_rosso_bold">ora inserimento</span></td>
         </tr>
          <tr>
        <td height="1" colspan="4" valign="top" bgcolor="BE743F"></td>
        </tr>
    <?
        $query
    ="SELECT comunicazioni.*, a_tecniche.*, DATE_FORMAT(comunicazioni.data_ins_comunicazione, '%d-%m-%Y')AS data_ins_comunicazione
                FROM comunicazioni, a_tecniche
                WHERE comunicazioni.id_tecniche = 
    $_SESSION[idtecniche] AND comunicazioni.id_tecniche = a_tecniche.id_tecniche OR comunicazioni.id_tecniche = 0  ORDER BY comunicazioni.data_ins_comunicazione DESC, comunicazioni.ora_ins_comunicazione DESC"
        
    $ris_query=mysql_query($query$conn);
    if (
    mysql_num_rows($ris_query) == 0){?>
    <tr>
        <td height="41"><span class="testo_grigio_bold">[img]../images/menu_triangolo.gif[/img]
    <?
    $query11 
    "SELECT * FROM a_tecniche where id_tecniche=$_SESSION[idtecniche] ";
        
    $sql11 mysql_query($query11$conn);
        
    $row11 mysql_fetch_array($sql11);
    ?>
    <?
    echo "{$row11['cognome_tecnica']}";
    ?>
    </span></td>
        <td></td>
        <td><span class="testo_grigio_bold"> </span></td>
          <td align="right"><span class="testo_grigio_bold"> </span></td>
         </tr>
          <tr>
        <td height="1" colspan="4" valign="top" bgcolor="BE743F"></td>
        </tr>
        <tr>
        <td height="82" colspan="4">

    <table width="650" border="0" cellpadding="0" cellspacing="0">
        <tr>
        <td width="113" height="82"><span class="testo_grigio_bold">comunicazione</span></td>
        <td width="537" align="right"><span class="testo_grigio_bold">al momento non ci sono comunicazioni per te</span></td>
        </tr>
    </table>

    </td>
        </tr>
    <tr>
        <td height="1" colspan="4" valign="top" bgcolor="BE743F"></td>
        </tr>
    <? } else {
        while(
    $row=mysql_fetch_array($ris_query)){?>
    <tr>
        <td height="41"><span class="testo_grigio_bold">[img]../images/menu_triangolo.gif[/img]
    <?=$row['cognome_tecnica']?>
    </span></td>
        <td></td>
        <td><span class="testo_grigio_bold"><?=$row['data_ins_comunicazione']?></span></td>
          <td align="right"><span class="testo_grigio_bold"><?=$row['ora_ins_comunicazione']?></span></td>
         </tr>
          <tr>
        <td height="1" colspan="4" valign="top" bgcolor="BE743F"></td>
        </tr>
        <tr>
        <td height="82" colspan="4">

    <table width="650" border="0" cellpadding="0" cellspacing="0">
        <tr>
        <td width="113" height="82"><span class="testo_grigio_bold">comunicazione</span></td>
        <td width="537" align="right"><span class="testo_grigio_bold"><?=$row['testo_comunicazione']?></span></td>
        </tr>
    </table>

    </td>
        </tr>
    <tr>
        <td height="1" colspan="4" valign="top" bgcolor="BE743F"></td>
        </tr>
        <?
            
    }
    }
    ?>
      </table>
    e questa è la pagina dell'admin:

    Codice PHP:
    <form enctype="multipart/form-data" name="form" action="<?=$PHP_SELF?>" method="post">
    <table width="650" border="0" cellspacing="0" cellpadding="0">
          <tr>
        <td height="118"><span class="testo_rosso_bold">comunicazione</span></td>
        <td colspan="4" align="right"><textarea cols="60" rows="6" name="testo_comunicazione"></textarea></td>
        </tr>
    <tr>
        <td height="1" colspan="5" valign="top" bgcolor="BE743F"></td>
        </tr>
          <tr>
            <td width="113" height="41" align="left"><span class="testo_rosso_bold">assegnato a</span></td>
            <td width="162" align="right">
              <select name="id_agenti"> 
    <option value="1000" selected="selected">seleziona agente</option> 
    <?php 
    while($row77 mysql_fetch_object($sql77))
    {
    if (
    $row77->id_agenti != "1000")
     echo 
    "<option value=\"$row77->id_agenti\"";
     echo 
    ">$row77->cognome_agente</option>\n"

    ?> 
    </select></td>
            <td width="100"></td>
            <td width="113" align="left">
    <select name="id_tecniche"> 
    <option value="1000" selected="selected">seleziona tecnica</option>
    <?php 
    while($row78 mysql_fetch_object($sql78))
    {
    if (
    $row78->id_tecniche != "1000")
    if (
    $row78->id_tecniche != "1100")
     echo 
    "<option value=\"$row78->id_tecniche\"";
     echo 
    ">$row78->cognome_tecnica</option>\n"

    ?> 
    </select>        </td>
            <td width="162" align="right">
              <select name="id_operatori"> 
    <option value="1000" selected="selected">seleziona operatore</option>
    <?php 
    while($row79 mysql_fetch_object($sql79))
    {
    if (
    $row79->id_operatori != "1000")
     echo 
    "<option value=\"$row79->id_operatori\"";
     echo 
    ">$row79->nome_operatore</option>\n"

    ?> 
    </select></td>
          </tr>
    <tr>
        <td height="1" colspan="5" valign="top" bgcolor="BE743F"></td>
        </tr>
             <tr>
       <td height="41"></td>
        <td align="right"><input type="hidden" name="pagina" value="1"></td>
        <td align="center"><input name="submit" type="submit" class="pulsante" value="inserisci"></td>
    <td colspan="2" align="left"> </td>
        </tr>
    <tr>
        <td height="1" colspan="5" valign="top" bgcolor="BE743F"></td>
        </tr>
             <tr>
       <td height="41" colspan="5">
    <? if ($msg){?><span class="testo_rosso_bold"><?=$msg?></span><? }?>
    </td>
        </tr>
        </table>
    </form>

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    up

  9. #9
    prinz usando la prima query che mi hai mandato, mi funziona correttamente

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Originariamente inviato da satinrouge
    prinz usando la prima query che mi hai mandato, mi funziona correttamente
    Se dici questo presumo che hai fatto delle prove, ma non avendo il mio stesso db non potrai avere gli stessi risultati che ho io.

    A me mi escono più messaggi uguali, anzichè uscirne uno.

    ESEMPIO:

    io sono una tecnica e mi loggo per entrare nel mio pannello di controllo con username CARLA, nella pagina delle comunicazioni dovrei vedere:

    ---------------
    messaggio per tutte le tecniche
    CARLA alle ore 10:30 ci vediamo in ufficio
    ---------------

    invece quello che esce fuori è:

    ---------------
    messaggio per tutte le tecniche
    CARLA alle ore 10:30 ci vediamo in ufficio
    ---------------
    messaggio per tutte le tecniche
    FRANCA alle ore 10:30 ci vediamo in ufficio
    ---------------
    messaggio per tutte le tecniche
    LUISA alle ore 10:30 ci vediamo in ufficio
    ---------------
    messaggio per tutte le tecniche
    ALESSIA alle ore 10:30 ci vediamo in ufficio
    ---------------

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.