[risolto] Select non funziona dopo 8 record

mauro81

Nuovo Utente
29 Nov 2013
15
0
0
Salve sono nuovo del forum ed avrei un problema che mi spacca la testa da giorni...
Ho un codice che mi permette di inserire in un database dei dati, premendo il tasto submit effetto l'operazione INSERT e concludo con un header('Location: ?news) che mi aggiorna la pagina mostrandomi tutte le news attraverso una SELECT.

Il codice funziona per 8 record e poi non mostra più le notizie appena inserite (SEBBENE VENGANO INSERITE).
Per vederle devo effettuare sul click sul link della pagina stessa in quel modo vedo tutte le notizie....AIUTO!

CODICE PER RECUPERARE LE NEWS
PHP:
<?php
include_once '../../includes/magicquotes.inc.php';

if(isset($_GET['news'])) {
include_once '../includes/db.inc.php';
try
 {
    $listQuery = $pdo->prepare("SELECT  id, newsTitle, newsText, newsDate FROM news");
   $listQuery->execute();
  }
  catch (PDOException $e)
  {
    $error = 'Error searching for news.';
    include '../includes/error.html.php';
    exit();
  }
  
foreach ($listQuery as $listRow){
$newsList[] = array(
'id'=> $listRow['id'],
'newsTitle' => $listRow['newsTitle'],
'newsText' => $listRow['newsText'],
'newsDate' => $listRow['newsDate']);
	}
include 'newsList.inc.php';
}

