- Home
- Categorie
- Coding e Sistemistica
- Coding
- linkare due pagine
-
linkare due pagine
ciao a tutti, ho un problema in php e oracle, spero che siate in grado di aiutarmi. Io ho appena cominciato a programmare in php. Io ho una pagina con dei codici, cliccando con il puntatore sui codici vorrei che che si aprisse un'altra pagina contenente i dati relativi al codice cliccato, magari per i più esperti sara semplice ma come detto ho appena iniziato a programmare. Il codice php che ho scritto è il seguente.
pagina iniziale:
<?php$sql = "SELECT IDSAMPLE FROM sample";
$stmt = oci_parse($conn, $sql);
oci_execute($stmt);
echo "<table><tr>";
echo "<td>Id</td></tr>";
while ($row = oci_fetch_array($stmt))
{echo "<tr>"; echo "<td><a href=\"prova.php?IDSAMPLE=$row[IDSAMPLE]\">" .$row["IDSAMPLE"] . "</td>"; echo "</tr>";
}
?>
questa funziona prende i dati dal db e li visualizza, il problema è con la pagina successiva prova.php:
<?php
$sql = "SELECT FIRSTNAME IDSAMPLE, IDP FROM patient, sample where IDP='$IDSAMPLE'";
$stmt = oci_parse($conn, $sql);
oci_execute($stmt);
$row = oci_fetch_array($stmt);
echo "<TABLE>";
echo "<TR>";
echo "<TD>First Name:".$row["FIRSTNAME"]. "</TD>";
echo "<TD></TD>";
echo "</TR>";
echo "</TABLE>";
?>
e mi restituisce l'errore:
Notice: Undefined variable: IDSAMPLE in prova.php on line 55
Warning: oci_execute(): ORA-00918: definizione della colonna ambigua in prova.php on line 59
Warning: oci_fetch_array(): ORA-24374: istruzione define non eseguita prima di fetch o di execute e fetch in prova.php on line 60
Spero che riusciate ad aiutarmi. Grazie
-
Prova a porre un echo "$HTTP_GET_VARS[IDSAMPLE]"; all'inizio dello script per vedere se viene ricevuta la variabile.
-
ho provato ad aggiungere l'istruzione che mi hai suggerito ma mi ha dato un'altro messaggio di errore:
Notice: Undefined variable: HTTP_GET_VARS
-
Dai un'occhiata qui http://openskills.info/infobox.php?ID=224
-
prova a mettere
$sql = "SELECT FIRSTNAME IDSAMPLE, IDP FROM patient, sample where IDP='".$_GET['IDSAMPLE']."';"; ``` al posto di
$sql = "SELECT FIRSTNAME IDSAMPLE, IDP FROM patient, sample where IDP='$IDSAMPLE'";
:ciauz:
-
Buongiorno a tutti, adesso provo con il codice che mi hai suggerito. Grazie tante per l'aiuto.
-
Buongiorno a tutti, adesso provo con il codice che mi hai suggerito. Grazie tante per l'aiuto.
-
Ho provato a fare come mi hai detto ma adesso il messaggio è diventato:
Notice: Undefined index: IDSAMPLE.
Ho aggiunto l'istruzione
var_dump(isset($IDSAMPLE));
per vedere se riesce a vedere la variabile e prima del notice compare
BOOL(FALSE).
-
Ho provato a fare come mi hai detto ma adesso il messaggio è diventato:
Notice: Undefined index: IDSAMPLE.
Ho aggiunto l'istruzione
var_dump(isset($IDSAMPLE));
per vedere se riesce a vedere la variabile e prima del notice compare
BOOL(FALSE).
-
Ho seguito i consigli che mi avete dato, passando dalla pagina con i codici alla seconda pagina non ottengo più messaggi di errore però non riesco a visualizzare i dati relativi al codice. Non capisco come mai. Grazie
-
Ho seguito i consigli che mi avete dato, passando dalla pagina con i codici alla seconda pagina non ottengo più messaggi di errore però non riesco a visualizzare i dati relativi al codice. Non capisco come mai. Grazie
-
Ho risolto il problema, grazie per l'aiuto che mi avete dato. Oracle nella visualizzazione di un campo dell'array non vuole un nome ma un indice
echo "<TD>First Name:".$row["FIRSTNAME"]. "</TD>";
deve essere
"<TD>First Name:".$row[0]. "</TD>";
-
Puoi anche utilizzare gli array con il nome del campo al posto dell'indice: http://it.php.net/manual/it/function.oci-fetch-assoc.php
Riporto un esempio semplice:
<?php
$conn = ocilogon("username", "password");$query = "SELECT apples FROM oranges";
$statement = OCIParse ($conn, $query);
OCIExecute ($statement);while (OCIFetchInto ($statement, $row, OCI_ASSOC)) {
echo $row['apples'];
}
?>
-
Ho riprovato per scrupolo ma con il campo non va. Comunque grazie
-
Se usi oci_fetch_array senza il secondo parametro l'indice é numerico, se usi oci_fetch_array con nel secondo parametro OCI_ASSOC oppure usi direttamente oci_fetch_assoc() ti ritorna l'array associativo.
Qui c'é tutto: http://it.php.net/manual/it/function.oci-fetch-array.php
-
ho riprovato usando il secondo parametro OCI_ASSOC in oci_fetch_array e ora funziona, ma definendo il campo associativo funzione se uso il doppio apice invece del singolo apice. Mi sei stato veramente utile, grazie