Newsgroup: it.comp.www.php
Titolo: Problema query mysql

Ciao...io ho questo problema...il seguente codice dovrebbe tirarmi fuori 
  nome e cognome dal db...ma non lo fa...
include("connetti_db.php");
$idi = "SELECT nome, cognome FROM utenti WHERE idu= '$id'  AND username 
= '$user' ";
                 $idq = mysql_query ($idi, $conn);
                 $idr = mysql_fetch_array($idq);
                 $nom = $idr['nome'];
		$cognom = $idr['cognome'];
ora...se metto echo($nom." ".$cognom); ottengo niente...
Vi prego help me
Ciao


Prova a stampare la query con un
echo $idi;
così vedi cosa vai a fare sul db....è buona cosa però chiamare la 
mysql_query in questo modo:
$idq = mysql_query ($idi, $conn)
	or die("Errore:".mysql_error());
in questo caso se fallisce ti stampa a video l'errore ed esce.
Ciao

Prova in questo modo
$query = "SELECT  nome, cognome " .
              "FROM utenti".
              "WHERE idu= '$id' " .
              "AND username = '$user' ";
$results = mysql_query($query)
  or die(mysql_error());
while ($row = mysql_fetch_array($results)) {
extract($row);
echo "$nome - $cognome  ";
}

mikyweb ha scritto:

Ho provato a fare come mi avete detto...ma niente....il mysql_query non 
genera errori e col metodo suggerito da mikyweb nn funziona lo stesso...
Help ancora...
Ciao e grazie

Ma le variabili
 '$id' " .
'$user' ";
che ci sono nello where e nell and sono variabile che hai impostato tu
oppure sono campi che sono nel tuo database?


wrote:

Hai provato, come già suggerito, a stampare $idi? Che stringa ottieni?
-- 
Per rispondermi togli il cappello

mikyweb ha scritto:

Sono variabili che ho preso io in GET

 
Ottengo la cosa giusta..cioè "SELECT...." in cui sono state inseriti 
correttamente i valori delle var php...

 		$cognom = $idr['cognome'];
Prova cosě:
Metti all'inizio della pagina
error_reporting(E_ALL);
Poi:
$idi = 'SELECT nome, cognome
        FROM utenti
        WHERE
         idu = '.$_GET['id'].' AND
         username = "'.$_GET['user'].'"';
$idq = mysql_query($idi);
if ($idq !== false)
{
  $records = mysql_num_rows($idq);
  if ($records > 0)
  {
    while ($idr = mysql_fetch_assoc($idq))
    {
      echo $idr['nome'].' '.$idr['cognome'].'<br />';
    }
  }
  else
  {
    echo '<p>Nessun record trovato.</p>';
  }
}
else
{
  echo '<p>'.mysql_error().'</p>';
}
Cosa restituisce?
Ciao.
-- 
Federico R.

Federico R. ha scritto:

Mi da dei warning, ma per cose estranee a questa cosa: variabili che non 
ho inizializzato piů avanti nel codice...per il resto nn mi stampa niente...

 niente...
non mi stampa nemmeno "nessun record trovato"...nella if va a false 
quindi idq è false...eppure non mi dà errori l'eseguire la query e tutti 
i campi che la query cerca esistono....
GRazie
Ciao

 a false quindi idq è false...
[...]
Come fai a esserne certo? Se mysql_query() restituisse false
dovrebbe visualizzarsi un errore. Prova a mettere degli echo
per capire quale condizione viene valutata vera.
Hai messo, all'inizio del file, error_reporting(E_ALL); ?
-- 
Federico R.

Federico R. ha scritto:

Si..all'inizio ho messo error_reporting(E_ALL) i warning sono 
risolti...ora pova a fare come mi hai detto
Ciao

Matt ha scritto:

Ho provato a stampare idq e mi esce " Resource id #5 "...è quel che 
dovrei ottenere??
Grazie...ciao

 ora...se metto echo($nom." ".$cognom); ottengo niente...
Due controlli:
1) Quali sono i valori di $id e $user ?
2) Sicuro che la SELECT restituisca qualche valore ?
-- 
Ciao,
	Fabrizio
===  
http://www.negusweb.it
  ===

 
$id e $user sono presi in get e hanno quindi un loro valore..echando 
$idi vengono correttamente sostituiti nella query. La select deve 
restituire qualche valore perchè i valori che cerca di selezionare 
esistono e sono corretti, ma non lo fa o almeno dai controlli che ho 
fatto non mi restituisce niente...
grazie
ciao

 dovrei ottenere??
Sě, vedi:
http://it2.php.net/manual/it/function.mysql-query.php
Usando il codice che ti ho proposto, hai provato a stampare la
variabile $records? Quanto vale?
Prova a semplificare al minimo il codice e la tabella utenti.
Per esempio:
Con la seguente tabella utenti:
CREATE TABLE `utenti` (
  `idu` int(11) NOT NULL auto_increment,
  `username` varchar(50) NOT NULL default '',
  `nome` varchar(50) NOT NULL default '',
  `cognome` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`idu`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
INSERT INTO `utenti` VALUES (1, 'mrossi', 'Mario', 'Rossi');
INSERT INTO `utenti` VALUES (2, 'cbianchi', 'Carlo',
'Bianchi');
INSERT INTO `utenti` VALUES (3, 'gverdi', 'Giovanni',
'Verdi');
INSERT INTO `utenti` VALUES (4, 'pneri', 'Paolo', 'Neri');
Il frammento di codice PHP:
<?php
error_reporting(E_ALL);
// connessione al database
$_GET['id'] = 1;
$_GET['user'] = 'mrossi';
$idi = 'SELECT nome, cognome
        FROM utenti
        WHERE
         idu = '.$_GET['id'].' AND
         username = "'.$_GET['user'].'"';
$idq = mysql_query($idi);
if ($idq !== false)
{
  $records = mysql_num_rows($idq);
  if ($records > 0)
  {
    while ($idr = mysql_fetch_assoc($idq))
    {
      echo $idr['nome'].' '.$idr['cognome'].'<br />';
    }
  }
  else
  {
    echo '<p>Nessun record trovato.</p>';
  }
}
else
{
  echo '<p>'.mysql_error().'</p>';
}
?>
funziona perfettamente. A te?
-- 
Federico R.

Federico R. ha scritto:

Funziona..ma solo in parte nel senso che se inserisco dati inesistenti 
mi echa nessun record trovato, altrimenti se i dati sono corretti e 
dovrebbe stamparmerli...nn me li stampa
Thanks a lot!!
Ciao

Matt ha scritto:

No...niente ora va...ho dimenticato di scrivere un'istruzione :-) grazie 
mille per il tempo che hai "sprecato" ad aiutarmi!!
Grazie ancora
Ciao



Ma mysql_num_rows($idq) è uguale a zero?
Probabilmente i valori passati e quelli nel db non sono proprio
uguali... prova a stamparti la query e copia/incollala in mysql
center/mysqlMyAdmin o quello che hai....


 fatto non mi restituisce niente...
Immagino che tu abbia già fatto la prova di inviare la query 
direttamente dal client mysql e ti restituisce i dati aspettati, vero ?