if(isset($_POST['action']) and $_POST['action'] == 'Elimina') {
include_once '../includes/db.inc.php';
try
 {catch(PDOException $e)
{
$error = 'Error deleting news.';
    include '../includes/error.html.php';
    exit();
}
header('Location: ?news'); 
}


CODICE PER INSERIRE NEWS
PHP:
if(isset($_POST['action']) and $_POST['action'] == 'Inserisci') {
	include_once '../includes/db.inc.php';
try
 {
$insertSQL = $pdo->prepare("INSERT INTO news SET 
newsTitle = :newsTitle, 
newsText = :newsText");
$insertSQL->bindValue(':newsTitle', $_POST['newsTitle']);
$insertSQL->bindValue(':newsText', $_POST['newsText']);
$insertSQL->execute();
}
catch(PDOException $e)
{
$error = 'Error adding news.';
    include '../includes/error.html.php';
    exit();
}
header('Location: ?news'); 
}


FILE PER VISUALIZZARE LE NOTIZIE

PHP:
 <?php 
    session_start();
  require_once '../includes/access.inc.php';
  require_once '../includes/helpers.inc.php';
if(!isset($_SESSION['loggedIn'])) {
	header('Location: ../');
}
?>  
<div id="news">
<center><h3>Elenco notizie:</h3></center>
<div id="addNews" onclick="addNews()">  <h4>Aggiungi una nuova notizia...</h4>    </div>
<div id="insertNews">
 <form action="" method="post" > 
<table>
<tbody>
<tr><td><label for="newsTitle">Titolo:</label></td>
<td><input type="text" name="newsTitle" maxlength="255"></td></tr>
<tr>
<td>
<label for="newsText">Scrivi la notizia:</label> </td>
<td><textarea type="text" cols="40" rows="3" name="newsText"> </textarea></td>
</tr>
<tr><td>
<input type="hidden" name="action" value="upload">
<input type="submit" id="submit" name="action" class="option" value="Inserisci"></td>
<td><div class="option" onclick="addNews()">Annulla</div></td></tr>

</tbody>
</table>
</form>
</div>

<?php
session_start(); 
require_once '../includes/helpers.inc.php'; 
 require_once '../includes/access.inc.php';?>
<?php foreach($newsList as $newEl):
?>
<div class="newsCont">
<form action="" method="post" >
<div class="newsDate"><?php htmlout(date('d/m/Y', strtotime($newEl['newsDate'])));?></div>  
<div class="newsTi"> <?php htmlout($newEl['newsTitle']); ?></div>
<div class="newsTX"> <?php htmlout($newEl['newsText']); ?></div>
</div>
<input type="hidden" name="id" value= "<?php htmlout($newEl['id']); ?>">
<input type="submit"  name="action" class="elimina" value="Elimina">
</form>
<?php endforeach;?>

</div>
 
Ultima modifica di un moderatore:

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Ciao e benvenuto!

Ad occhio, ti suggerirei di fare questa aggiunta nella prima porzione di codice che hai copiato:
PHP:
try
{
$listQuery = $pdo->prepare("SELECT id, newsTitle, newsText, newsDate FROM news");
$listQuery->execute();

#> Aggiunta
$listQuery = $listQuery->fetchAll(PDO::FETCH_ASSOC);

}
catch (PDOException $e)
{
$error = 'Error searching for news.';
include '../includes/error.html.php';
exit();
}


Fammi sapere come va.
 

mauro81

Nuovo Utente
29 Nov 2013
15
0
0
risposta

Ho aggiunto...avevo già provato, ma il problema persiste.
Lo stesso avviene in fase di eliminazione della news...è come se l'istruzione header('Location: ?news') venisse eseguita prima che venga effetuato l'aggiornamento...
Questo avviene solo dopo l'8 news, prima funziona perfettamente.
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Per cominciare, il codice di inserimento e di cancellazione delle news sono nello stesso files che le legge dal db giusto? allora ti suggerisco di metterli prima del select, così eviti una query inutile durante quelle richieste.

Secondariamente, aggiungi un var_dump su $listQuery e vediamo che cosa esce effettivamente dalla query.


Edit: ho notato un errore di sintassi qui:
PHP:
if(isset($_POST['action']) and $_POST['action'] == 'Elimina') {
include_once '../includes/db.inc.php';
try
{catch(PDOException $e)
{
$error = 'Error deleting news.';
include '../includes/error.html.php';
exit();
}
header('Location: ?news');
}

aggiungi l'altra graffa:

try
{}catch..
 
Ultima modifica:

mauro81

Nuovo Utente
29 Nov 2013
15
0
0
risolto!!!

GRANDE! risolto.
il problema era nella posizione del codice relativo al SELECT.
L'ho sposato in fondo al codice ed ora funziona perfettamente!
GRAZIE MILLE.
:byebye:
 

mauro81

Nuovo Utente
29 Nov 2013
15
0
0
come chiudo?

...scusate ma come faccio a chiudere la discussione e aggiungere [risolto] al titolo?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao mauro
ricordati di racchiudere sempre il codice tra gli appositi tag
seconda riga formattazione del post, ultime tre iconcine nell'ordine CODE, HTML, PHP
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
GRANDE! risolto.
il problema era nella posizione del codice relativo al SELECT.
L'ho sposato in fondo al codice ed ora funziona perfettamente!
GRAZIE MILLE.
:byebye:

In verità ci sono arrivato dopo al problema reale, riguardando meglio il codice: ti scrivo il motivo per cui non funzionava, magari ti torna utile per evitare errori simili in futuro :fonzie:

Sostanzialmente, nel momento in cui inviavi il modulo per l'inserimento di una news, in ordine, partiva prima la query di select e successivamente l'include del template newsList che te li visualizzava, di conseguenza la scrittura partiva dopo la visualizzazione.

In questo caso il redirect tramite header nella routine di scrittura non funzionava e quindi non c'era il ricaricamento della pagina che avrebbe dovuto permettere alla select la raccolta dei nuovi messaggi, questo perché gli header possono essere inviati al browser soltanto prima di un qualsiasi altro output.


Questo è tutto, un saluto e alla prossima :byebye:
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
Monital [risolto] insert into if select non presente MySQL 7
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
G [risolto] MySql, SELECT, GROUP BY e COUNT MySQL 6
G [risolto] Multi select Javascript 4
S [risolto] Aiuto: ciclo php ( for / while). popolare select dinamicamente da array id. PHP 9
F [RISOLTO]Php form select PHP 9
Virginia86 [risolto] Problema select e verifica form PHP 38
S [RISOLTO]invio form con select onchange Javascript 2
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1

Discussioni simili