Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di Electro
    Registrato dal
    Dec 2003
    Messaggi
    565

    Come selezionare i record

    Ciao a tutti,
    ho un problema, ho uno script php che fa una query sql come questa

    Codice PHP:
    $query "SELECT id,username,userdata FROM users ORDER BY id ASC WHERE id=' 30, 31,'"
    da questa volevo eseguire questa operazione

    Codice PHP:
            $result mysql_query($query$db);
            while (
    $row mysql_fetch_array($result))
            { 
    //quello che mi pare
            

    Ma alquanto vedo non funziona se vengono se vengono selezionati precisamente grazie al'id.
    Quindi, come posso la stessa cosa, compatibile però con la selezione di ben precisi record?
    Nulla

  2. #2
    Utente di HTML.it L'avatar di Sgurbat
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    la clausola WHERE non è corretta, se vuoi recuperare i record compresi in uno specifico sottoinsieme deve usare la clausola IN oppure una serie di OR.

    Inoltre non puoi mettere ORDER BY prima di WHERE.

    Es:
    Codice PHP:
    $query "SELECT id,username,userdata FROM users WHERE id IN (30,31) ORDER BY id ASC'"
    Spero di aver capito bene.

    Ciao.

  3. #3
    Utente di HTML.it L'avatar di Electro
    Registrato dal
    Dec 2003
    Messaggi
    565
    Allora, mi spiego meglio:

    La mia intenzione è far eseguire un operazione per ogni record degli id, in questo caso nell'esempio ai record degli id 30,31, vorrei che per ognuno fosse eseguita una funzione, ma non so come fare.

    Codice PHP:
    $query "SELECT id,username,userdata FROM users ORDER BY id ASC"
    $result mysql_query($query$db);
    while (
    $row mysql_fetch_array($result))
    { echo 
    $row[username] // o qualcos'altro

    Con questo codice, riesco ed eseguire una funzione per ogni record, ma per tutti gli elementi della tabella, però se io seleziono una query, come quella di prima dove sono seleezionati precisamente i record tramite l'id, come posso ottenere una funzione analoga a quella appena postata?


    Nulla

  4. #4
    sgurbat ti ha già dato la soluzione.

    se tu alla query della tua pagina la sostituisci con questa

    "SELECT id,username,userdata FROM users WHERE id IN (30,31) ORDER BY id ASC'";


    le funzione verranno eseguite soltanto per i record restituiti dalla query e quindi soltanto per gli utenti con id 30 e 31

  5. #5
    Utente di HTML.it L'avatar di Electro
    Registrato dal
    Dec 2003
    Messaggi
    565
    forse mi sono spiegato male, il problema non è la query, ma il codice per far processare la funzione singolarmenteper ogni riga di codice.

    Con il codice prima da me riportato ( e anche corretto con la query da voi corretta ) mi da questo errore:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/xxxx/xxxxxxx/yyyyyyyyyyyy.php on line 32
    Nulla

  6. #6
    veramente tu nel post precedente dici:

    "Con questo codice, riesco ed eseguire una funzione per ogni record, ma per tutti gli elementi della tabella"

    quindi si evince che il codice funzionava..

    comunque questo errore di solito lo dà quando la query è sbagliata, sei sicuro che tutti i campi sono corretti???

  7. #7
    Utente di HTML.it L'avatar di Electro
    Registrato dal
    Dec 2003
    Messaggi
    565
    Si, il codice funziona se non metto la parte relativa al WHERE e quindi mi pesca tutti i valori della tabella. Mentre se seleziono solo determinati ID non funziona, e mi restituisce quell'errore, e lo fa anche con la query che mi avete scritto, soluzioni?

    Ciao e grazie
    Nulla

  8. #8
    SELECT id,username,userdata FROM users WHERE id=30

    prova ad inserire questa, dovrebbe selezionare solo un utente, se dà errore anche in questa c'è qualcosa di strano...

  9. #9
    Utente di HTML.it L'avatar di Electro
    Registrato dal
    Dec 2003
    Messaggi
    565
    Originariamente inviato da pippuzzo80
    SELECT id,username,userdata FROM users WHERE id=30

    prova ad inserire questa, dovrebbe selezionare solo un utente, se dà errore anche in questa c'è qualcosa di strano...
    Ho trovato l'errore: nella query che aveva scritto Sgurbat c'era una " ' " in più alla fine, perciò dava errore. Grazie dell'aiuto.

    Un ultima cosa però vorrei sapere, come posso eliminare il carattere finale di una variabile? :master:
    Nulla

  10. #10
    substr($stringa, 0, count($stringa)-2);

    echo $stringa;



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 © 2024 vBulletin Solutions, Inc. All rights reserved.