Problema con $_GET

  • Creatore Discussione Creatore Discussione Allison
  • Data di inizio Data di inizio
credo che il cancelletto # dia fastidio a mysql

prova toglierlo dalle tabelle e mettilo piuttosto nell html se proprio devi metterlo
 
Ok sono riuscita ad eliminare il cancelletto, mi appare la lista dei canali ma qndo ci clicco su, pagina vuota invece del singolo risultato. Qualche idea?

PHP:
<?php
require_once '123login.php';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());

mysql_select_db($db_database)
or die("Unable to select database: " . mysql_error());

$query = (" (SELECT chanid, channel FROM chan WHERE 1=1) UNION (SELECT currentusers, channel FROM chan LIMIT 1) ");
if (isset($_GET['id']) && is_numeric($_GET['id'])) {

   $query.= " && chanid = " . $_GET['id'] . "";
}

$query.= " ORDER BY channel ASC";

$result = mysql_query($query);

if (!$result) die ("Accesso al database fallito: " . mysql_error());
$rows = mysql_num_rows($result);

for ($j = 0; $j < $rows; ++$j) {
    $row = mysql_fetch_row($result);
    if (!$_GET) {
     $data1=trim($row[1],"#");
        echo '<a href="?id=' . $data1 . '">' . $row[1] . '</a><br/><br/>';
    } else {
        echo $row[2];
    }
}
?>
 
Ciao,

io intendevo toglierlo dal db

cmq prova cambiando questo:
PHP:
$query.= " && chanid LIKE '%" . $_GET['id'] . "'";

Usa LIKE al posto di =
Attenta agli apici
 
stampa la query

echo $query;

ora che vedo "qnt" è scritto nell'html

la query non ti da nessun risultato

ci deve essere qualche errore
stampa la query e posta il codice
 
Ultima modifica:
PHP:
(SELECT chanid, channel FROM chan WHERE 1=1) UNION (SELECT currentusers, channel FROM chan LIMIT 1) ORDER BY channel ASC

PHP:
<?php
require_once '123login.php';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());

mysql_select_db($db_database)
or die("Unable to select database: " . mysql_error());


$query = (" (SELECT chanid, channel FROM chan WHERE 1=1) UNION (SELECT currentusers, channel FROM chan LIMIT 1) ");
if (isset($_GET['id']) && is_numeric($_GET['id'])) {

   $query.= " && chanid LIKE '%" . $_GET['id'] . "'";
}

$query.= " ORDER BY channel ASC";

$result = mysql_query($query);

if (!$result) die ("Accesso al database fallito: " . mysql_error());
$rows = mysql_num_rows($result);

for ($j = 0; $j < $rows; ++$j) {
    $row = mysql_fetch_row($result);
    if (!$_GET) {
     $data1=trim($row[1],"#");

        echo '<a href="?id=' . $data1 . '">' . $row[1] . '</a><br/><br/>';
    } else {
        echo $row[2];
    }
}


?>
 
non capisco perche hai fatto una union sulla stessa tabella

cmq è sbagliata

Senza union
PHP:
$query = "SELECT chanid, channel, currentusers FROM chan
                 WHERE 1=1";
if (isset($_GET['id']) && is_numeric($_GET['id'])) {

    $query.= " && chanid LIKE '%" . $_GET['id'] . "'";
}

$query.= " ORDER BY channel ASC";

$result = mysql_query($query);

echo $query;
 
Perchè a me serve solo il currentuser del singolo channel, pensavo di limitarlo a 1. Mettendola come dici tu, beh vedi l'effetto mi da tutti i risultati :(
 
metti
echo $query;
cosi vediamo anche la query
 
devi togliere questo

&& is_numeric($_GET['id'])

perchè channel non è numerico
 
Sei sicura di non aver tolto altro?

PHP:
<?php

require_once '123login.php';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if (!$db_server)
    die("Unable to connect to MySQL: " . mysql_error());

mysql_select_db($db_database)
        or die("Unable to select database: " . mysql_error());

$query = "SELECT chanid, channel, currentusers FROM chan
                 WHERE 1=1";
if (isset($_GET['id'])) {
    $query.= " && chanid LIKE '%" . $_GET['id'] . "'";
}

$query.= " ORDER BY channel ASC";

$result = mysql_query($query);

if (!$result)
    die("Accesso al database fallito: " . mysql_error());
$rows = mysql_num_rows($result);

for ($j = 0; $j < $rows; ++$j) {
    $row = mysql_fetch_row($result);
    if (!$_GET) {
        $data1 = trim($row[1], "#");

        echo '<a href="?id=' . $data1 . '">' . $row[1] . '</a><br/><br/>';
    } else {
        echo $row[2];
    }
}
?>

Pagina bianca significa errore nel codice

o errore nell inclusione di altri file
 
riposta il codice

assicurtati di aver messo echo $query;
 
Al posto della percentuale nn ci va il cancelletto?
Codice:
SELECT chanid, channel, currentusers FROM chan WHERE 1=1 && chanid LIKE '%italia' ORDER BY channel ASC


PHP:
<?php

require_once '123login.php';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if (!$db_server)
    die("Unable to connect to MySQL: " . mysql_error());

mysql_select_db($db_database)
        or die("Unable to select database: " . mysql_error());

$query = "SELECT chanid, channel, currentusers FROM  chan
                 WHERE 1=1";
if (isset($_GET['id'])) {
    $query.= " && chanid LIKE '%" . $_GET['id'] . "'";
}

$query.= " ORDER BY channel ASC";

$result = mysql_query($query);

if (!$result)
    die("Accesso al database fallito: " . mysql_error());
$rows = mysql_num_rows($result);
echo $query;
for ($j = 0; $j < $rows; ++$j) {
    $row = mysql_fetch_row($result);
    if (!$_GET) {
        $data1 = trim($row[1], "#");

        echo '<a href="?id=' . $data1 . '">' . $row[1] . '</a><br/><br/>';
    } else {
        echo $row[2];
    }
}
?>
 
ho risolto! in pratica ho cambiato:
PHP:
&& chanid LIKE '%"
con
PHP:
&& channel LIKE '#"

Grazie cri ^_^
 

Discussioni simili