Query php select mysql

  • Creatore Discussione Creatore Discussione monzon
  • Data di inizio Data di inizio

monzon

Nuovo Utente
20 Nov 2009
8
0
0
Ciao a tutti

ho un problema con la visualizzazione della query di mysql.
Riassumo velocemente il problema. Ho creato un sito per un hotel dove si registrano le varie consegne tra i reparti e tra i vari turni nel reparto stesso
Il sito è www.nica.dmw.it/consegne/monza
In locale riesco a visualizzare tutto correttamente nel frame che voglio. Ma quando pubblico il tutto riesco solo ad inserire la consegna ma non mi da la possibilità di cliccare sulla data del calendario per visualizzare ciò che inserisco. Consideriamo che se eseguo una query direttamente in mysql riesco a visualizzare tutto ciò che ho inserito nel sito. Lo script del calendario è il seguente:
<?php
function ShowCalendar($m,$y)
{
if ((!isset($_GET['d']))||($_GET['d'] == ""))
{
$m = $m;
$y = $y;
}else{
$m = (int)@strftime( "%m" ,(int)$_GET['d']);
$y = (int)@strftime( "%Y" ,(int)$_GET['d']);
$m = $m;
$y = $y;
}

$precedente = @mktime(0, 0, 0, $m -1, 1, $y);
$successivo = @mktime(0, 0, 0, $m +1, 1, $y);

$nomi_mesi = array(
"Consegne Gennaio",
"Consegne Febbraio",
"Consegne Marzo",
"Consegne Aprile",
"Consegne Maggio",
"Consegne Giugno",
"Consegne Luglio",
"Consegne Agosto",
"Consegne Settembre",
"Consegne Ottobre",
"Consegne Novembre",
"Consegne Dicembre"
);

$nomi_giorni = array(
"Lun",
"Mar",
"Mer",
"Gio",
"Ven",
"Sab",
"Dom"
);

$cols = 7;
$days = @date("t",@mktime(0, 0, 0, $m, 1, $y));
$lunedi= @date("w",@mktime(0, 0, 0, $m, 1, $y));
if($lunedi==0) $lunedi = 7;

echo "<table>\n";
echo "<tr>\n
<td colspan=\"".$cols."\">
<a href=\"?d=" . $precedente . "\">&lt;&lt;</a>
" . "<b>$nomi_mesi[$m]</b>" . " " . "<b>$y</b>" . "
<a href=\"?d=" . $successivo . "\">&gt;&gt;</a></td></tr>";
foreach($nomi_giorni as $v)
{
echo "<td><b>".$v."</b></td>\n";
}
echo "</tr>";

for($j = 1; $j<$days+$lunedi; $j++)
{
if($j%$cols+1==0)
{
echo "<tr>\n";
}

if($j<$lunedi)
{
echo "<td> </td>\n";
}else{
$day= $j-($lunedi-1);
$data = @strtotime(@date($y."-".$m."-".$day));
$oggi = @strtotime(@date("Y-m-d"));
@include 'config.php';
$sql = "SELECT str_data FROM appuntamenti";
$result = @mysql_query($sql) or die (mysql_error());
if(@mysql_num_rows($result) > 0)
{
while($fetch = @mysql_fetch_array($result))
{
$str_data = $fetch['str_data'];
if ($str_data == $data)
{
$day = "<a href=\"consegne\monza\appuntamenti.php?day=$str_data\" target=\"mainFrame\">$day</a>";

}
}
}

if($data != $oggi)
{
echo "<td>".$day."</td>";
}else{
echo "<td><b>".$day."</b></td>";
}
}

if($j%$cols==0)
{
echo "</tr>";
}
}
echo "<tr></tr>";
echo "</table>";
}

@mysql_close();
@ShowCalendar(@date("m"),@date("Y"));

?>
<body bgcolor="#FFBB77" text="#000000" link="#000000" vlink="#000000" alink="#000000">
<p align="center"> </p>


