Problema mysql_fetch_assoc/array

Danix1994

Nuovo Utente
8 Apr 2012
13
0
0
Foligno, Italy
Salve a tutti, come ho detto, sono alle prime armi col php, infatti ho appena avuto la necessita' di scrivere questo script che, in teoria, dovrebbe controllare se l'username inserito sia gia' presente nel database... purtroppo la query mi fallisce e il fetch mi restituisce l'errore: "Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Passaver\PHP\funzioni_sito\username.php on line 11"
Non riesco minimamente a trovare una soluzione... che cosa devo fare???

Questo e' l'ultima prova in PHP che ho fatto, fallendo:

PHP:
<?php

error_reporting (E_ALL ^ E_NOTICE);

   session_start();
   if(isset($_SESSION["email"]))
   
      if(isset($_POST["user"]))
      {
         $sql = mysql_query("SELECT username FROM utenti_registrati WHERE username = '".$_POST["user"]."'");
         $fetch = mysql_fetch_assoc($sql);
         
         if($fetch["username"] > 1)
         {
            echo "Username già esistente";
         }
         else
         {
            mysql_query("UPDATE utenti_registrati SET username = '".$_POST['user']."' WHERE email = '".$_SESSION['email']."'");
         }
      }
      else
      {
         if(!$_POST["user"])
         {
            echo "Inserisci un username";
         }
         else
         {
            echo "";
         }
         
      }

?>

Questa e' la struttura del database:

Codice:
-- phpMyAdmin SQL Dump
-- version 3.4.5
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generato il: Apr 03, 2012 alle 12:15
-- Versione del server: 5.5.16
-- Versione PHP: 5.3.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

--
-- Database: `my_passaver`
--

-- --------------------------------------------------------

--
-- Struttura della tabella `utenti_registrati`
--

CREATE TABLE IF NOT EXISTS `utenti_registrati` (
  `email` varchar(30) NOT NULL,
  `password` varchar(15) NOT NULL,
  `data_nascita` date NOT NULL,
  `data_registrazione` date NOT NULL,
  `provincia` varchar(2) NOT NULL,
  `conferma` tinyint(1) NOT NULL,
  `username` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dump dei dati per la tabella `utenti_registrati`
--

INSERT INTO `utenti_registrati` VALUES('[email protected]', 'daniele94', '1994-06-14', '2012-04-03', 'PG', 1, NULL);
 
Ciao,
il messaggio ti avverte di un errore nella query

ti consiglio di separare la stringa della query in modo da poterla stampare insieme agli errori di mysql
in questo modo potrai vedere la query generata e l'errore specifico di mysql

PHP:
$query = "SELECT username FROM utenti_registrati WHERE username = '" . $_POST["user"] . "'";
        $sql = mysql_query($query);
        if (!$sql) {
            echo " $query <br/>" . mysql_error();
        }
        $fetch = mysql_fetch_assoc($sql);

in piu credo che dopo
PHP:
if(isset($_SESSION["email"]))

dovresti aprire un parentesi { e chiuderla a fine script
 
Ultima modifica:
Ragazzi, ho completamente dimenticato la connessione al mysql e la selezione del database... che idiota :|
Mi scuso per il disturbo e grazie per la disponibilità, se avrò qualche altro problema, mi affiderò a voi ;-)

Si alessandro, lo so perfettamente, ma questo sito dovrà rimanere in locale per scopi personali, quindi non mi pongo tali problemi ;-)
 
Ultima modifica:
ciiao

anche a me viene indicato lo stesso errore

mysql_fetch_row() expects parameter 1 to be resource,

ma mi sembra tutto corretto,ed infatti se eseguo la stessa query su db mi viene mostrato correttamente il risultato

questo è il codice.... sapete aiutarmi???????

PHP:
<?php

include('db_login.php');
  $link = mysqli_connect('localhost','root',''); 
if (!$link) { 
	die('Could not connect to MySQL: <br />' . mysqli_error()); 
} 
$db_select=mysqli_select_db($link,'test');
if(!$db_select){
    die ('errore connessione al database:<br />'.msqli_error());
}
 
$query="SELECT * FROM clienti";

$result=mysqli_query($link,$query);
if(!$result){
    die ('interrogazione database non riuscita: <br />'.msqli_error());
}	

	while($result_row=mysql_fetch_row($result)){
 echo "Ragione sociale".$result_row[1];
 echo "Indirizzo".$result_row[2];
 echo "Provincia".$result_row[3];
 echo "Cap".$result_row[4];
 echo "Località".$result_row[5];
 echo "Stato".$result_row[6];
 echo "Partita iva".$result_row[7];
 echo "Codice fiscale".$result_row[8];
 echo "Sconto".$result_row[9];
 echo "Sito internet".$result_row[10];
 echo "Telefono".$result_row[11];
 echo "Cellulare".$result_row[12];
 echo "Fax".$result_row[13];
 }

	
mysqli_close($link);

?>
 
Ciao , forse volevi scrivere
PHP:
mysqli_fetch_row
nel tuo codice manca la i
 

Discussioni simili