Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Condizione where
Forum - PHP - Condizione where

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Aangelus (Normal User)
Pro


Messaggi: 142
Iscritto: 29/03/2011

Segnala al moderatore
Postato alle 2:23
Venerdì, 04/03/2016
Salve a tutti non riesco ad ottenere una doppia condizione con query funzionante il codice è il seguente
Codice sorgente - presumibilmente Php

  1. <?php
  2.   if(mysql_num_rows($Trovato =mysql_query("SELECT * FROM ".$Nome." WHERE (AnnoDb = '$DbAnno' and NumCD like '7')  and  (Brani like 'Migliori' and NumeroBrani like '7') ") ) == 0){
  3.              
  4.               echo "Dentro";      
  5.       }else{
  6.          
  7.          echo "fuori";
  8.                     }
  9. ?>



Con questa query dovrei controllare se un CD con tali parametri esiste. Così come è strutturata questa query da sempre come risultato Dentro

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1459
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 8:33
Venerdì, 04/03/2016
Che rdbms? Che errore restituisce pdo?

PM Quote
Avatar
Aangelus (Normal User)
Pro


Messaggi: 142
Iscritto: 29/03/2011

Segnala al moderatore
Postato alle 12:11
Venerdì, 04/03/2016
nel browser printa solo Dentro mentre in mysql lanciando la seguente query
Codice sorgente - presumibilmente Php

  1. SELECT * FROM ".$Nome." WHERE (AnnoDb = '$DbAnno' and NumCD like '7')  and  (Brani like 'Migliori' and NumeroBrani like '7')

mi restituisce 1 riga con le condizioni corrette

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 12:13
Venerdì, 04/03/2016
Puoi testare la query direttamente da phpmyadmin se ne hai una versione installata nell'host. Praticamente tutti i servizi di hosting che offrono mySQL o te ne forniscono già una copia installata oppure ti permettono di installarla in autonomia. Nel primo caso prova la tua query direttamente da li per capire se ci sono degli errori logici in essa. La tua ricerca in ogni caso sembra molto scrupolosa, sei sicuro che nel db vi siano elementi che soddisfano le clausole?
Controlla inoltre se $Nome e $DbAnno contengono i valori corretti, prova a stampare a schermo l'intera query string e verifica.
Se si è verificato un errore riportalo, puoi usare mysql_error http://php.net/manual/en/function.mysql-error.php.
Come ultima cosa, ma l'approccio procedurale non era deprecato nelle librerie mysql? o mi ricordo male?


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1459
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 12:21
Venerdì, 04/03/2016
non è l'approccio procedurale ad essere deprecato, è proprio la libreria mysql che è completamente abbandonata a se stessa.

Comunque trovo più semplice fare una stampa dell'errore che installare phpmyadmin.

PM Quote
Avatar
Aangelus (Normal User)
Pro


Messaggi: 142
Iscritto: 29/03/2011

Segnala al moderatore
Postato alle 12:36
Venerdì, 04/03/2016
Scusa per non essere stato abbastanza chiaro quando ho scritto che ho lanciato la query in mysql intendevo da myadmin
restituendomi i valori corretti

ho introdotto  :  echo "Dentro" . mysql_error() ;  ma non printa nulla sul browser

modificando la query e passandogli le condizioni singolarmente funzionano entrambe
Codice sorgente - presumibilmente Php

  1. 1)  if(mysql_num_rows($Trovato =mysql_query("SELECT * FROM ".$Nome." WHERE (AnnoDb = '$DbAnno' and IdFilm like '7')  ") ) == 0){
  2.       }
  3.  
  4. 2) if(mysql_num_rows($Trovato =mysql_query("SELECT * FROM ".$Nome." WHERE (Azione like 'Migliori' and IdFilm like '7') ") ) == 0){
  5. }


il problema è quando le unisco      

Ultima modifica effettuata da Aangelus il 04/03/2016 alle 12:37
PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1459
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 12:49
Venerdì, 04/03/2016
Testo quotato

Postato originariamente da Aangelus:

Scusa per non essere stato abbastanza chiaro quando ho scritto che ho lanciato la query in mysql intendevo da myadmin
restituendomi i valori corretti

ho introdotto  :  echo "Dentro" . mysql_error() ;  ma non printa nulla sul browser

modificando la query e passandogli le condizioni singolarmente funzionano entrambe
Codice sorgente - presumibilmente Php

  1. 1)  if(mysql_num_rows($Trovato =mysql_query("SELECT * FROM ".$Nome." WHERE (AnnoDb = '$DbAnno' and IdFilm like '7')  ") ) == 0){
  2.       }
  3.  
  4. 2) if(mysql_num_rows($Trovato =mysql_query("SELECT * FROM ".$Nome." WHERE (Azione like 'Migliori' and IdFilm like '7') ") ) == 0){
  5. }


il problema è quando le unisco      



E se usavi phpmyadmin perchè hai scritto del codice PHP?
Perchè hai cercato di inserire codice PHP nell'input box di phpmyadmin?

Io non credo tu stia usando phpmyadmin, e se lo stai usando lo stai sicuramente utilizzando in modo errato.

Comunque prova:
Codice sorgente - presumibilmente Php

  1. WHERE ((AnnoDb = '$DbAnno') AND (Azione like 'Migliori') AND  (IdFilm like '7'))


PM Quote
Avatar
Aangelus (Normal User)
Pro


Messaggi: 142
Iscritto: 29/03/2011

Segnala al moderatore
Postato alle 13:11
Venerdì, 04/03/2016
Nella mia concezione di postare credevo  che quando scrivevo codice php era inteso codice scritto per la lettura del browser mentre estrapolando la query dalle doppie virgole era intesa come input per phpmyadmin logicamente cambiano le variabili con i dati che sarebbero passati da php

la query da te suggerita è stata lanciata nel browser printando solo Dentro senza errori

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1459
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 13:29
Venerdì, 04/03/2016
Il codice php è eseguito sempre e solo dal server, il browser non ha alcun ruolo.

Detto questo se non ci sono errori nella query allora del db non ci sono righe che soddisfano le condizioni del where.

Edit: per qualche assurda ragione la mia tastiera ha cambiato server con kernel.

Ultima modifica effettuata da TheDarkJuster il 04/03/2016 alle 13:49
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo