- Home
- Categorie
- Coding e Sistemistica
- PHP
- ciclo for
-
ciclo for
Ciao a tutti
vi chiedo un po di pazienza, ma devo imparare
devo fare un ciclo per estrarre alcuni dati da una tabella
con il while non ho avuto problemi
con il for invece non riesco a farlo
sembra una scemità
[PHP]<?php
//richiamo il file di configurazione
require 'Config.php';
//richiamo il file di connessione
require 'Connect.php';//creo la SELECT
$query="SELECT * FROM categorie";
//eseguo la query
$risultato=mysql_query($query);
if(!$risultato)
{
die("errore nella query;".mysql_error());
}
//chiudo la connessione
mysql_close();for($i=0; $i<=$risultato; $i++)
{
print"<tr>";
print"<td><p class='b01'>
<img src='images/e02.gif' width='6' height='5' border='0' align='absmiddle'> <a href=''>$i</a></p>
<div align='center'><img src='images/hr01.gif' width='137' height='3' border='0'></div>
</td>";
print"</tr>";
}
?>
[/PHP]mi dite cosa manca?
grazie e buona domenica
ciao da danny
-
Devi prendere il risultato e popolare un'array mysql_fetch_array()... poi col for scorri l'array e a ogni giro associ list() i risultati a delle variabili che visualizzi... se non capisci stasera ti posto il codice...
keiske
-
Ciao, sto provando ed ho fatto una cosa del genere
[php]
$dati=mysql_fetch_assoc($risultato)
for($i=0; $i=count($dati); $i++)
[/php]poi dove faccio la stampa metto
$dati*va tutto in loop
quindi la soluzione non è questa
ciao
-
usa mysql_num_rows() per contare le righe della query e limiti il for a quella variabile...
-
@Khendall said:
usa mysql_num_rows() per contare le righe della query e limiti il form a quella variabile...
[PHP]
$dati=mysql_fetch_rows($risultato)
for($i=0;$i<=count($dati);$i++)
[/PHP]e poi nella stampa mettere solo $dati
cosi dici?
ciao
-
no perche nums_rows già ti restituisce il numero di righe trovate, ma scusa perche devi usare per forza for? usa while + mysql_fetch_array e sei apposto:
[PHP]<?php
//richiamo il file di configurazione
require 'Config.php';
//richiamo il file di connessione
require 'Connect.php';//creo la SELECT
$query="SELECT * FROM categorie";
//eseguo la query
$risultato=mysql_query($query)or die("errore nella query;".mysql_error());
//chiudo la connessione
mysql_close();while($row=mysql_fetch_array($risultato))
{
print"<tr>";
print"<td><p class='b01'>
<img src='images/e02.gif' width='6' height='5' border='0' align='absmiddle'> <a href=''>".$row['nome_tuo_campo_db']."</a></p>
<div align='center'><img src='images/hr01.gif' width='137' height='3' border='0'></div>
</td>";
print"</tr>";
}
?>
[/PHP]
-
Ciao e grazie per il codice
ma ho già detto all'inizio che il ciclo while non era un
problema
visto che sto cercando di imparare php, e mi sono imposto
di impararlo bene, non conle semplici copiestavo dicendo io il ciclo while già lo fatto, e cioò vorrei
farlo col forciao e grazie
-
[php]<?php
//richiamo il file di configurazione
require 'Config.php';
//richiamo il file di connessione
require 'Connect.php';//creo la SELECT
$query="SELECT * FROM categorie";
//eseguo la query
$risultato=mysql_query($query)or die("errore nella query;".mysql_error());// conto i record
$num_ris = msql_num_rows($risultato);//chiudo la connessione
mysql_close();for($x=0;$x<$num_ris;$x++){
print"<tr>";
print"<td><p class='b01'>
<img src='images/e02.gif' width='6' height='5' border='0' align='absmiddle'> <a href=''>".mysql_result($risultato,$x,'nome_tuo_campo')."</a></p>
<div align='center'><img src='images/hr01.gif' width='137' height='3' border='0'></div>
</td>";
print"</tr>";}
?>[/php]
-
ciao ho fatto come hai detto
ma mi dice**Warning**: msql_num_rows(): supplied resource is not a valid mSQL result resource in **c:\programmi\easyphp1-8\www\web_site\index.php** on line **98**
riga 98
$num_ris = msql_num_rows($risultato);
strano che bisogna scrivere tutte quelle cose dove stampo la riga
non xrchè non mi fido eee
però pensavo + una cosa del genere[HTML]
$num_ris[$x]
[/HTML]ciao e grazie
-
// conto i record
$num_ris = msql_num_rows($risultato);errore di sintassi, sarebbe
// conto i record
$num_ris = mysql_num_rows($risultato); (manca la y)$num_ris[$x] tradotto sarebbe numero record[valore x] senza senso mentre
mysql_result($risultato,$x,'nome_tuo_campo')
(risorsa del db $risultato)+( riga $x(0,1,2,3,4,5 ecc)) (piu il nome del campo del db)
-
ciao e grazie
va benissimo
non ci sarei mai arrivato da solo
quel mysql_result non l'avrei mai messocmq grazie tante
ciao da danny
-
[PHP]
<?php
//richiamo il file di configurazione
require 'Config.php';
//richiamo il file di connessione
require 'Connect.php';//creo la SELECT
$query="SELECT * FROM categorie ORDER BY descrizione";
//eseguo la query
$risultato=mysql_query($query);
if(!$risultato)
{
die("errore nella query;".mysql_error());
}
//chiudo la connessione
mysql_close();
?>
<html>
<head>
<title>TEMPLATE BY ALIBI74.IT</title>
<link rel="stylesheet" type="text/css" href="style.css">
<meta name="generator" content="Namo WebEditor v5.0">
</head>
<body leftmargin=0 topmargin=0 marginheight="0" marginwidth="0" bgcolor="#E6E6E6">
<table border="0" cellpadding="0" cellspacing="0" width="758" align="center">
<tr valign="top">
<td><img src="images/logo.gif" alt="" width="184" height="129" border="0"></td>
<td>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td colspan="2">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><img src="images/but01.gif" width="115" height="30" alt="" border="0"></td>
<td><img src="images/but02.gif" alt="" width="114" height="30" border="0"></td>
<td><img src="images/but03.gif" width="112" height="30" alt="" border="0"></td>
<td><img src="images/but04.gif" width="116" height="30" alt="" border="0"></td>
<td><img src="images/but05.gif" width="117" height="30" alt="" border="0"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td background="images/fon_top01.gif" colspan="2" height="37">
<table border="0" cellpadding="0" cellspacing="0" width="100%" background="">
<tr>
<td><p class="menu01"><a href=""><img src="images/e01.gif" width="8" height="7" alt="" border="0"> Company history</a></p></td>
<td><p class="menu01"><a href=""><img src="images/e01.gif" width="8" height="7" alt="" border="0"> Executives management</a></p></td>
<td><p class="menu01"><a href=""><img src="images/e01.gif" width="8" height="7" alt="" border="0"> Contact Info</a></p></td>
<td><p class="menu01"><a href=""><img src="images/e01.gif" width="8" height="7" alt="" border="0"> Our Partners</a></p></td>
<td><p class="menu01"><a href=""><img src="images/e01.gif" width="8" height="7" alt="" border="0"> Contacts</a></p></td>
</tr>
</table>
</td>
</tr>
<tr>
<td><img src="images/form01.gif" width="341" height="22" alt="" border="0"></td>
<td><img src="images/form02.gif" width="233" height="22" alt="" border="0"></td>
</tr>
<tr>
<form action="" method="post">
<td height="40" background="images/form03.gif" width="341" alt="" border="0" align="center">
<input type="Text" name="" value=" USERNAME" size="10">
<input type="Text" name="" value=" PASSWORD" size="10">
<input type="image" src="images/b_login.gif" width="79" height="20" alt="" border="0" align="absbottom">
</td>
</form>
<td background="images/form04.gif" width="233" height="40">
<table border="0" cellpadding="0" cellspacing="0" width="100%" background="">
<tr align="center">
<td><p style="color: #FFFFFF; font-size: 10px;"><b>TOTAL<br>$11500,00</b></p></td>
<td><a href=""><img src="images/b_vew.gif" width="79" height="20" alt="" border="0"></a></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="758" align="center">
<tr valign="top">
<td width="185" background="images/fon_left03.gif">
<table border="0" cellpadding="0" cellspacing="0" background="images/fon_left01.gif" width="100%">
<tr>
<td align="right">
<table border="0" cellpadding="0" cellspacing="0" width="165" background="images/fon_left02.gif">
<tr>
<td background="images/left01.gif" height="26"><p class="title">NAVIGAZIONE</p></td>
</tr>
<?php
//while($riga=mysql_fetch_array($risultato,MYSQL_ASSOC))
$num_ris = mysql_num_rows($risultato);
for($x=0; $x<$num_ris; $x++)
{
print"
<tr>";
print"
<td><p class='b01'>
<img src='images/e02.gif' width='6' height='5' border='0' align='absmiddle'>
<a href=''>".mysql_result($risultato,$x,'descrizione')."</a></p>
<div align='center'><img src='images/hr01.gif' width='137' height='3' border='0'></div>
</td>";
print"
</tr>";
}
?>
[/PHP]
-
Beh magari scrivi prima:
$variabile = mysql_result($risultato,$x,'descrizione');
E poi nell'a href ci passi $variabile e non tutta la funzione...
Detto questo mi sembra tutto corretto... è il modo migliore per usare il ciclo for...
Resta sempre una cosa... non capisco perchè ti ostini (in cima al codice) a identificare la mancanza di $risultato come errore... semplicemente non c'è un risultato e se non c'è è perchè non ci sono categorie, non per un errore... ergo quello che vuoi tu è
$risultato=mysql_query($query)
or die("errore nella query;".mysql_error());Questo sì che dà errore se c'è un errore nella connessione o nell'esecuzione della query...
-
ciao il fatto che ho un libro che dice come te
e un tutorial che invece fa come ho scritto iopoi le ho provate entrambe , ma non ho notato differenza
tu dici che c'è?
ciao da danny
-
Il punto è che se passi al die() un mysql_error() deve esserci questo errore...
se tu il die() lo passi nel caso in cui !$risultato, l'errore non c'è...
Prova a applicare la query a una tabella vuota, oppure aggiungi alla query un WHERE 1=2, così da ottenere !$risultato e vedrai se ti dà un errore...
Detto questo, a parte un errore strutturale, per eventi come mancanza di risultato devi gestire l'output diversamente..
Ipotizziamo che prepari un altra query su una "ricerca" e la ricerca dà risultato nullo... cosa dici al tuo visitatore? "Errore di mysql: bla bla bla"?
E poi lui cosa pensa? Che la sua ricerca non ha dato risultati o che c'è un errore nel sito?
if(!$risultato) {
echo "Spiacente, non c'è risultato";
exit;
}oppure
if(!$risultato) {
$mess = "Spiacente, non c'è risultato";
header("pagina.php?mess=$mess");
}E nella pagina.php
if($_GET['mess'])
$mess = $_GET['mess'];
else
$mess = "";<div id="messaggivari"><?=$mess?></div>
e poi magari sotto al div ci metti un bel codice che cliccando nasconde il messaggio una volta letto... (un po' come fa google su analytics/adsense/adwords)
<a href="#" onclick="document.getElementById('messaggivari').innerHTML = '';return false"><span style="float:right;font-size:small">nascondi</span></a>
keiske
-
grazie ho capito
adesso si che ho capitociao