Mentre lo script per la visualizzazione del giorno è il seguente:

<body bgcolor="#FFBB77" text="#000000" link="#000000" vlink="#000000" alink="#000000">
<?php
if(@isset($_GET['day']) && @is_numeric($_GET['day']))
{
$day = $_GET['day'];
@include 'config.php';
$sql = "SELECT * FROM appuntamenti WHERE str_data=$day";
$result = @mysql_query($sql) or die (mysql_error());
if(@mysql_num_rows($result) > 0)
{
while($fetch = @mysql_fetch_array($result))
{
$id = @stripslashes($fetch['id']);
$titolo = @stripslashes($fetch['titolo']);
$testo = @stripslashes($fetch['testo']);
$data = @date("d-m-Y", $fetch['str_data']);
echo "CONSEGNE DEL <b>$data</b><br>" . "<b>$titolo</b>" . "<br>" . $testo . "<br>
<a href=\"modifica.php?id=$id\">Modifica della Consegna</a>
<hr>";
}
@mysql_close();
}
}
?>
Grazie a tutti coloro che vorranno aiutarmi
 
Warning: mysql_close(): no MySQL-Link resource supplied in C:\Inetpub\vhosts\dmw.it\subdomains\nica\httpdocs\consegne\splendori\calendario.consegne.php on line 107


ecco la risposta...
 
ciao
non so se sia questo, ma indentando tutto lo script (per capire dove inizia/finisce qualcosa) mi sembra che mysql_close() sia fuori della funzione ShowCalendar quindi sembrerebbe che non prenda le variabili di connessione
dato che usualmente il db si chiude automaticamente alla chiusura della pagina io proverei a toglierlo (commentalo e prova), oppure prova a portarlo dentro la funzione

se per caso risolvi fallo sapere
 
ma io non capisco come mai in locale funziona tutto alla grande e invece se il sito viene pubblicato la query INSERT funziona e invece quella SELECT no...proverò a fare come dici...intanto ti ringrazio per il consiglio e spero che tu possa aiutarmi ancora di più...ad esempio come lo scriveresti il tuo consiglio?

grazie ancora
 
volevo chiederti a che punto lo metteresti tu il mysql_close...

se prendi il mio script e lo modifichi mi faresti davvero felice
 
ciao
io non lo metterei
per quanto riguarda la seconda domanda non è semplice in quanto dovrei capire quello che devi fare (e sembrerebbe uno script alquanto lunghetto)

comunque provo a darci un occhio poi ti so (forse) dire.
una domanda parli di INSERT, ma non lo vedo
 
infatti non postato l'insert che si trova in un normalissimo form e funziona perfettamente...infatti vado a controllare in phpmyadmin per controllare se la query è stata eseguita correttamente, e tutto risulta inserito alla grande...il problema non è nell'INSERT ma nella query SELECT quindi il file calendario.consegne.php e appuntamenti.php

il sito è composto dai seguenti file:
config.php = incluso in tutti gli script per le variabili di connessione
calendarioconsegne.php = permette di visualizzare il calendario (ingrassetto viene segnalata la data del giorno e la sottolineatura significa che ci sono degli appuntamenti/consegne quel giorno)
appuntamenti.php = serve per la visualizzazione degli appuntamenti selezionati nel calendario
form.php = form per l'inserimento dell'appuntamento/consegna

ti allego anche i 3 file che ti ho detto...lo script config.php non lo invio anche perchè funziona benissimo visto che riesco ad inserire perfettamente

grazie ancora
 

Allegati

ho eliminato il problema..l'errore non viene più visualizzato ma purtroppo non riesco lo stesso ad eseguire la query SELECT cioè non riesco a visualizzare cliccando sul giorno del calendario ciò che ho precedentemente inserito tramite il form.
per non visualizzare più il problema ho eliminato la stringa mysql_close

Come mai non riesco a visualizzare la query SELECT?
 

Discussioni simili