Newsgroup: it.comp.www.php
Titolo: Query che parte da stringa.

Ciao a tutti.
Ho questo tipo di problema, devo creare uno script che, partendo da una
istruzione che parte dall'Utrl (che altro non è che la richiesta di una
query) faccia una successiva selezione in base ad alcuni parametri.
La query che arriva è questa: search.php?query=&topic=2
Io devo dire allo script:
Controlla il numero del topic (In questo caso 2), vai nella tabella, giuarda
che valore di topicauth corrisponde il topic numero 2(che è un'altro campo
della tabella).
Se il valore è 1, visulizza la pagina
Se il valore è 0 dai errore
Lo script che ho fatto io è il seguente:
<?
$sqlinterr = "select topiaut, from nuke_topics";
$sqlinterr.= "where topicid = topic";
if (topicaut == 1)
{echo "Non sei autorizzato";}
if (topicaut == 0)
{echo"pippo";}
?>
E' che il risultato è sempre pippo ... :-(
Sia che il topic sia con topicauth 1 che 0 :-(
Saluti
Cla
--------------------------------------------------------------------------
www.spaghettibrain.com
 PHPNuke Italiano - WEB PORTAL SYSTEM
www.claudioerba.com
 Consulenza web per l'Azienda

 ?>
ci credo che il risultato è sempre "pippo"!! Ma la query non la fai?
dovresti aprire la connessione al db, fare la query, prendere i risultati e
utilizzarli.
Se quello è lo script completo che hai fatto tu hai una variabile di testo
($sqlinterr) che contiene
"select topiaut, from nuke_topicswhere topicid = topic"
senza spazi tra "topics" e "where" e con una virgola di troppo.
Hai anche una "NON variabile" che si chiama "topicaut" (per essere una
variabile manca il dollaro) che sarà sempre falsa.
Se quello è tutto il tuo script ne devi leggere di pagine di manuale...
Se quello è solo un pezzo del tuo script... non si capisce nulla.
LAMASE


Ok, questo è lo script intero (e corretto) . Pensavo che dall'altro si
potesse capire.
Tieni conto che c'é un config.php che da già i paramentri del DB
CLA
<?php
if (!IsSet($mainfile)) { include ('mainfile.php'); }
include("config.php");
include("header.php");
mysql_connect($dbhost, $dbuname, $dbpass);
$sqlinterr = ("select topicaut from nuke_topics where topicid = $topic");
$res = mysql_db_query($dbname, $qlinterr);
if ($res == 1)
{echo "Non sei autorizzato";}
if ($res == 0)
{echo"pippo";}
?>
--


 {echo"pippo";}
dopo la query devi controllare il risultato con una funzione mysql_, xke'
mysql_db_query non torna 1 o 0 ...
Leggi nella documentazione su 
www.php.net
:
Returns: A positive MySQL result resource to the query result, or FALSE on
error.
FALSE On error vuole dire una query sbagliata (il server ritorna un errore),
non un empty record.
Quindi devi usare mysql_num_rows oppure mysql_fetch_*
BTW: Usa sempre die(mysql_error()) per capire error...

 potesse capire.
No, non si poteva capire =)
Prova a guardare qui
http://www.php.net/manual/en/function.mysql-db-query.php


Ok! Ce l'abbiamo fatta :-)
Questo č lo script Funzionante.
Thanks to Lamase and Jurgen
Saluti
Cla
<?php
if (!IsSet($mainfile)) { include ('mainfile.php'); }
include("config.php");
include("header.php");
$sqlinterr = ("select topicaut from nuke_topics where topicid = '$topic'");
$value = mysql_db_query($dbname, $sqlinterr);
$res = mysql_result($value, "topicaut");
if ($res == 1)
{echo "Non sei autorizzato";}
if ($res == 0)
{echo"pippo";}
?>
