[PHP] Problema con un IF - Parse Error

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
Arkantos01
00lunedì 20 giugno 2005 23:11
Re:

mi da errore Parse error alla linea 24 :nnzo:
questo è il documento PHP, si chiama cerca_libri.php

<html>
<head>
<title>Risultati</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<font face="Trebuchet MS"><table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="15%"><p align=center><img src="dati/torri5pic.gif" width="104" height="103"></p></td>
    <td width="85%"><p align="center"><img src="dati/scritta.gif" width="500" height="103"></p></td>
  </tr>
  <tr> 
    <td><p><font face="Trebuchet MS" color="#000099"><a href="cerca.php">Cerca</a><br>
        <a href="inserisci_libro.php">Inserisci libro</a> <br>
        <a href="prestiti.php">Gestione Prestiti</a><br>
        <a href="utenti.php">Anagrafica Utenti</a></font></p>
      </td>
    <td><font color="#0000CC">

<?php 
include "db_connect.php";
if (!isset($Start) or $start<0)
start=0;
step=20;
$result = mysql_query("SELECT * FROM 'libri' WHERE ('tag'= '".$_POST['tag']."', 'autore' LIKE '".$_POST['autore']."' , 'titolo' LIKE '".$_POST['titolo']."' , 'editore'='".$_POST['editore']."' , 'anno'='".$_POST['anno']."' , 'ubicazione'='".$_POST['ubicazione']."' , 'note' LIKE '".$_POST['note']."') ORDER by 'titolo' DESC LIMIT $start, $step
)");
while ($row = mysql_fetch_array($result))
echo('<table width="90%" border="1">
        <tr>
          <h3><td>Tag</td>
          <td>Autore</td>
          <td>Titolo</td>
		  <td>Editore</td>
          <td>Anno</td>
          <td>Ubicazione</td>
          <td>Note</td></h3>
        </tr>');
echo('<tr>
          <td>'.$row["tag"].'</td>
          <td>'.$row["autore"].'</td>
          <td>'.$row["titolo"].'</td>
		  <td>'.$row["editore"].'</td>
          <td>'.$row["anno"].'</td>
          <td>'.$row["ubicazione"].'</td>
          <td>'.$row["note"].'</td>
		  </tr>');
echo('</table>');
?>
<br><br>
<table width="90%" border="0"><tr><td width="20%" align="left"><?
if ($start>0)
{ $start_back = $start - $step;
echo '<a href=cerca_libri.php?start=back>precedenti</a>';} ?>
</td>
<?php
$query = "Select count(*) AS tot FROM libri";
while ($row = mysql_fetch_array($result))
$pages = intval(($row[tot]-1) / $step)+1);
?>
<td width="60%" align="center">
<?php 
for ($i=0; $i<$pages AND $i<20; $i++)
{ $start_page = $i * $step;
echo "<a href=cerca_libri.php?start=$start_page>".($i+1)."</a>";}
?> </td>
<td width="20%" align="right">
<?php 
if ($start + $step < Srow[tot])
{ $start_next = $start + $step;
echo "<a href=cerca_libri.php?start=$start_next>successivi</a>";}
?></td>
</tr></table></font></td>
  </tr>
</table>
</font>
</body>
</html>



ciao, Arka


___________________________________________________________________________________________________
"Mi berrò un cicchetto con il diavolo, ma non passerò dalla sua parte" (Bono, U2)

"Signore, quando camminerò nell'ombra della valle della morte, non temerò alcun male, perchè sono il peggior figlio di puttana di tutta la zona." (Preghiera dei Marines americani in Vietnam)

"Le opinioni, si sà, sono come i coglioni... Ognuno ha i suoi" (Giorgio Gaber)

"Con le baionette si può fare di tutto...tranne sedercisi sopra"(Charles Maurice Talleyrand Pèrigord 1754-1838)

Non c'è deserto peggiore che una vita senza amici.

Modificato da Arkantos01 20/06/2005 23.13
Arkantos01
00lunedì 20 giugno 2005 23:23
Risolto

 <?php 
 

 include "db_connect.php";
 

 if (!isset($Start) or $start<0)
 

 $start=0;
 

 $step = 20;


boyuniversity
00martedì 21 giugno 2005 00:12
Re: Risolto

Scritto da: Arkantos01 20/06/2005 23.23

 <?php 
 

 include "db_connect.php";
 

 if (!isset($Start) or $start<0)
 

 $start=0;
 

 $step = 20;





ma no stavo per suggerirtelo io..[SM=x53933] [SM=x53915]
Arkantos01
00martedì 21 giugno 2005 08:22
aggiungo c'erano altri due errori alla 59 e alla 69, che ho risolto.
Arkantos01
00martedì 21 giugno 2005 08:43
La sagra degli errori :asd: :asd:


<html>
<head>
<title>Risultati</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<font face="Trebuchet MS"><table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="15%"><p align=center><img src="dati/torri5pic.gif" width="104" height="103"></p></td>
    <td width="85%"><p align="center"><img src="dati/scritta.gif" width="500" height="103"></p></td>
  </tr>
  <tr> 
    <td><p><font face="Trebuchet MS" color="#000099"><a href="cerca.php">Cerca</a><br>
        <a href="inserisci_libro.php">Inserisci libro</a> <br>
        <a href="prestiti.php">Gestione Prestiti</a><br>
        <a href="utenti.php">Anagrafica Utenti</a></font></p>
      </td>
    <td><font color="#0000CC">

<?php 
include "db_connect.php";
if (!isset($Start) or $start<0)
$start=0;
$step = 20; ?>
<? 
$result = "SELECT * FROM 'libri' WHERE ('tag'= '".$_POST['tag']."' AND 'autore' LIKE '".$_POST['autore']."' AND 'titolo' LIKE '".$_POST['titolo']."' AND 'editore'='".$_POST['editore']."' AND 'anno'='".$_POST['anno']."' AND 'ubicazione'='".$_POST['ubicazione']."' AND 'note' LIKE '".$_POST['note']."') LIMIT $start, $step)";
$row = mysql_fetch_array($result);
echo('<table width="90%" border="1">
        <tr>
          <h3><td>Tag</td>
          <td>Autore</td>
          <td>Titolo</td>
		  <td>Editore</td>
          <td>Anno</td>
          <td>Ubicazione</td>
          <td>Note</td></h3>
        </tr>');
echo('<tr>
          <td>'.$row["tag"].'</td>
          <td>'.$row["autore"].'</td>
          <td>'.$row["titolo"].'</td>
		  <td>'.$row["editore"].'</td>
          <td>'.$row["anno"].'</td>
          <td>'.$row["ubicazione"].'</td>
          <td>'.$row["note"].'</td>
		  </tr>');
echo('</table>');
?>
<br><br>
<table width="90%" border="0"><tr><td width="20%" align="left"><?
if ($start>0)
{ $start_back = $start - $step;
echo '<a href=cerca_libri.php?start=back>precedenti</a>';} ?>
</td>
<?php
$query = "Select count(*) AS tot FROM libri";
$row = mysql_fetch_array($result);
$pages = intval(($row - 1) / $step)+1;
?>
<td width="60%" align="center">
<?php 
for ($i=0; $i<$pages AND $i<20; $i++)
{ $start_page = $i * $step;
echo "<a href=cerca_libri.php?start=$start_page>".($i+1)."</a>";}
?> </td>
<td width="20%" align="right">
<?php 
if ($start + $step < $row);
{ $start_next = $start + $step;
echo "<a href=cerca_libri.php?start=$start_next>successivi</a>";}
?></td>
</tr></table></font></td>
  </tr>
</table>
</font>
</body>
</html>


Gli errori:

Notice: Undefined index: autore in D:\biblioteca\cerca_libri.php on line 27

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\biblioteca\cerca_libri.php on line 28
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\biblioteca\cerca_libri.php on line 58
Notice: Undefined index: tag in D:\biblioteca\cerca_libri.php on line 27

Notice: Undefined index: autore in D:\biblioteca\cerca_libri.php on line 27

Notice: Undefined index: titolo in D:\biblioteca\cerca_libri.php on line 27

Notice: Undefined index: editore in D:\biblioteca\cerca_libri.php on line 27

Notice: Undefined index: anno in D:\biblioteca\cerca_libri.php on line 27

Notice: Undefined index: ubicazione in D:\biblioteca\cerca_libri.php on line 27

Notice: Undefined index: note in D:\biblioteca\cerca_libri.php on line 27

Warning: mysql_fetch_array(): supplied argument is not a valid

MySQL result resource in D:\biblioteca\cerca_libri.php on line 28



Help me!
ciao, Arka


___________________________________________________________________________________________________
"Mi berrò un cicchetto con il diavolo, ma non passerò dalla sua parte" (Bono, U2)

"Signore, quando camminerò nell'ombra della valle della morte, non temerò alcun male, perchè sono il peggior figlio di puttana di tutta la zona." (Preghiera dei Marines americani in Vietnam)

"Le opinioni, si sà, sono come i coglioni... Ognuno ha i suoi" (Giorgio Gaber)

"Con le baionette si può fare di tutto...tranne sedercisi sopra"(Charles Maurice Talleyrand Pèrigord 1754-1838)

Non c'è deserto peggiore che una vita senza amici.

Modificato da Arkantos01 21/06/2005 8.44
aessenet
00martedì 21 giugno 2005 10:02
Intanto una cosa che ti stai trascinando dietro dall'inizio è

if (!isset($Start) or $start<0)

A meno che tu non sia un masochista e ti piaccia dare alle variabili nomi molto simili in modo da confonderle facilmente, quando hai scritto $Start e $start forse volevi riferirti alla stessa variabile. Ma il php è case sensitive, quindi sono due variabili che non hanno niente in comune.

Altra cosa: la sintassi standard dell'if prevede le parentesi graffe per identificare la parte di codice da eseguire nel caso in cui si entri nell'if.
Se non usi le graffe, il corpo dell'if è costituito esclusivamente dalla prima riga di codice dopo l'if.
La seconda è come se fosse fuori dalle graffe.

Riga 28/58: ok memorizzare la query in una stringa, ma bisogna anche fargliela eseguire (mysql_query(...)), sennò il povero php non può lavorare sui risultati [SM=x53911]




Arkantos01
00martedì 21 giugno 2005 10:59
sistemati tutti quelli... adesso questo:

Fatal error: Unsupported operand types in D:\biblioteca\cerca_libri.php on line 59

<?php
$result = mysql_query("Select count(*) AS tot FROM libri");
$row = mysql_fetch_array($result);
$pages = intval(($row - 1) / $step) + 1;
?>

aessenet
00martedì 21 giugno 2005 11:52
$row è un array, non è un numero: non puoi fare $row - 1.

Devi prendere un elemento dell'array (es: $row['tot'] ) e su di esso (se è un numero) puoi fare la sottrazione.
Arkantos01
00martedì 21 giugno 2005 13:46
Re:

Scritto da: aessenet 21/06/2005 11.52
$row è un array, non è un numero: non puoi fare $row - 1.

Devi prendere un elemento dell'array (es: $row['tot'] ) e su di esso (se è un numero) puoi fare la sottrazione.



uch è vero...
corretto quello, mi è spuntato questo:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\biblioteca\cerca_libri.php on line 28

Infine ho un problema con l'SQL:
Notice: Undefined index: autore in D:\biblioteca\cerca_libri.php on line 27
Notice: Undefined index: tag in D:\biblioteca\cerca_libri.php on line 27

Notice: Undefined index: autore in D:\biblioteca\cerca_libri.php on line 27

Notice: Undefined index: titolo in D:\biblioteca\cerca_libri.php on line 27

Notice: Undefined index: editore in D:\biblioteca\cerca_libri.php on line 27

Notice: Undefined index: anno in D:\biblioteca\cerca_libri.php on line 27

Notice: Undefined index: ubicazione in D:\biblioteca\cerca_libri.php on line 27

Notice: Undefined index: note in D:\biblioteca\cerca_libri.php on line 27

questa è la struttura della tabella:


CREATE TABLE 'libri' (
  'tag' varchar(16) NOT NULL default '',
  'autore' text NOT NULL,
  'titolo' mediumtext NOT NULL,
  'editore' text NOT NULL,
  'genere' mediumtext NOT NULL,
  'anno' varchar(5) NOT NULL default '',
  'ubicazione' text NOT NULL,
  'note' longtext NOT NULL,
  UNIQUE KEY 'tag' ('tag')
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


aessenet
00martedì 21 giugno 2005 23:07
L'argomento che passi a mysql_fetch_array() è il risultato della mysql_query(...), o è ancora la stringa contenente la query?

Dovresti incollarmi il codice
Arkantos01
00mercoledì 22 giugno 2005 08:35

$result = mysql_query("SELECT * FROM 'libri' WHERE ('tag'= '".$_POST['tag']."' AND 'autore' LIKE '".$_POST['autore']."' AND 'titolo' LIKE '".$_POST['titolo']."' AND 'editore'='".$_POST['editore']."' AND 'anno'='".$_POST['anno']."' AND 'ubicazione'='".$_POST['ubicazione']."' AND 'note' LIKE '".$_POST['note']."') LIMIT $start, $step)");
$row = mysql_fetch_array($result);


aessenet
00mercoledì 22 giugno 2005 09:32
Mmm la query viene eseguita correttamente? Per esserne sicuro potresti aggiungere qualche cosa tipo

$result = mysql_query("..") or die(mysql_error());

Nella query, la parentesi tonda che chiudi dopo la variabile $step dove viene aperta?

Potresti vedere quante righe restituisce la query (per vedere se son quante ti aspetti) usando mysql_num_rows($result);


Modificato da aessenet 22/06/2005 9.33
Arkantos01
00mercoledì 22 giugno 2005 14:23
Re:

Scritto da: aessenet 22/06/2005 9.32
Mmm la query viene eseguita correttamente? Per esserne sicuro potresti aggiungere qualche cosa tipo

$result = mysql_query("..") or die(mysql_error());

Nella query, la parentesi tonda che chiudi dopo la variabile $step dove viene aperta?

Potresti vedere quante righe restituisce la query (per vedere se son quante ti aspetti) usando mysql_num_rows($result);


Modificato da aessenet 22/06/2005 9.33



fatto, la parentesi la apro dopo WHERE, l'ho spostata dopo l'ultimo confronto..
Arkantos01
00giovedì 23 giugno 2005 13:30
Re: Re:

Scritto da: Arkantos01 22/06/2005 14.23


fatto, la parentesi la apro dopo WHERE, l'ho spostata dopo l'ultimo confronto..



il problema rimane.. HELP ME!
aessenet
00giovedì 23 giugno 2005 21:27
Allega in un file di testo il codice che lo guardo..puoi indicarmi se la query viene eseguita o se ci sono errori nella sua sintassi? (non avrò il tuo db per provare)
Arkantos01
00venerdì 24 giugno 2005 11:29
La query viene eseguita, anche se mi viene restituito l'errore di Undefined Index in ogni colonna, ma quello lo da il PHP, non il MySQL.
aessenet
00venerdì 24 giugno 2005 11:50
Se te lo da su tutti gli indici, il risultato della query non è quello previsto (magari la query è sbagliata non sintatticamente, ma logicamente).

Il numero di righe (mysql_num_rows($result)) che ti restituisce la query è quello che ti aspetti?
Arkantos01
00venerdì 24 giugno 2005 11:53
Re:

Scritto da: aessenet 24/06/2005 11.50
Se te lo da su tutti gli indici, il risultato della query non è quello previsto (magari la query è sbagliata non sintatticamente, ma logicamente).

Il numero di righe (mysql_num_rows($result)) che ti restituisce la query è quello che ti aspetti?



sì, cioé per ora solo 1...
aessenet
00venerdì 24 giugno 2005 11:59
Allora invece che imporgli tu gli indici, scorri l'array $row nella sua completezza, per vedere cosa il php mette dentro all'array $row del record restituito.

foreach($row as $value){
echo $value."<br>";
}
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 20:42.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com