[PHP]

Achille610@

Utente Attivo
18 Apr 2017
75
0
6
51
Ciao a tutti,
spero che qualcuno possa riuscire a farmi capire che succede, utilizzo questo codice per le immagini dei miei siti e non è mai successo, ieri ne ho iniziato uno nuovo e a differenza delle altre volte mi viene sempre fuori id=99 al posto dell'id che passa la url !!!

la cosa strana che la query del listato mi possa correttamente titolo ecc compresa la foto

PHP:
<?php
//includiamo il file della classe
@require("paginazione.php");

//connettiamoci a MySQL e selezioniamo il database
class MySQL
{ 
function MySQL() 
{ 
require "db_connect.php";
} 
} 

$data = new MySQL();

// istanziamo la classe per l'impaginazione
$p = new Paging;

// numero massimo di risultati per pagina
$max = 6;

// identifichiamo la pagina da cui iniziare la numerazione
$inizio = $p->paginaIniziale($max);


// contiamo i records nel database
// contiamo i records nel database
$query_count = @mysql_query(
"SELECT * FROM
     caprette INNER JOIN pippo ON (caprette.pippoid=pippo.id )
     INNER JOIN pluto ON (caprette.plutoid=pluto.id )
     INNER JOIN users ON (caprette.user_id=users.id)
      
WHERE
 pippo.pippo='minnie' AND pluto.pluto='paperino' ORDER BY `id_annunci` DESC ")
  
     or die (mysql_error());
$count = @mysql_num_rows($query_count) or die (mysql_error());

// troviamo il numero delle pagine che dovr� essere contato
$pagine = $p->contaPagine($count, $max);

// limitiamo la SELECT al numero di risultati per pagina
$obj_titolo = @mysql_query(
"SELECT * FROM
     caprette INNER JOIN pippo ON (caprette.pippoid=pippo.id )
     INNER JOIN pluto ON (caprette.plutoid=pluto.id )
     INNER JOIN users ON (caprette.user_id=users.id)
      
WHERE
 pippo.pippo='minnie' AND pluto.pluto='paperino' ORDER BY `id_annunci` DESC LIMIT ".$inizio.",".$max) or die (mysql_error());


//recuperiamo i dati da stampare


while ($row = mysql_fetch_array($obj_titolo)) { 

$click_annuncio = $row['click_annuncio'];
$id_annunci = $row['id_annunci'];
$user_id = $row['id'];
 
  $messaggio = substr($row['messaggio'], 0, 100); 
  $mq = $row['mq']; 
  $tipologia = $row['tipologia'];
  $titolo = $row['titolo'];
     $tipo = $row['tipo'];
   $locali = $row['locali'];
  $username = $row['username'];
          
   $nome_file = $row['nome_file'];
  $tipo_file = $row['tipo_file'];
  $dati_file = $row['dati_file'];
  
 

// stampiamo i nostri dati


        echo "  <p><a href=\"https://prova.net/pippo/pluto/risultato.php?id=$id_annunci\"/><img src='immagini2ricette.php?id_annunci=$id_annunci' name='$nome_file' alt'$nome_file' title='$titolo' class='img-responsive'  /></a></p>";
    
          
}


//mostriamo le pagine
$lista = $p->listaPagine($_GET['p'], $pagine);
echo $lista . "<br>";

//mostriamo il navigatore Precedente/Successiva
$navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine);
echo $navigatore;
?>

quando clicco su <a href=\"https://prova.net/pippo/pluto/risultato.php?id=$id_annunci\ solitamente vado alla notizia e trovo tutti i dati, e la foto con l'id corretto, in questo caso i dati me li passa correttamente ma l'immagine non si carica e se provo ad aprirla mi da sempre id=99

qualcuno sa dirmi quale potrebbe essere il problema oppure che controllo potrei fare per capire, visto che con gli altri siti non mi capita e mi da tutto correttamente :( :(

immagini.php (con questo estraggo l'immagine a video)

PHP:
<?php 

require ("db_connect.php"); 

$query = "SELECT * FROM pompe WHERE id_annunci = '".$_GET['id_annunci']."' ";   

$arrResult = mysql_fetch_array(mysql_query($query));   

header("Content-type: ".$arrResult['tipo_file']);   
echo $arrResult['dati_file']; 

// da questo punto in poi non deve esserci nient'altro 
?>
 
Ultima modifica di un moderatore:
dimenticavo i dati nella pagina del risultato li passo con questa query


PHP:
<?php

require ("db_connect.php"); 

$id_annunci=$_GET['id'];


$query = mysql_query (
"SELECT * FROM
     caprette INNER JOIN pippo ON (caprette.pippoid=pippo.id )
     INNER JOIN pluto ON (caprette.plutoid=pluto.id )
     INNER JOIN users ON (caprette.user_id=users.id)
       WHERE id_annunci=$id_annunci LIMIT 1"); 



if (!$query) {
  exit('<p>Error performing query: ' . mysql_error() . '</p>');
}


while ($row = mysql_fetch_array($query)) {
$user_id = $row ['id'];
$titolo = $row ['titolo'];
$id_annunci = $row ['id_annunci'];
$click_annuncio = $row ['click_annuncio'];
$messaggio = substr($row['messaggio'], 0, 10000); 
 $cittas = $row ['cittas'];
  $via = $row ['via'];
 
 $nome_file2 = $row ['nome_file2'];
  $tipo_file2 = $row ['tipo_file2'];
  $dati_file2 = $row ['dati_file2'];
$time = $row ['time'];
} 
?>
 
Quando si apre una nuova discussione bisogna inserire un titolo esplicativo del contenuto della discussione come da regolamento del forum che dovresti leggere attentamente
 
ciao
non è semplice dirti dove si genera l'errore, bisognerebbe provare lo script creandosi il db.
intanto dovresti vedere sul browser passando il mouse sopra i link se l'id è corretto, cioe dovresti vedere esempio
https://prova.net/pippo/pluto/risultato.php?id=32 o altro id
poi netti dei var_dump appena prima di dove usi la variabile in modo da capire dove sia annida l'errore
 
Ho fatto il var_dump e la cosa allucinante è:

<?php echo "<img src='immagini2.php?id_annunci=$id_annunci' name='$nome_file' alt'$nome_file' title='$titolo' class='img-responsive' /><br /><br />";?>
<?php echo var_dump($id_annunci)."<br>";?>

mi restituisce sempre questo id 99 che non c'è neanche nel db, mentre la url a l'id corretto es: https://prova.net/pippo/pluto/risultato.php?id=6
 
ciao
dovresti fare una prova
chiama la pagina dove hai
PHP:
//....
 echo "  <p><a href=\"https://prova.net/pippo/pluto/risultato.php?id=$id_annunci\"/><img src='immagini2ricette.php?id_annunci=$id_annunci' name='$nome_file' alt'$nome_file' title='$titolo' class='img-responsive'  /></a></p>";
//...
e guarda il sorgente della pagina dovresti vedere qualcosa del genere
HTML:
....
<p><a href="https://prova.net/pippo/pluto/risultato.php?id=22"/><img src='immagini2ricette.php?id_annunci=22' name='pinco' alt'$nome_file' title='pinco' class='img-responsive'/></a></p>
<p><a href="https://prova.net/pippo/pluto/risultato.php?id=23"/><img src='immagini2ricette.php?id_annunci=23' name='pallo' alt'pallo' title='pinco' class='pallo'/></a></p>
...
comunque una cosa: dici che estrai le immagini da un file chiamato immagini.php, ma non vedo dove tu richiami tale file
 
ciao il file lo richiamo con
img src='immagini2ricette.php?


dovresti fare una prova
chiama la pagina dove hai ... cosa intendi ????????
se intendi di scrivere la url a mano funziona, nel senso che quando mi restituisce https://prova.net/pippo/pluto/risultato.php?id=99 se io al posto di 99 metto l'id corretto mi tira fuori la foto...

la cosa strana é che con la stessa query ecc su un'altro dominio funziona correttamente
 
se intendi questa:

PHP:
<?php
//includiamo il file della classe
@require("paginazione.php");

//connettiamoci a MySQL e selezioniamo il database
class MySQL
{
function MySQL()
{
require "db_connect.php";
}
}

$data = new MySQL();

// istanziamo la classe per l'impaginazione
$p = new Paging;

// numero massimo di risultati per pagina
$max = 6;

// identifichiamo la pagina da cui iniziare la numerazione
$inizio = $p->paginaIniziale($max);


// contiamo i records nel database
// contiamo i records nel database
$query_count = @mysql_query(
"SELECT * FROM
     caprette INNER JOIN pippo ON (caprette.pippoid=pippo.id )
     INNER JOIN pluto ON (caprette.plutoid=pluto.id )
     INNER JOIN users ON (caprette.user_id=users.id)
     
WHERE
 pippo.pippo='minnie' AND pluto.pluto='paperino' ORDER BY `id_annunci` DESC ")
 
     or die (mysql_error());
$count = @mysql_num_rows($query_count) or die (mysql_error());

// troviamo il numero delle pagine che dovr� essere contato
$pagine = $p->contaPagine($count, $max);

// limitiamo la SELECT al numero di risultati per pagina
$obj_titolo = @mysql_query(
"SELECT * FROM
     caprette INNER JOIN pippo ON (caprette.pippoid=pippo.id )
     INNER JOIN pluto ON (caprette.plutoid=pluto.id )
     INNER JOIN users ON (caprette.user_id=users.id)
     
WHERE
 pippo.pippo='minnie' AND pluto.pluto='paperino' ORDER BY `id_annunci` DESC LIMIT ".$inizio.",".$max) or die (mysql_error());


//recuperiamo i dati da stampare


while ($row = mysql_fetch_array($obj_titolo)) {

$click_annuncio = $row['click_annuncio'];
$id_annunci = $row['id_annunci'];
$user_id = $row['id'];
 
  $messaggio = substr($row['messaggio'], 0, 100);
  $mq = $row['mq'];
  $tipologia = $row['tipologia'];
  $titolo = $row['titolo'];
     $tipo = $row['tipo'];
   $locali = $row['locali'];
  $username = $row['username'];
         
   $nome_file = $row['nome_file'];
  $tipo_file = $row['tipo_file'];
  $dati_file = $row['dati_file'];
 
 

// stampiamo i nostri dati


        echo "  <p><a href=\"https://prova.net/pippo/pluto/risultato.php?id=$id_annunci\"/><img src='immagini2ricette.php?id_annunci=$id_annunci' name='$nome_file' alt'$nome_file' title='$titolo' class='img-responsive'  /></a></p>";
   
         
}


//mostriamo le pagine
$lista = $p->listaPagine($_GET['p'], $pagine);
echo $lista . "<br>";

//mostriamo il navigatore Precedente/Successiva
$navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine);
echo $navigatore;
?>

questa restituisce tutto correttamente, l'id me lo perde quando cliccli sul link echo " <p><a href=\"https://prova.net/pippo/pluto/risultato.php?id=$id_annunci\"/><img src='immagini2ricette.php?id_annunci=$id_annunci' name='$nome_file' alt'$nome_file' title='$titolo' class='img-responsive' /></a></p>";


che mi porta a questa pagina :(

PHP:
<?php

require ("db_connect.php");

$id_annunci=$_GET['id'];


$query = mysql_query (
"SELECT * FROM
     caprette INNER JOIN pippo ON (caprette.pippoid=pippo.id )
     INNER JOIN pluto ON (caprette.plutoid=pluto.id )
     INNER JOIN users ON (caprette.user_id=users.id)
       WHERE id_annunci=$id_annunci LIMIT 1");



if (!$query) {
  exit('<p>Error performing query: ' . mysql_error() . '</p>');
}


while ($row = mysql_fetch_array($query)) {
$user_id = $row ['id'];
$titolo = $row ['titolo'];
$id_annunci = $row ['id_annunci'];
$click_annuncio = $row ['click_annuncio'];
$messaggio = substr($row['messaggio'], 0, 10000);
 $cittas = $row ['cittas'];
  $via = $row ['via'];
 
 $nome_file2 = $row ['nome_file2'];
  $tipo_file2 = $row ['tipo_file2'];
  $dati_file2 = $row ['dati_file2'];
$time = $row ['time'];
}
?>


questo non capisco come mai, visto che l'id che si porta dietro è corretto, tranne quello della foto

curiosità potrebbe essere un errore dato dalla versione del php, cisto che ho aggiornato l'altro giorno l'hosting e mi sa che sono passato alla versione 5.5[/PHP]
 
Ultima modifica di un moderatore:
ciao
si intendo quella (almeno la prima parte perchè sembrerebbero due file staccati) comunque quella in cui, come detto, hai echo " <p><a href=\"https://prova.net...ecc..
guardando col browser il codice sorgente dovresti vedere come si è formato l'html e se non c'è quel 99
 
ciao
prova a mettere un echo per verificare i valori di id_annunci che poi dovresti trovare nel link e guarda cosa risulta
PHP:
//.........
while ($row = mysql_fetch_array($obj_titolo)) {
    $click_annuncio = $row['click_annuncio'];
    echo $row['id_annunci']."<br>";//poi questa riga la togli
    $id_annunci = $row['id_annunci'];
    $user_id = $row['id'];
//..ecc.....
se li risulta solo 99 l'errore è probabilmente nella query
 
mi da id 6 correttamente

che strana sta cosa :( ripeto sugli altri funziona qui non si porta dietro l'id solo della foto
 
ciao
un momento "correttamente"?
da quello che vedo sei all'interno di un while quindi ti da 6 se hai un record solo e con id=6, ma se ne hai più di uno dovrebbe presentarti tanti idi quanti devono risultare dalla paginazione, esempio
 
hai ragione, io avevo capito che dovevo metterla nella pagina che mi restituisce il risultato, se la metto nella quelli della paginazione il risultato è: id=1 2 3 4 5 6 7 8 ecc ecc
 
Giorno a tutti, nessuno riesce a capire cosa possa succedere :( io continuo a provare e riprovare, il listato della paginazione è corretto e riporta gli id del titolo foto ecc correttamente, solo la pagina del risultato mi da questo errore non capisco proprio cosa possa succedere, anche il titolo della foto è corretto, solo l'immagine sempre id99
 
ciao
per prima cosa nella pagina risultato.php metti un var_dump
PHP:
<?php
require ("db_connect.php");
$id_annunci=(int)$_GET['id'];//forzalo ad intero
var_dump($id_annunci);
//....
?>
e se nella pgina che rihiama clicchi sul link es.
<a href="https://prova.net/pippo/pluto/risultato.php?id=7"/>....
il var_dump dovrebbe riportarti 7
poi sempre nella pagina risultato.php dato che estrai un solo record
modifica la query nel where devi dirgli in che tabella andare a a prendere id_annunci (io ho messo caprette ma devi saperlo tu), e togli il LIMIT perche immagino che id_annunci sia unico (una primarykey?)
PHP:
<?php
///....
$query = mysql_query (
"SELECT * FROM
     caprette INNER JOIN pippo ON (caprette.pippoid=pippo.id )
     INNER JOIN pluto ON (caprette.plutoid=pluto.id )
     INNER JOIN users ON (caprette.user_id=users.id)
       WHERE caprette.id_annunci=$id_annunci");

//....
?>
e dato che estrai comunque solo un record (così almeno mi sembra) non usare il while
PHP:
<?php
//....
$row = mysql_fetch_array($query);
$user_id = $row ['id'];
//...ecc...
?>
 
Ciao,
grazie mille per la risposta..

Allora il giallo si infittisce e ripeto che con tutti gli altri siti funzionava correttamente :(

Ho apportato le modifiche che mi hai detto:

PHP:
<?php
require ("db_connect.php");
$id_annunci=(int)$_GET['id'];//forzalo ad intero
var_dump($id_annunci);
//....
?>

 WHERE caprette.id_annunci=$id_annunci");  "ovviamente ho messo il nome corretto al posto di caprette"

[PHP/]

Restituisce correttamente id 9 mentre la foto sempre id 99

ma che cavolo può essere sto impazzendo
 

Allegati

  • vurdump.png
    vurdump.png
    3,9 KB · Visite: 157

Discussioni simili