Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Interrogazioni annidate Mysql

    Salve a tutti,
    dovrei interrogare due database annidati in un ciclo while così:


    Codice PHP:
    $query=mysql_query("SELECT * FROM photogallery ORDER by event DESC");
    while(
    $campo=mysql_fetch_array($query)){
    $query_cat=mysql_query("SELECT * FROM photo_categorie WHERE id=1");
    $campo_cat=mysql_fetch_array($query_cat);

    La prima interrogazione va a buon fine ma alla seconda mi esce l'errore: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in....

    Come mai?

    Grazie a quelli che mi aiuteranno.

  2. #2
    bisognerebbe prima capire cosa vorresti fare. La seconda query (annidata) non ha nulla a che spartire con la prima.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Ciao. Innanzitutto grazie per la risposta.

    le due tabelle fanno parte di un unico DB. La prima deve interrogare la foto, mentre la seconda richiama la categoria della foto con i nomi scritti nella tabella "photo_categorie".

    P.S.: in effetti l'opzione WHERE id=1 non è esatto, questo numero si ricava da un campo della tabella photogallery. In ogni caso questo è solo un estratto del codice...

    Non so se sono stato chiaro.

  4. #4
    quindi le due tabelle sono relazionate tramite il campo id_categoria.

    Fai una semplice join:

    codice:
    select * 
    from photogallery p
    inner join photo_categorie c ON p.id_categoria = c.id_categoria
    where .... eventualmente nel caso serva
    ovviamente saprai tu il nome esatto del campo che ho chiamato id_categoria

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Grazie per l'interessamento.
    Cmq ho capito l'errore: mancava la connessione al DB nella seconda query... pensavo che funzionasse con un unica connessione...

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da Assolollo
    pensavo che funzionasse con un unica connessione...
    Infatti è così. L'errore non era sicuramente quello.
    Dovresti invece imparare a testare sempre l'esito dei comandi inviati al database

    mysql_query(....) or die(mysql_error());

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.