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

Discussione: problema query

  1. #1

    problema query

    Ciao a tutti
    ho un problema con la seguente query..

    <?php
    $cf=mysql_query("SELECT Cod_Fisc FROM fattura_noleggio", $db) or die("Errore query");
    $ris=mysql_result($cf,,"Cod_Fisc");
    $query=mysql_query("SELECT Rag_Soc FROM cliente WHERE Cod_Fisc='$ris'", $db) or die ("Errore query");
    $i=1;
    while($vet=mysql_fetch_array($query)) {
    $a[$i]=$vet[0];
    $i++;
    }
    echo "<option value\"\">seleziona</option>";
    for($c=1;$c<=count($a);$c++){
    echo "<option value=\"$a[$c]\">$a[$c]</option>";
    }
    echo "</select>";
    ?>

    settando 0 tra le virgole di $ris mi esce solo il codice fiscale della prima riga del db
    settando 1 esce la seconda e cosi via..
    vorrei invece che uscissero tutte le righe presenti nel db in modo tale escano tutti i nomi associati al codice fiscale della fattura_noleggio...dovrei fare un while? come? grazie...

  2. #2
    codice:
    SELECT Rag_Soc FROM cliente WHERE Cod_Fisc IN (SELECT Cod_Fisc FROM fattura_noleggio)

  3. #3
    Grazie mille!!!
    il problema ora è che quando seleziono il nome del cliente con ajax mi dovrebbe aggiornare le date delle fatture ricevute per quel cliente.
    Infatti passando alla pagina di elaborazione di ajax dovrei fare cosi:

    <?php
    require("connessione.php");
    $q=$_GET["q"];
    $ris=mysql_query("SELECT Data_Fattura FROM fattura_noleggio WHERE Cod_Fisc='$q'", $db) or die("Errore 1");
    echo "<select name=\"mod\">";
    $i=1;
    echo $q;
    while($vet=mysql_fetch_array($ris)) {
    $mod[$i]=$vet[0];
    $i++;
    }
    for($c=1;$c<=count($mod);$c++){
    echo "<option value=\"$mod[$c]\">$mod[$c]</option>";
    }
    echo "</select>";
    ?>
    ma facendo cosi non si aggiornano le date... il menu a tendina rimane invariato...sbaglio sicuramente nella query di ajax...ma come dovrei scriverla?

    PS: google01 grazie mille già della tua risposta

  4. #4
    precisando che la pagina php che hai postato non ha niente a che vedere con ajax, il codice mi sembra corretto.
    L'unica cosa da togliere, ma che non influenza il funzionamento e
    Codice PHP:
    echo $q
    Immagino che giungi a questa pagina da un form, sei sicuro che lì sia tutto corretto?
    hai provato a richiamare la pagina php direttamente nella barra degli indirizzi passando il parametro 'q' a mano?


  5. #5
    Allora so che quella pagina non centra niente con ajax ma vado a finire li tramite un form che richiama ajax e credo che sia tutto corretto anche se in verità dopo quasi 200 pagine probabilmente il mio cervello stia andando in tilt. ti posto il form che successivamente si connette alla pagina php che ho postato:

    codice:
    <html> 
    <style type="text/css"> 
    @import url("fogliostile.css"); 
    </style> 
    <head> 
    <title>Cerca Fattura Noleggio</title>
     <script type="text/javascript"> 
    function showUser(str) {
     if (str=="") { 
    document.getElementById("txtHint").innerHTML="";
     return; }
     if (window.XMLHttpRequest) {
    // per i browser IE7+ Firefox Chrome Safari Opera 
    xmlhttp=new XMLHttpRequest(); }
     else {
    // per i browser IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() {
     if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; }
     }
     xmlhttp.open("GET","getcliente.php?z="+str,true);
     xmlhttp.send(); }
     </script> 
    </head> 
    <body> 
    <h3>Scegliere Cliente</h3> 
    <form name="tipo" action="" method="post"> 
    <table border="0"> 
    <tr> 
    <td>Nome Cliente:</td> 
    <td> <select name="cli" onChange="showUser(this.value)">
     <?php $query=mysql_query("SELECT Rag_Soc FROM cliente WHERE Cod_Fisc IN (SELECT Cod_Fisc FROM fattura_noleggio)", $db) or die ("Errore query");
     $i=1;
     while($vet=mysql_fetch_array($query)) {
     $a[$i]=$vet[0]; $i++; }
     echo "<option value\"\">seleziona</option>";
     for($c=1;$c<=count($a);$c++){
     echo "<option value=\"$a[$c]\">$a[$c]</option>"; }
     echo "</select>";
     ?>
     </select>
     </td> 
    </tr> 
    <tr> 
    <td>Data Fattura:</td> 
    <td> 
    <div id="txtHint"><select></select></div> 
    </td> 
    </tr> 
    </table> 
    <input type="submit" align="absmiddle" value="Visualizza"> 
    </form> 
    </body>
     </html>
    Questa pagina contiene il codice ajax che mi reindirizza alla pagina getcliente:

    codice:
    <?php
    require("connessione.php");
     $q=$_GET["q"];
     $ris=mysql_query("SELECT Data_Fattura FROM fattura_noleggio WHERE Cod_Fisc='$q'", $db) or die("Errore 1");
     echo "<select name=\"data\">";
     $i=1;
     while($vet=mysql_fetch_array($ris)) {
     $data[$i]=$vet[0]; $i++; } 
    for($c=1;$c<=count($data);$c++){ 
    echo "<option value=\"$data[$c]\">$data[$c]</option>"; }
     echo "</select>"; 
    ?>
    ho ricontrollato più volte mi sfugge sicuramente qualcosa perchè non mi da errore la query ma un risultato vuoto...il menù della data non si popola...

  6. #6
    allora, facciamo un po' d'ordine:
    se il codice php che hai postato si trova nella pagina getcliente.php devi cambiare la riga
    codice:
    xmlhttp.open("GET","getcliente.php?z="+str,true);
    come segue
    codice:
    xmlhttp.open("GET","getcliente.php?q="+str,true);
    inoltre, dal momento che effettui una chiamata ajax devi modificare l'output generato dallo script php.

    Codice PHP:
    <?php
    require("connessione.php");
    $q=$_GET["q"];
    $ris=mysql_query("SELECT Data_Fattura FROM fattura_noleggio WHERE Cod_Fisc='$q'"$db) or die("Errore 1");
    $output "<select name=\"mod\">";
    $i=1;
    echo 
    $q;
    while(
    $vet=mysql_fetch_array($ris)) {
    $mod[$i]=$vet[0];
    $i++;

    for(
    $c=1;$c<=count($mod);$c++){
    $output .= <option value=\"$mod[$c]\">$mod[$c]</option>";
    }
    $output .= "</select>";
    echo 
    $output;
    ma soprattutto, allo script php, passi un valore che è Rag_Soc e che utilizzi nella query per ricercare un codice fiscale. sono campi che contengono gli stessi valori?

  7. #7
    Cmq ho provato ad usare la stessa query anche in altri form cambiando ovviamente le le variabili e le tabelle ma la seconda select non si aggiorna...se invece metto la chiave primaria nella prima select si aggiorna tutto tranquillamente...non vorrei che il problema sorge nella comunicazione tra la prima query:

    codice:
    SELECT Rag_Soc FROM cliente WHERE Cod_Fisc IN (SELECT Cod_Fisc FROM fattura_noleggio)
    e la seconda query di aggiornamento ajax:

    codice:
    SELECT Data_Fattura FROM fattura_noleggio WHERE Cod_Fisc='$q'

  8. #8
    rileggi quello che ti ho scritto prima: nella seconda query cerchi una ragione sociale e non un codice fiscale.

  9. #9
    Scusami non avevo visto la tua risposta.
    Allora nella tabella cliente ho Rag_Soc con i nome e cognome dei clienti e Cod_Fisc che sono i codici fiscali dei suddetti clienti.
    In fattura_noleggio ho il campo Cod_Fisc che sono i codici fiscali di chi ha ricevuto la fattura quindi questi Cod_Fisc sono identici ai Cod_Fisc della tabella cliente. Ovviamente nella tabella fattura_noleggio non sono contenuti tutti i codici fiscali presenti nella tabella cliente poichè non tutti i clienti hanno ricevuto fattura spero di esser stato chiaro.
    Cmq l'errore

    codice:
    xmlhttp.open("GET","getcliente.php?q="+str,true);
    era dovuto da un errata trascrizione e seconda cosa ho modificato ora il codice della pagina getcliente.php come dici tu ed ora quando vado a selezionare il nome del cliente si aggiorna la selezione della data fattura con questo errore:


    codice:
    Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\Piero\getcliente.php on line 12
    e nella riga 12 di getcliente.php
    Codice PHP:
    $output .= <option value="$mod[$c]\">$mod[$c]</option>"
    $output .= "</select>"
    echo 
    $output
    grazie ancora dell'aiuto

  10. #10
    usa questo
    Codice PHP:
    <?php
    require("connessione.php");
     
    $q=$_GET["q"];
     
    $ris=mysql_query("SELECT Data_Fattura FROM fattura_noleggio WHERE Cod_Fisc='$q'"$db) or die("Errore 1");
    $output "<select name='data'>";
     
    $i=1;
     while(
    $vet=mysql_fetch_array($ris)) {
     
    $data[$i]=$vet[0]; $i++; } 
    for(
    $c=1;$c<=count($data);$c++){ 
    $output .= "<option value='$data[$c]'>$data[$c]</option>"; }
    $output .= "</select>"
    echo 
    $output;
    ?>

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.