[RISOLTO]PDO if per "non ci sono dati"

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, perché in questo casino di codice non mi funziona l'if?

Mi fa vedere sempre la paginazione e non scrive "No data";

ecco il codice:
PHP:
$data = $crud->rawSelect('SELECT * FROM rubrica '.$pages->get_limit());
	if($row = $data->fetch()) // qui doveva farmi vedere no data quando scrivero l'id della paginazione e far uscire il messaggio "No data"
	{
	while($row = $data->fetch())
    {
	 echo $row["nome"].''.$row["cognome"].'<br />';
     echo '<hr />';
    }
	echo $pages->page_links();
}else
{
  echo "no data";
}

paginazione:
https://github.com/daveismyname/pagination

crud class: http://www.phpro.org/classes/PDO-CRUD.html

senza l'if funziona normalmente e fa la paginazione etc.. ma voglio mettere il controllo per dire che quando
uno mano mette l'id p=10 e che non c'è dati fa venire "no data".

idee?

grazie mille.
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
nessuno sa come fare posto tutto codice dell'if ho ricreato da zero la tabella.. anche se uso sqlite o mysql fa la stessa cosa non entra nell'if
e non scrive "no data" e mi fa vedere lo stesso la paginazione con i dati invisibili.
PHP:
 $records = $crud->rawSelect('SELECT * FROM utenti');
  
	include('paginator.php');

    $pages = new Paginator('1','p');

	$stmt = $crud->rawSelect('SELECT count(id) FROM utenti');
	$row = $stmt->fetch();
	
	$total = $row[0];
		
	$pages->set_total($total); 

	$data = $crud->rawSelect('SELECT * FROM utenti '.$pages->get_limit());
	$num = $data->rowCount();
 
    if($num == 0 )
    {
	while($row = $data->fetch())
    {
	 echo $row["nome"].''.$row["cognome"].'<br />'. $row["data_reg"];
     echo '<hr />';
    }
	echo $pages->page_links();
	
	}
	else {
			echo "no data";
	}

questa è la tabella:
PHP:
  $sql = " 
	CREATE TABLE utenti ( 
	id INTEGER  PRIMARY KEY   AUTOINCREMENT,
    nome VARCHAR(50) NOT NULL,
    cognome VARCHAR(50) NOT NULL,
    data_reg datetime);";

    $crud->rawQuery($sql);

come mai?

come posso risolvere?.
grazie mille.
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
ora ho messo cosi:
PHP:
$row = $data->fetchAll();
if(count($row) == 0) {	
echo "Sorry, no results found";	
} else {
	while($r = $data->fetch())
    {
	
	 echo $r["nome"].''.$r["cognome"].'<br />'. $r["data_reg"];
     echo '<hr />';
    }
	var_dump($r);
	echo $pages->page_links();
 
}

ho messo var_dump($r).
mi dice:
bool(false)

come mai?


il controllo ora funziona .. ma non mi fa vedere i dati.
idee?

grazie mille.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
sarà che odio le classi, ma mi è venuto un piccolo dubbiotu hai messo var_dump($r), prova e mettere
PHP:
<?php
$row = $data->fetchAll();
var_dump($row);
if(count($row) == 0) {    
echo "Sorry, no results found";    
} else {
    while($r = $data->fetch())
    {
    
     echo $r["nome"].''.$r["cognome"].'<br />'. $r["data_reg"];
     echo '<hr />';
    }
    var_dump($r);
    echo $pages->page_links();
 
} 
?>
e eventualmente prova a sostituire
PHP:
<?php
//$row = $data->fetchAll();
$conta = $data->rowCount();
var_dump($conta);
if($conta == 0) {    
echo "Sorry, no results found";    
} else {
    while($r = $data->fetch())
    {
    
     echo $r["nome"].''.$r["cognome"].'<br />'. $r["data_reg"];
     echo '<hr />';
    }
    var_dump($r);
    echo $pages->page_links();
} 
?>
sappimi dire
dimenticavo nell'ultimo tuo script stai usando la PDO?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Credo sia più veloce e esatta logicamente la seconda soluzione di Borgo :)
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
ciao, ritorno con questo topic abbandonato da me.
Ora lo rivoglio riprendere.

