Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    query a formulazione variabile

    Devo effettuare una query al db, la cui formulazione può variare n volte (in base alle variabili ricevute in input). Ho provato a fare un costrutto del tipo:
    Codice PHP:
    ... else if ($area !== "null" && $kind == "null" && $tag == "null" && $data == "0000-00-00") {
    $result7 mysql_query("SELECT * FROM `news` WHERE `area` = '$area' ORDER BY `news_id` DESC");
    } ... 
    e così via, per n volte, e poi aggiungendo, al termine della sequenza if/else:
    Codice PHP:
    while($row7 mysql_fetch_array($result7)) {
    ... 
    Però, se provo a dare qualsiasi valore di input, mi restituisce questo messaggio:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/httpd/vhosts/shavis.com/httpdocs/search1.php on line 275
    laddove la riga 275 è, appunto:
    Codice PHP:
    while($row7 mysql_fetch_array($result7)) { 
    Perchè mi da questo errore?

    Come posso risolvere/aggirare il problema?

    Idee/suggerimenti?
    metatad
    graphic & web design

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    se non fai un minimo di debug non lo potrai sapere mai (e tanto meno noi che non abbiamo il tuo script sottomano):

    codice:
    $query = "SELECT * FROM `news` WHERE `area` = '$area' ORDER BY `news_id` DESC";
    $result = mysql_query($query) or die (mysql_error()."
    Query: ".$query);
    
    if ($result) { ...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Debug:
    Query was empty
    Query:
    metatad
    graphic & web design

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non è possibile: hai sbagliato a fare il copia/incolla. Posta tutto il codice.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Codice PHP:
                  if ($area == "null" && $tag == "null" && $kind == "null" && data == "0000-00-00") {
                    echo 
    "[b]<font color=\"#0279d1\">Warning!</font>[/b]
    You haven't select any item for your search.
    Please, <a href=\"search.php\">try again</a>."
    ;
                    } else if (
    $area !== "null" && $kind == "null" && $tag == "null" && $data == "0000-00-00") {
                
    $condition "`area` = '$area'";
                    } else if (
    $area == "null" && $kind !== "null" && $tag == "null" && $data == "0000-00-00") {
                
    $condition "`kind` = '$kind'";
                    } else if (
    $area == "null" && $kind == "null" && $tag !== "null" && $data == "0000-00-00") {
                
    $condition "`tag` = '$tag'";
                    } else if (
    $area == "null" && $kind == "null" && $tag == "null" && $data !== "0000-00-00") {
                
    $condition "`deadline` >= '$data'";
                    } else if (
    $area !== "null" && $kind == "null" && $tag == "null" && $data !== "0000-00-00") {
                
    $condition "`deadline` >= '$data' AND `area` = '$area'";
                    } else if (
    $area == "null" && $kind !== "null" && $tag == "null" && $data !== "0000-00-00") {
                
    $condition "`deadline` >= '$data' AND `kind` = '$kind'";
                    } else if (
    $area == "null" && $kind == "null" && $tag !== "null" && $data !== "0000-00-00") {
                
    $condition "`deadline` >= '$data' AND `tag` = '$tag'";
                    } else if (
    $area !== "null" && $kind !== "null" && $tag == "null" && $data == "0000-00-00") {
                
    $condition "`kind` = '$kind' AND `area` = '$area'";
                    } else if (
    $area !== "null" && $kind == "null" && $tag !== "null" && $data == "0000-00-00") {
                
    $condition "`tag` = '$tag' AND `area` = '$area'";
                    } else if (
    $area == "null" && $kind !== "null" && $tag !== "null" && $data == "0000-00-00") {
                
    $condition "`kind` = '$kind' AND `tag` = '$tag'";
                    } else if (
    $area !== "null" && $kind !== "null" && $tag !== "null" && $data == "0000-00-00") {
                
    $condition "`kind` = '$kind' AND `area` = '$area' AND `tag` = '$tag'";
                    } else if (
    $area !== "null" && $kind !== "null" && $tag == "null" && $data !== "0000-00-00") {
                
    $condition "`kind` = '$kind' AND `area` = '$area' AND `deadline` >= '$data'";
                    } else if (
    $area == "null" && $kind !== "null" && $tag !== "null" && $data !== "0000-00-00") {
                
    $condition "`tag` = '$tag' AND `kind` = '$kind' AND `deadline` >= '$data'";
                    } else if (
    $area !== "null" && $kind !== "null" && $tag !== "null" && $data !== "0000-00-00") {
                
    $condition "`tag` = '$tag' AND `kind` = '$kind' AND `area` = '$area' AND `deadline` >= '$data'";
                    }
                
    $result7 mysql_query("SELECT * FROM `news` WHERE $condition ORDER BY `news_id` DESC");
                
    //$result7 = mysql_query($result7) or die (mysql_error()."
    Query".$result7);
                             while(
    $row7 = mysql_fetch_array($result7)) {
                            
    $tit = $row7["title"];
                            
    $txt = $row7["text"];
                            
    $tg = $row7["tag"];
                            
    $kd = $row7["kind"];
                            
    $dead = $row7["deadline"];
                            
    $loc = $row7["location"];
                            echo "
    [b]<a href=\"" $page "?news=" $row7["news_id"] . "&from=search\"><font color=\"#0279d1\">" $tit "</font></a>[/b]
    [i]" 
    $txt "[/i]
    <font size=\"-1\">Tag: <font color=\"#FF0000\">[b]" 
    $tag "[/b]</font>
    Area: <font color=\"#FF0000\">[b]" 
    $loc "[/b]</font>
    Kind: <font color=\"#FF0000\">[b]" 
    $kind "[/b]</font>" $dline "</font><hr>";
                                } 
    metatad
    graphic & web design

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Non mi metto nemmeno a leggere la sfilza di controlli (non avevi aperto un post a riguardo qualche tempo fa...?)

    Codice PHP:
    if ($area == "null" && $tag == "null" && $kind == "null" && data == "0000-00-00") { 
                    echo 
    "[b]<font color=\"#0279d1\">Warning!</font>[/b]
    You haven't select any item for your search.
    Please, <a href=\"search.php\">try again</a>."

                    } else if (
    $area !== "null" && $kind == "null" && $tag == "null" && $data == "0000-00-00") { 
                
    $condition "`area` = '$area'"
                    } else if (
    $area == "null" && $kind !== "null" && $tag == "null" && $data == "0000-00-00") { 
                
    $condition "`kind` = '$kind'"
                    } else if (
    $area == "null" && $kind == "null" && $tag !== "null" && $data == "0000-00-00") { 
                
    $condition "`tag` = '$tag'"
                    } else if (
    $area == "null" && $kind == "null" && $tag == "null" && $data !== "0000-00-00") { 
                
    $condition "`deadline` >= '$data'"
                    } else if (
    $area !== "null" && $kind == "null" && $tag == "null" && $data !== "0000-00-00") { 
                
    $condition "`deadline` >= '$data' AND `area` = '$area'"
                    } else if (
    $area == "null" && $kind !== "null" && $tag == "null" && $data !== "0000-00-00") { 
                
    $condition "`deadline` >= '$data' AND `kind` = '$kind'"
                    } else if (
    $area == "null" && $kind == "null" && $tag !== "null" && $data !== "0000-00-00") { 
                
    $condition "`deadline` >= '$data' AND `tag` = '$tag'"
                    } else if (
    $area !== "null" && $kind !== "null" && $tag == "null" && $data == "0000-00-00") { 
                
    $condition "`kind` = '$kind' AND `area` = '$area'"
                    } else if (
    $area !== "null" && $kind == "null" && $tag !== "null" && $data == "0000-00-00") { 
                
    $condition "`tag` = '$tag' AND `area` = '$area'"
                    } else if (
    $area == "null" && $kind !== "null" && $tag !== "null" && $data == "0000-00-00") { 
                
    $condition "`kind` = '$kind' AND `tag` = '$tag'"
                    } else if (
    $area !== "null" && $kind !== "null" && $tag !== "null" && $data == "0000-00-00") { 
                
    $condition "`kind` = '$kind' AND `area` = '$area' AND `tag` = '$tag'"
                    } else if (
    $area !== "null" && $kind !== "null" && $tag == "null" && $data !== "0000-00-00") { 
                
    $condition "`kind` = '$kind' AND `area` = '$area' AND `deadline` >= '$data'"
                    } else if (
    $area == "null" && $kind !== "null" && $tag !== "null" && $data !== "0000-00-00") { 
                
    $condition "`tag` = '$tag' AND `kind` = '$kind' AND `deadline` >= '$data'"
                    } else if (
    $area !== "null" && $kind !== "null" && $tag !== "null" && $data !== "0000-00-00") { 
                
    $condition "`tag` = '$tag' AND `kind` = '$kind' AND `area` = '$area' AND `deadline` >= '$data'"
                    } 
                
    $result7 mysql_query("SELECT * FROM `news` WHERE $condition ORDER BY `news_id` DESC") or die (mysql_error()); 
                
                             while(
    $row7 mysql_fetch_array($result7)) { 
                            
    $tit $row7["title"]; 
                            
    $txt $row7["text"]; 
                            
    $tg $row7["tag"]; 
                            
    $kd $row7["kind"]; 
                            
    $dead $row7["deadline"]; 
                            
    $loc $row7["location"]; 
                            echo 
    "[b]<a href=\"" $page "?news=" $row7["news_id"] . "&from=search\"><font color=\"#0279d1\">" $tit "</font></a>[/b]
    [i]" 
    $txt "[/i]
    <font size=\"-1\">Tag: <font color=\"#FF0000\">[b]" 
    $tag "[/b]</font>
    Area: <font color=\"#FF0000\">[b]" 
    $loc "[/b]</font>
    Kind: <font color=\"#FF0000\">[b]" 
    $kind "[/b]</font>" $dline "</font><hr>"
                                } 
    Che errore ti da questa volta?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Non capisco perchè al posto di != (diverso) usi !== (non identico).
    Con !== vai a controllare anche il tipo di dato, quindi se non è (per puro caso) una stringa ti darà sempre false.
    Sostituisci !== con != e prova.

    Poi è sempre bene prima di eseguire una query "dinamica" vedere ciò che ti stampa.
    Quindi scrivi prima di $result7 = .... echo $condition e vedi se ti stampa le giuste condizioni.

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    L'errore che mi da è sempre lo stesso; e - ovviamente... - ho fatto anche un echo $condition per verificare che fossero effettivamente trasmessi i dati alla query...
    metatad
    graphic & web design

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    ok, risolto!...

    era solo un banalissimo (e f_____issimo...) errore di digitazione...
    I'm sorry!
    metatad
    graphic & web design

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.