Vedere se record esiste

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Scusate ragazzi, forse sarà l'ora tarda, ma se eseguo questo codice

PHP:
$sql = "SELECT * FROM products_attributes WHERE products_id ='$pid' AND options_id = '1' AND options_values_id = '$prod'";
$rows = $db->query($sql);
  while ($r = $db->fetch_array($rows)){
      $p = $r[products_id];
}


if($p == FALSE){

$query = "INSERT INTO products_attributes (products_id, options_id,  options_values_id) VALUES ('$pid', '1', '$p_att')";
$insert = mysql_query($query);
   if(!$insert) die(mysql_error());
}

Cioè vuol dire che se nella tabella products_attributes, non esiste quel prodotto deve eseguire l'inserimento nel database!

Giusto?

Perchè non scrive niente nel database, ed invece se imposto l'if a TRUE mi scrive?

Non ci capisco più niente.

Un'aiutino?:crying:
 

softhare

Utente Attivo
11 Feb 2010
57
0
0
Friuli
www.softhare.it
Il problema credo dipenda da

Codice:
$p = $r[products_id];

Che non restituisce TRUE oppure FALSE: restituisce qualcosa se il record esiste oppure una stringa vuota o zero (non false) se il record non esiste.

Prova a sostituire

Codice:
if($p == FALSE){

con

Codice:
if(!$p){

Poi c'è un altro problema: invece di

Codice:
$rows = $db->query($sql);

Usa un più tradizionale

Codice:
$rows= mysql_query($sql);

e dovrebbe andare.

Potresti anche sostituire

Codice:
$sql = "SELECT * FROM products_attributes WHERE products_id ='$pid' AND options_id = '1' AND options_values_id = '$prod'";

con

Codice:
$sql = "SELECT products_id FROM products_attributes WHERE products_id ='$pid' AND options_id = '1' AND options_values_id = '$prod'";

Che consuma meno risorse mysql...
 
Ultima modifica:

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
potresti fare un semplice controllo con mysql_num_rows():
PHP:
if(mysql_num_rows($rows) == 0)
{
// effettua l'insert
}
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
oltre a quello che ha detto softhare, se come dovrebbe essere products_id è unico il while non serve.
poi eliox ti ha dato una soluzione a mio parere migliore

(battuto sul tempo)

dimenticavo, al posto di

//.............
$insert = mysql_query($query);
if(!$insert) die(mysql_error());
//..................

potresti più semplicemente

//............
$insert = mysql_query($query) OR die(mysql_error());
//............
 
Ultima modifica:

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
un piccolo consiglio, non usare il formato:
PHP:
$p = $r[products_id]
meglio
PHP:
$p = $r['products_id']
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
...l'usare direttamente la libreria mysql. Se ha un CMS che gli mette...
ti riferisci alla riga $rows = $db->query($sql); ?
se si (a precsindere che a me piaccono poco le classi) forse sarebbe meglio usare o tutto con la classe o tutto con la lib mysql, per quallo che capisco ogni tanto usa la classe (vedi sopra) e ogni tanto la ibreria
$insert = mysql_query($query);
a mio parere uno script dovrebbe essere coerente (o forse mi sbaglio)
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Comunque non sono d'accordo con l'usare direttamente la libreria mysql. Se ha un CMS che gli mette a disposizione una classe per interagire con il database non capisco perché non debba essere sfruttata.

l'importante è che la classe metta a disposizione un metodo per il conteggio delle righe coinvolte, probabilmente ci deve essere qualcosa tipo:
PHP:
$db->num_rows($rows)
 
Discussioni simili
Autore Titolo Forum Risposte Data
WebmasterFioriniAndrea [PHP] Problema che non mi fa vedere niente PHP 2
F Vedere telecamere da remoto smartphone/tablet IP Cam e Videosorveglianza 1
Rta_services Vendo Story viewer per instagram progra per vedere le story. Annunci servizi di Social Media Marketing 0
I Xamp non mi fa vedere le seconde pagine del sito locale Web Server 0
M [PHP] Vedere tutti i dati presenti nel DB PHP 15
andreas88 [HTML] come inserire 3 riquadri in un unico rigo (vedere img allegata) HTML e CSS 11
L [Javascript] Cliccare su mi piace per accedere a vedere la pagina Javascript 0
BullNoir [Compro] Tutto ciò che abbia a che vedere con la nicchia dei Single (no sex) Compravendita siti e domini 0
F Come posso vedere quanti likes ha una Pagina su Facebook in automatico? PHP 0
M vedere ip camera da remoto IP Cam e Videosorveglianza 2
Z Vedere SERP di Google ma senza personalizzazioni SEO e Posizionamento 2
M Wamp: vedere il proprio sito online? Hosting 3
T Tempo d'attesa per vedere la propria app pubblicata su Google Play Sviluppo app per Android 2
G Con Photoshop come faccio a ritagliare un immagine irregolare e quindi non vedere più la parte ester Photoshop 3
G Con photoshop cove si possono vedere delle immagini all'interno del software? Photoshop 1
ivarello Obbligare Utenti a vedere filmato Javascript 2
giancadeejay Impostare tempo per vedere un immagine nell'array. Javascript 2
emanuelevt Live che contiene post come faccio a fare vedere loading? Ajax 5
S jquery plugin per vedere foto e video problemi aiuto jQuery 0
M per far vedere tutte le righe nel modulo nn solo con id3 PHP 1
demoleus non riesco a vedere le immagini HTML e CSS 4
I xml vedere se nodo esiste PHP 0
R aggiornare pagina senza vedere caricamento PHP 2
T vedere un'immagine solo se è in offerta Classic ASP 17
I Non riesco a vedere i codici html Windows e Software 4
A vedere la pagina uguale con tutti i browser cerco tutorial HTML e CSS 2
M Perso codice html posso farvi vedere?!? HTML e CSS 4
D Cerco un programma per vedere le mie pagine html Discussioni Varie 1
G Vedere schermo in varie risoluzioni con Firefox? Windows e Software 0
I Vedere on line il contenuto di un file .xls? Classic ASP 0
S vedere in streaming un video HTML e CSS 2
M vedere la tele dal pc Windows e Software 0
I Vedere con pc e Mac. HTML e CSS 1
N webcast per vedere in anteprima WindowsVista Windows e Software 0
J Vedere l'ultima visita di un utente PHP 0
R vedere partizione linux Linux e Software 2
P Vedere IP da post scritti in forum Asp Classic ASP 3
T perchè non riesco a vedere tutte le tv cia pc? Discussioni Varie 1
Nik Come faccio vedere un video sul mio sito web?? HTML e CSS 6
S vedere XML in HTML XML 1
E Assolutamente Da Vedere Presenta il tuo Sito 1
L Non riesco a vedere i database sul mio sito Classic ASP 8
B Provate a vedere questo! Presenta il tuo Sito 0
R Non riesco a vedere i video HTML e CSS 4
peppoweb ALERT!: Si fa vedere il worm dell'11 Settembre Sicurezza e Virus 6
S Selezionare ultimo record di una sotto query MySQL 26
A Tabella con bottoni per aggiornamento record PHP 6
S Differenza date record successivi MS Access 7
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
S Aggiornamento lista record Database 2

Discussioni simili