per adesso ho scritto cosi essendo che non ho più il database di prima ma ho un database di prova..
ma questo non c'entra nulla.
vi posto il codice di ora:
PHP:
<?php
?>
<h2>Blog</h2>
<?php
   

    include '../lib/crud.class.php';

    $crud = new crud;
    $crud->dsn = "sqlite:../database/blog.data";
	//include the class
	include('../lib/paginator.php');

	//create new object pass in number of pages and identifier
	$pages = new Paginator('2','page');

	//get number of total records
	$records = $crud->rawSelect('SELECT animal_id FROM animals');
	
	$rows = $records->fetchAll(PDO::FETCH_ASSOC);
	$total = count($rows);

	//pass number of records to
	$pages->set_total($total); 

	$data = $crud->rawSelect('SELECT * FROM animals '.$pages->get_limit());
	 /*** fetch only associative array of values ***/
	 
	
$conta = $data->rowCount();
var_dump($conta);
if($conta == 0) {    
echo "Sorry, no results found";    
} else {
    while($row = $data->fetch())
    {
			
			echo $row["animal_id"].' ';
            echo $row["animal_type"].'<br />';
        
	
	}
			echo $pages->page_links('index.php?m=blog&');
}
?>
adesso cosi mi stampa:
int(0) Sorry, no results found


pero i dati ci sono come mai?

grazie mille e scusate dell'assenza di questo topic .. ma stavo aspettando il trasferimento del mio dominio.

vi ringrazio molto.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non so cosa ti riporti la variabile $pages
PHP:
<?php
//....
$data = $crud->rawSelect('SELECT * FROM animals '.$pages->get_limit());
     /*** fetch only associative array of values ***/ 
//....
?>
ma trattandosi di paginazione dovrebbe riportarti il LIMIT es 1,5 (o quello che è)
allora se riporta
$pages = LIMIT 1,5 (da quale e quanti per page)
dovrebbe funzionare, ma se riporta solo
$pages = 1,5
la query va scritta
PHP:
<?php
//....
$data = $crud->rawSelect('SELECT * FROM animals LIMIT '.$pages->get_limit());
     /*** fetch only associative array of values ***/ 
//....
?>
se invece ti riporta solo un numero singolo (da quale record) devi dirgli anche quanti per page
comunque per verificare puoi mettere il solito var_dump()
PHP:
<?php
//....
var_dump($pages->get_limit());
$data = $crud->rawSelect('SELECT * FROM animals LIMIT '.$pages->get_limit());
     /*** fetch only associative array of values ***/ 
//....
?>
e vedere cosa ti riporta e in funzione modificare la query


p.s.
se ho detto delle cavolate butta via tutto
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
ecco:
string(9) "LIMIT 0,2" int(0) Sorry, no results found

scritta cosi:
$data = $crud->rawSelect('SELECT * FROM animals '.$pages->get_limit());

se metto limit mi da errore nella query.
 
Ultima modifica:

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
risolto:
ecco a voi.

PHP:
$data = $crud->rawSelect('SELECT * FROM animals '.$pages->get_limit());
	if($data->fetchColumn() == 0)
	{
			echo "No data found";
	}
	else
	{
	foreach($data as $row) {
			
			echo "".$row["animal_id"]." ";
			echo "".$row["animal_type"]."<br />";
	}
	echo $pages->page_links('index.php?m=blog&');
}
 
Discussioni simili
Autore Titolo Forum Risposte Data
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
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
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
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15
T [Photoshop] Problema creazione pennello personalizzato [RISOLTO] Photoshop 3

Discussioni simili